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