chat: Support new models

This commit is contained in:
2025-02-27 08:54:51 +01:00
parent fe23f342c1
commit be279a5f86
+18 -26
View File
@@ -188,13 +188,13 @@
</label>
<label class="model-opt__label">
<input type="radio" name="model" value="claude-3-5-sonnet-20241022" />
Claude 3.5 Sonnet
<input type="radio" name="model" value="claude-3-7-sonnet-20250219" />
Claude 3.7 Sonnet
</label>
<label class="model-opt__label">
<input type="radio" name="model" value="gemini-1.5-flash-8b-latest" />
Gemini 1.5 Flash 8b
<input type="radio" name="model" value="gemini-2.0-flash-lite" />
Gemini 2.0 Flash Lite
</label>
</details>
</div>
@@ -263,23 +263,15 @@
const chat = {
chatgpt: (params) => chatWithOpenAI({ ...params, apiKey: window.env.OPENAI_API_KEY, model: "gpt-4o" }),
claude: (params) =>
chatWithClaude({
...params,
apiKey: window.env.ANTHROPIC_API_KEY,
model: "claude-3-5-sonnet-20241022",
}),
claude: (params) => chatWithClaude({ ...params, apiKey: window.env.ANTHROPIC_API_KEY, model: "claude-3-5-sonnet-20241022" }),
"gpt-4o": (params) => chatWithOpenAI({ ...params, apiKey: window.env.OPENAI_API_KEY, model: "gpt-4o" }),
"gpt-4o-mini": (params) => chatWithOpenAI({ ...params, apiKey: window.env.OPENAI_API_KEY, model: "gpt-4o-mini" }),
"gemini-1.5-flash-8b-latest": (params) =>
chatWithGemini({ ...params, apiKey: window.env.GEMINI_API_KEY, model: "gemini-1.5-flash-8b-latest" }),
"claude-3-5-sonnet-20241022": (params) =>
chatWithClaude({
...params,
apiKey: window.env.ANTHROPIC_API_KEY,
model: "claude-3-5-sonnet-20241022",
}),
"gemini-1.5-flash-8b-latest": (params) => chatWithGemini({ ...params, apiKey: window.env.GEMINI_API_KEY, model: "gemini-1.5-flash-8b-latest" }),
"gemini-2.0-flash-lite": (params) => chatWithGemini({ ...params, apiKey: window.env.GEMINI_API_KEY, model: "gemini-2.0-flash-lite" }),
"claude-3-5-sonnet-20241022": (params) => chatWithClaude({ ...params, apiKey: window.env.ANTHROPIC_API_KEY, model: "claude-3-5-sonnet-20241022" }),
"claude-3-7-sonnet-20250219": (params) => chatWithClaude({ ...params, apiKey: window.env.ANTHROPIC_API_KEY, model: "claude-3-7-sonnet-20250219" }),
}[pickedModel];
if (!chat) {
console.error(`Unknown model: ${window.env.MODEL}`);
return;
@@ -309,18 +301,18 @@
}
function createMessageElement(content, isUser) {
const message = document.createElement("div");
message.className = `message ${isUser ? "user-message" : "system-message"}`;
message.innerHTML = marked.parse(content, { sanitize: true });
return message;
const $el = document.createElement("div");
$el.className = `message ${isUser ? "user-message" : "system-message"}`;
$el.innerHTML = marked.parse(content, { sanitize: true });
return $el;
}
function updateMessageContent(element, content) {
element.innerHTML = marked.parse(content, { sanitize: true });
function updateMessageContent($el, markdown) {
$el.innerHTML = marked.parse(markdown, { sanitize: true });
}
function scrollToBottom(element) {
element.scrollTop = element.scrollHeight;
function scrollToBottom($el) {
$el.scrollTop = $el.scrollHeight;
}
async function chatWithOpenAI({ onContent, messages, signal, apiKey, model }) {