Spaces:
Running
Modify my existing ChatRouter project so that it uses only the following model IDs for OpenRouter requests.
Browse filesThe model dropdown should list these exact IDs (not display names), and when a user selects one, the selected value passed to the API should exactly match the ID below.
alibaba/tongyi-deepresearch-30b-a3b:free,
meituan/longcat-flash-chat:free,
nvidia/nemotron-nano-9b-v2:free,
deepseek/deepseek-chat-v3.1:free,
openai/gpt-oss-20b:free,
z-ai/glm-4.5-air:free,
qwen/qwen3-coder:free,
moonshotai/kimi-k2:free,
cognitivecomputations/dolphin-mistral-24b-venice-edition:free,
google/gemma-3n-e2b-it:free,
tencent/hunyuan-a13b-instruct:free,
tngtech/deepseek-r1t2-chimera:free,
mistralai/mistral-small-3.2-24b-instruct:free,
moonshotai/kimi-dev-72b:free,
deepseek/deepseek-r1-0528-qwen3-8b:free,
deepseek/deepseek-r1-0528:free,
mistralai/devstral-small-2505:free,
google/gemma-3n-e4b-it:free,
meta-llama/llama-3.3-8b-instruct:free,
qwen/qwen3-4b:free,
qwen/qwen3-30b-a3b:free,
qwen/qwen3-8b:free,
qwen/qwen3-14b:free,
qwen/qwen3-235b-a22b:free,
tngtech/deepseek-r1t-chimera:free,
microsoft/mai-ds-r1:free,
shisa-ai/shisa-v2-llama3.3-70b:free,
arliai/qwq-32b-arliai-rpr-v1:free,
agentica-org/deepcoder-14b-preview:free,
meta-llama/llama-4-maverick:free,
meta-llama/llama-4-scout:free,
qwen/qwen2.5-vl-32b-instruct:free,
deepseek/deepseek-chat-v3-0324:free,
mistralai/mistral-small-3.1-24b-instruct:free,
google/gemma-3-4b-it:free,
google/gemma-3-12b-it:free,
google/gemma-3-27b-it:free,
nousresearch/deephermes-3-llama-3-8b-preview:free,
cognitivecomputations/dolphin3.0-mistral-24b:free,
qwen/qwen2.5-vl-72b-instruct:free,
mistralai/mistral-small-24b-instruct-2501:free,
deepseek/deepseek-r1-distill-llama-70b:free,
deepseek/deepseek-r1:free,
google/gemini-2.0-flash-exp:free,
meta-llama/llama-3.3-70b-instruct:free,
qwen/qwen-2.5-coder-32b-instruct:free,
meta-llama/llama-3.2-3b-instruct:free,
qwen/qwen-2.5-72b-instruct:free,
mistralai/mistral-nemo:free,
google/gemma-2-9b-it:free,
mistralai/mistral-7b-instruct:free
- index.html +56 -24
|
@@ -447,26 +447,59 @@ async function loadSettings() {
|
|
| 447 |
}
|
| 448 |
// Free models from OpenRouter
|
| 449 |
const freeModels = [
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
| 458 |
-
|
| 459 |
-
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 467 |
];
|
| 468 |
-
|
| 469 |
-
// Fetch available free models
|
| 470 |
async function fetchModels(apiKey) {
|
| 471 |
try {
|
| 472 |
// Clear existing options
|
|
@@ -481,14 +514,13 @@ async function loadSettings() {
|
|
| 481 |
modelSelect.appendChild(defaultOption);
|
| 482 |
|
| 483 |
// Add free models
|
| 484 |
-
freeModels.forEach(
|
| 485 |
const option = document.createElement('option');
|
| 486 |
-
option.value =
|
| 487 |
-
option.textContent =
|
| 488 |
modelSelect.appendChild(option);
|
| 489 |
});
|
| 490 |
-
|
| 491 |
-
// Verify API key is still needed for these free models
|
| 492 |
if (!apiKey) {
|
| 493 |
addMessage('system', 'Free models selected. Some features may require an API key.');
|
| 494 |
}
|
|
|
|
| 447 |
}
|
| 448 |
// Free models from OpenRouter
|
| 449 |
const freeModels = [
|
| 450 |
+
'alibaba/tongyi-deepresearch-30b-a3b:free',
|
| 451 |
+
'meituan/longcat-flash-chat:free',
|
| 452 |
+
'nvidia/nemotron-nano-9b-v2:free',
|
| 453 |
+
'deepseek/deepseek-chat-v3.1:free',
|
| 454 |
+
'openai/gpt-oss-20b:free',
|
| 455 |
+
'z-ai/glm-4.5-air:free',
|
| 456 |
+
'qwen/qwen3-coder:free',
|
| 457 |
+
'moonshotai/kimi-k2:free',
|
| 458 |
+
'cognitivecomputations/dolphin-mistral-24b-venice-edition:free',
|
| 459 |
+
'google/gemma-3n-e2b-it:free',
|
| 460 |
+
'tencent/hunyuan-a13b-instruct:free',
|
| 461 |
+
'tngtech/deepseek-r1t2-chimera:free',
|
| 462 |
+
'mistralai/mistral-small-3.2-24b-instruct:free',
|
| 463 |
+
'moonshotai/kimi-dev-72b:free',
|
| 464 |
+
'deepseek/deepseek-r1-0528-qwen3-8b:free',
|
| 465 |
+
'deepseek/deepseek-r1-0528:free',
|
| 466 |
+
'mistralai/devstral-small-2505:free',
|
| 467 |
+
'google/gemma-3n-e4b-it:free',
|
| 468 |
+
'meta-llama/llama-3.3-8b-instruct:free',
|
| 469 |
+
'qwen/qwen3-4b:free',
|
| 470 |
+
'qwen/qwen3-30b-a3b:free',
|
| 471 |
+
'qwen/qwen3-8b:free',
|
| 472 |
+
'qwen/qwen3-14b:free',
|
| 473 |
+
'qwen/qwen3-235b-a22b:free',
|
| 474 |
+
'tngtech/deepseek-r1t-chimera:free',
|
| 475 |
+
'microsoft/mai-ds-r1:free',
|
| 476 |
+
'shisa-ai/shisa-v2-llama3.3-70b:free',
|
| 477 |
+
'arliai/qwq-32b-arliai-rpr-v1:free',
|
| 478 |
+
'agentica-org/deepcoder-14b-preview:free',
|
| 479 |
+
'meta-llama/llama-4-maverick:free',
|
| 480 |
+
'meta-llama/llama-4-scout:free',
|
| 481 |
+
'qwen/qwen2.5-vl-32b-instruct:free',
|
| 482 |
+
'deepseek/deepseek-chat-v3-0324:free',
|
| 483 |
+
'mistralai/mistral-small-3.1-24b-instruct:free',
|
| 484 |
+
'google/gemma-3-4b-it:free',
|
| 485 |
+
'google/gemma-3-12b-it:free',
|
| 486 |
+
'google/gemma-3-27b-it:free',
|
| 487 |
+
'nousresearch/deephermes-3-llama-3-8b-preview:free',
|
| 488 |
+
'cognitivecomputations/dolphin3.0-mistral-24b:free',
|
| 489 |
+
'qwen/qwen2.5-vl-72b-instruct:free',
|
| 490 |
+
'mistralai/mistral-small-24b-instruct-2501:free',
|
| 491 |
+
'deepseek/deepseek-r1-distill-llama-70b:free',
|
| 492 |
+
'deepseek/deepseek-r1:free',
|
| 493 |
+
'google/gemini-2.0-flash-exp:free',
|
| 494 |
+
'meta-llama/llama-3.3-70b-instruct:free',
|
| 495 |
+
'qwen/qwen-2.5-coder-32b-instruct:free',
|
| 496 |
+
'meta-llama/llama-3.2-3b-instruct:free',
|
| 497 |
+
'qwen/qwen-2.5-72b-instruct:free',
|
| 498 |
+
'mistralai/mistral-nemo:free',
|
| 499 |
+
'google/gemma-2-9b-it:free',
|
| 500 |
+
'mistralai/mistral-7b-instruct:free'
|
| 501 |
];
|
| 502 |
+
// Fetch available free models
|
|
|
|
| 503 |
async function fetchModels(apiKey) {
|
| 504 |
try {
|
| 505 |
// Clear existing options
|
|
|
|
| 514 |
modelSelect.appendChild(defaultOption);
|
| 515 |
|
| 516 |
// Add free models
|
| 517 |
+
freeModels.forEach(modelId => {
|
| 518 |
const option = document.createElement('option');
|
| 519 |
+
option.value = modelId;
|
| 520 |
+
option.textContent = modelId;
|
| 521 |
modelSelect.appendChild(option);
|
| 522 |
});
|
| 523 |
+
// Verify API key is still needed for these free models
|
|
|
|
| 524 |
if (!apiKey) {
|
| 525 |
addMessage('system', 'Free models selected. Some features may require an API key.');
|
| 526 |
}
|