3 Commits

Author SHA1 Message Date
4fa64cfc70 reduce image size for performance reasons 2026-05-05 10:18:06 -04:00
e09ad1edf2 add markdown rendering 2026-05-05 10:11:25 -04:00
d0c84aef7f fix bug where llm interaction was broken 2026-05-05 10:06:23 -04:00
4 changed files with 85 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
var Search = (function() { var LLM = (function() {
var defaultApiUrl = 'https://llama-instruct.reeselink.com/v1'; var defaultApiUrl = 'https://llama-instruct.reeselink.com/v1';
var defaultModel = 'instruct'; var defaultModel = 'instruct';

69
lib/marked.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -123,6 +123,7 @@
<script src="../lib/search.js"></script> <script src="../lib/search.js"></script>
<script>Search.init();</script> <script>Search.init();</script>
<script src="../lib/marked.min.js"></script>
<script> <script>
(function(){ (function(){
@@ -134,6 +135,12 @@
var apiTokenInput = document.getElementById('apiToken'); var apiTokenInput = document.getElementById('apiToken');
var modelNameInput = document.getElementById('modelName'); var modelNameInput = document.getElementById('modelName');
// Parse markdown in initial welcome message
var initialBubble = chatMessages.querySelector('.message-bubble p');
if(initialBubble) {
initialBubble.innerHTML = marked.parseInline(initialBubble.textContent);
}
// Restore saved settings // Restore saved settings
var savedToken = localStorage.getItem('apiToken'); var savedToken = localStorage.getItem('apiToken');
if(savedToken) apiTokenInput.value = savedToken; if(savedToken) apiTokenInput.value = savedToken;
@@ -158,7 +165,11 @@
var p = document.createElement('p'); var p = document.createElement('p');
p.className = 'message-content'; p.className = 'message-content';
p.textContent = content; if(role === 'assistant') {
p.innerHTML = marked.parse(content);
} else {
p.textContent = content;
}
bubble.appendChild(p); bubble.appendChild(p);
msgDiv.appendChild(avatar); msgDiv.appendChild(avatar);
@@ -276,7 +287,7 @@
var delta = json.choices && json.choices[0] && json.choices[0].delta; var delta = json.choices && json.choices[0] && json.choices[0].delta;
if(delta && delta.content) { if(delta && delta.content) {
streamContent += delta.content; streamContent += delta.content;
contentEl.textContent = streamContent; contentEl.innerHTML = marked.parse(streamContent);
chatMessages.scrollTop = chatMessages.scrollHeight; chatMessages.scrollTop = chatMessages.scrollHeight;
} }
} catch(e) { } catch(e) {
@@ -318,7 +329,7 @@
chatMessages.innerHTML = ''; chatMessages.innerHTML = '';
var welcomeMsg = document.createElement('div'); var welcomeMsg = document.createElement('div');
welcomeMsg.className = 'message assistant-message'; welcomeMsg.className = 'message assistant-message';
welcomeMsg.innerHTML = '<div class="message-avatar">AI</div><div class="message-bubble"><p>Hello! Chat cleared. How can I help you?</p></div>'; welcomeMsg.innerHTML = '<div class="message-avatar">AI</div><div class="message-bubble"><p>' + marked.parse('Hello! Chat cleared. How can I help you?') + '</p></div>';
chatMessages.appendChild(welcomeMsg); chatMessages.appendChild(welcomeMsg);
}); });

View File

@@ -287,7 +287,7 @@
prompt: prompt, prompt: prompt,
model: model, model: model,
n: 1, n: 1,
size: '1024x1024' size: '512x512'
}) })
}) })
.then(function(response) { .then(function(response) {