xiaobo ren commited on
Commit ·
58d2e5a
1
Parent(s): 4b7c080
Update Gemini models to use available models (2.5-pro, 2.5-flash, 2.0-flash) and expand API test coverage
Browse files- server/apiConfig.js +9 -5
- test-apis.js +17 -1
server/apiConfig.js
CHANGED
|
@@ -7,9 +7,14 @@
|
|
| 7 |
const API_CONFIGS = {
|
| 8 |
// Google Gemini
|
| 9 |
gemini: {
|
| 10 |
-
baseUrl: 'https://generativelanguage.googleapis.com/
|
| 11 |
apiKey: process.env.GEMINI_API_KEY || 'AIzaSyBiz_9_zhb3c9mxl3dePVfIv1iiao-_6dw',
|
| 12 |
-
models: [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
format: 'gemini', // 使用 Gemini 原生格式
|
| 14 |
},
|
| 15 |
|
|
@@ -75,10 +80,9 @@ export function buildApiRequest(modelName, systemPrompt, userPrompt, temperature
|
|
| 75 |
const config = getApiConfigForModel(modelName);
|
| 76 |
|
| 77 |
if (config.format === 'gemini') {
|
| 78 |
-
// Google Gemini 格式 - 使用
|
| 79 |
-
//
|
| 80 |
const geminiModel = modelName.replace('-latest', ''); // 移除 -latest 后缀
|
| 81 |
-
// 对于 v1beta,模型名称格式为: models/gemini-1.5-pro
|
| 82 |
return {
|
| 83 |
url: `${config.baseUrl}/models/${geminiModel}:generateContent?key=${config.apiKey}`,
|
| 84 |
headers: { 'Content-Type': 'application/json' },
|
|
|
|
| 7 |
const API_CONFIGS = {
|
| 8 |
// Google Gemini
|
| 9 |
gemini: {
|
| 10 |
+
baseUrl: 'https://generativelanguage.googleapis.com/v1',
|
| 11 |
apiKey: process.env.GEMINI_API_KEY || 'AIzaSyBiz_9_zhb3c9mxl3dePVfIv1iiao-_6dw',
|
| 12 |
+
models: [
|
| 13 |
+
'gemini-2.5-pro', 'gemini-2.5-flash', 'gemini-2.5-flash-lite',
|
| 14 |
+
'gemini-2.0-flash', 'gemini-2.0-flash-001', 'gemini-2.0-flash-lite', 'gemini-2.0-flash-lite-001',
|
| 15 |
+
// 保留旧模型名称以兼容
|
| 16 |
+
'gemini-1.5-pro', 'gemini-1.5-flash', 'gemini-pro', 'gemini-3-pro-preview'
|
| 17 |
+
],
|
| 18 |
format: 'gemini', // 使用 Gemini 原生格式
|
| 19 |
},
|
| 20 |
|
|
|
|
| 80 |
const config = getApiConfigForModel(modelName);
|
| 81 |
|
| 82 |
if (config.format === 'gemini') {
|
| 83 |
+
// Google Gemini 格式 - 使用 v1 API
|
| 84 |
+
// v1 API 使用 models/{model}:generateContent 格式
|
| 85 |
const geminiModel = modelName.replace('-latest', ''); // 移除 -latest 后缀
|
|
|
|
| 86 |
return {
|
| 87 |
url: `${config.baseUrl}/models/${geminiModel}:generateContent?key=${config.apiKey}`,
|
| 88 |
headers: { 'Content-Type': 'application/json' },
|
test-apis.js
CHANGED
|
@@ -6,13 +6,29 @@ import { buildApiRequest, parseApiResponse, getApiConfigForModel } from './serve
|
|
| 6 |
import fetch from 'node-fetch';
|
| 7 |
|
| 8 |
const testModels = [
|
|
|
|
|
|
|
| 9 |
{ name: 'gpt-5-mini', provider: 'OpenAI GPT-5 Mini' },
|
| 10 |
{ name: 'gpt-4.1', provider: 'OpenAI GPT-4.1' },
|
| 11 |
{ name: 'gpt-4o', provider: 'OpenAI GPT-4o' },
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
{ name: 'grok-4-0709', provider: 'Grok 4 (xAI)' },
|
| 13 |
{ name: 'grok-4-1-fast-reasoning', provider: 'Grok 4.1 Fast Reasoning (xAI)' },
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
{ name: 'claude-sonnet-4-5', provider: 'Claude Sonnet 4.5 (Anthropic)' },
|
| 15 |
-
{ name: 'claude-3-5-haiku-20241022', provider: 'Claude Haiku (Anthropic)' },
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
];
|
| 17 |
|
| 18 |
async function testAllApis() {
|
|
|
|
| 6 |
import fetch from 'node-fetch';
|
| 7 |
|
| 8 |
const testModels = [
|
| 9 |
+
// OpenAI Models
|
| 10 |
+
{ name: 'gpt-5.1', provider: 'OpenAI GPT-5.1' },
|
| 11 |
{ name: 'gpt-5-mini', provider: 'OpenAI GPT-5 Mini' },
|
| 12 |
{ name: 'gpt-4.1', provider: 'OpenAI GPT-4.1' },
|
| 13 |
{ name: 'gpt-4o', provider: 'OpenAI GPT-4o' },
|
| 14 |
+
{ name: 'gpt-4o-mini', provider: 'OpenAI GPT-4o Mini' },
|
| 15 |
+
{ name: 'gpt-4-turbo', provider: 'OpenAI GPT-4 Turbo' },
|
| 16 |
+
|
| 17 |
+
// Grok Models (xAI)
|
| 18 |
{ name: 'grok-4-0709', provider: 'Grok 4 (xAI)' },
|
| 19 |
{ name: 'grok-4-1-fast-reasoning', provider: 'Grok 4.1 Fast Reasoning (xAI)' },
|
| 20 |
+
{ name: 'grok-4-1-fast-non-reasoning', provider: 'Grok 4.1 Fast Non-Reasoning (xAI)' },
|
| 21 |
+
{ name: 'grok-4-fast-reasoning', provider: 'Grok 4 Fast Reasoning (xAI)' },
|
| 22 |
+
|
| 23 |
+
// Claude Models (Anthropic)
|
| 24 |
+
{ name: 'claude-opus-4-5', provider: 'Claude Opus 4.5 (Anthropic)' },
|
| 25 |
{ name: 'claude-sonnet-4-5', provider: 'Claude Sonnet 4.5 (Anthropic)' },
|
| 26 |
+
{ name: 'claude-3-5-haiku-20241022', provider: 'Claude Haiku 3.5 (Anthropic)' },
|
| 27 |
+
|
| 28 |
+
// Gemini Models (Google)
|
| 29 |
+
{ name: 'gemini-2.5-pro', provider: 'Gemini 2.5 Pro (Google)' },
|
| 30 |
+
{ name: 'gemini-2.5-flash', provider: 'Gemini 2.5 Flash (Google)' },
|
| 31 |
+
{ name: 'gemini-2.0-flash', provider: 'Gemini 2.0 Flash (Google)' },
|
| 32 |
];
|
| 33 |
|
| 34 |
async function testAllApis() {
|