Skip to content

Commit 41c28c5

Browse files
committed
improve code
1 parent 5120b32 commit 41c28c5

File tree

5 files changed

+226
-218
lines changed

5 files changed

+226
-218
lines changed

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
"@codesandbox/sandpack-react": "^2.19.10",
120120
"@cyntler/react-doc-viewer": "^1.17.0",
121121
"@electric-sql/pglite": "0.2.13",
122-
"@google-cloud/vertexai": "^1.9.0",
122+
"@google-cloud/vertexai": "^1.9.2",
123123
"@google/generative-ai": "^0.21.0",
124124
"@huggingface/inference": "^2.8.1",
125125
"@icons-pack/react-simple-icons": "9.6.0",
@@ -183,7 +183,7 @@
183183
"nextjs-toploader": "^3.7.15",
184184
"numeral": "^2.0.6",
185185
"nuqs": "^1.20.0",
186-
"officeparser": "^4.2.0",
186+
"officeparser": "^5.1.1",
187187
"ollama": "^0.5.11",
188188
"openai": "^4.77.3",
189189
"openapi-fetch": "^0.13.4",
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { readFileSync } from 'node:fs';
22
import { resolve } from 'node:path';
33

4-
import { getLLMConfig } from '@/config/llm';
54
import { AgentRuntime, ModelProvider } from '@/libs/agent-runtime';
65
import { LobeVertexAI } from '@/libs/agent-runtime/vertexai';
76
import { safeParseJSON } from '@/utils/safeParseJSON';
@@ -11,28 +10,21 @@ import { POST as UniverseRoute } from '../[provider]/route';
1110
export const POST = async (req: Request) =>
1211
UniverseRoute(req, {
1312
createRuntime: () => {
14-
const {
15-
VERTEXAI_PROJECT,
16-
VERTEXAI_LOCATION,
17-
VERTEXAI_CREDENTIALS,
18-
VERTEXAI_CREDENTIALS_PATH,
19-
} = getLLMConfig();
20-
2113
const credentialsContent =
22-
VERTEXAI_CREDENTIALS ??
23-
(VERTEXAI_CREDENTIALS_PATH
24-
? readFileSync(resolve(process.cwd(), VERTEXAI_CREDENTIALS_PATH), 'utf8')
14+
process.env.VERTEXAI_CREDENTIALS ??
15+
(process.env.VERTEXAI_CREDENTIALS_PATH
16+
? readFileSync(resolve(process.cwd(), process.env.VERTEXAI_CREDENTIALS_PATH), 'utf8')
2517
: undefined);
2618

2719
const googleAuthOptions = credentialsContent ? safeParseJSON(credentialsContent) : undefined;
2820

2921
const instance = LobeVertexAI.initFromVertexAI({
3022
googleAuthOptions: googleAuthOptions,
31-
location: VERTEXAI_LOCATION,
32-
project: VERTEXAI_PROJECT,
23+
location: process.env.VERTEXAI_LOCATION,
24+
project: process.env.VERTEXAI_PROJECT,
3325
});
3426

3527
return new AgentRuntime(instance);
3628
},
37-
params: { provider: ModelProvider.VertexAI },
29+
params: Promise.resolve({ provider: ModelProvider.VertexAI }),
3830
});

src/config/aiModels/index.ts

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import { default as stepfun } from './stepfun';
3333
import { default as taichu } from './taichu';
3434
import { default as togetherai } from './togetherai';
3535
import { default as upstage } from './upstage';
36+
import { default as vertexai } from './vertexai';
3637
import { default as wenxin } from './wenxin';
3738
import { default as xai } from './xai';
3839
import { default as zeroone } from './zeroone';
@@ -91,6 +92,7 @@ export const LOBE_DEFAULT_MODEL_LIST = buildDefaultModelList({
9192
taichu,
9293
togetherai,
9394
upstage,
95+
vertexai,
9496
wenxin,
9597
xai,
9698
zeroone,
@@ -130,6 +132,7 @@ export { default as stepfun } from './stepfun';
130132
export { default as taichu } from './taichu';
131133
export { default as togetherai } from './togetherai';
132134
export { default as upstage } from './upstage';
135+
export { default as vertexai } from './vertexai';
133136
export { default as wenxin } from './wenxin';
134137
export { default as xai } from './xai';
135138
export { default as zeroone } from './zeroone';

src/config/aiModels/vertexai.ts

+207
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
import { AIChatModelCard } from '@/types/aiModel';
2+
3+
// ref: https://ai.google.dev/gemini-api/docs/models/gemini
4+
const vertexaiChatModels: AIChatModelCard[] = [
5+
{
6+
abilities: { functionCall: true, vision: true },
7+
contextWindowTokens: 1_000_000 + 8192,
8+
description:
9+
'Gemini 1.5 Flash 是Google最新的多模态AI模型,具备快速处理能力,支持文本、图像和视频输入,适用于多种任务的高效扩展。',
10+
displayName: 'Gemini 1.5 Flash',
11+
enabled: true,
12+
id: 'gemini-1.5-flash-latest',
13+
maxOutput: 8192,
14+
pricing: {
15+
cachedInput: 0.018_75,
16+
input: 0.075,
17+
output: 0.3,
18+
},
19+
type: 'chat',
20+
},
21+
{
22+
abilities: { functionCall: true, vision: true },
23+
contextWindowTokens: 1_000_000 + 8192,
24+
description: 'Gemini 1.5 Flash 002 是一款高效的多模态模型,支持广泛应用的扩展。',
25+
displayName: 'Gemini 1.5 Flash 002',
26+
enabled: true,
27+
id: 'gemini-1.5-flash-002',
28+
maxOutput: 8192,
29+
pricing: {
30+
cachedInput: 0.018_75,
31+
input: 0.075,
32+
output: 0.3,
33+
},
34+
releasedAt: '2024-09-25',
35+
type: 'chat',
36+
},
37+
{
38+
abilities: { functionCall: true, vision: true },
39+
contextWindowTokens: 1_000_000 + 8192,
40+
description: 'Gemini 1.5 Flash 001 是一款高效的多模态模型,支持广泛应用的扩展。',
41+
displayName: 'Gemini 1.5 Flash 001',
42+
id: 'gemini-1.5-flash-001',
43+
maxOutput: 8192,
44+
pricing: {
45+
cachedInput: 0.018_75,
46+
input: 0.075,
47+
output: 0.3,
48+
},
49+
type: 'chat',
50+
},
51+
{
52+
abilities: { functionCall: true, vision: true },
53+
contextWindowTokens: 1_000_000 + 8192,
54+
description: 'Gemini 1.5 Flash 0827 提供了优化后的多模态处理能力,适用多种复杂任务场景。',
55+
displayName: 'Gemini 1.5 Flash 0827',
56+
id: 'gemini-1.5-flash-exp-0827',
57+
maxOutput: 8192,
58+
pricing: {
59+
cachedInput: 0.018_75,
60+
input: 0.075,
61+
output: 0.3,
62+
},
63+
releasedAt: '2024-08-27',
64+
type: 'chat',
65+
},
66+
67+
{
68+
abilities: { functionCall: true, vision: true },
69+
contextWindowTokens: 1_000_000 + 8192,
70+
description:
71+
'Gemini 1.5 Flash 8B 0924 是最新的实验性模型,在文本和多模态用例中都有显著的性能提升。',
72+
displayName: 'Gemini 1.5 Flash 8B 0924',
73+
id: 'gemini-1.5-flash-8b-exp-0924',
74+
maxOutput: 8192,
75+
pricing: {
76+
cachedInput: 0.018_75,
77+
input: 0.075,
78+
output: 0.3,
79+
},
80+
releasedAt: '2024-09-24',
81+
type: 'chat',
82+
},
83+
{
84+
abilities: { functionCall: true, vision: true },
85+
contextWindowTokens: 2_000_000 + 8192,
86+
description:
87+
'Gemini 1.5 Pro 支持高达200万个tokens,是中型多模态模型的理想选择,适用于复杂任务的多方面支持。',
88+
displayName: 'Gemini 1.5 Pro',
89+
enabled: true,
90+
id: 'gemini-1.5-pro-latest',
91+
maxOutput: 8192,
92+
pricing: {
93+
cachedInput: 0.875,
94+
input: 3.5,
95+
output: 10.5,
96+
},
97+
releasedAt: '2024-02-15',
98+
type: 'chat',
99+
},
100+
{
101+
abilities: { functionCall: true, vision: true },
102+
contextWindowTokens: 2_000_000 + 8192,
103+
description:
104+
'Gemini 1.5 Pro 002 是最新的生产就绪模型,提供更高质量的输出,特别在数学、长上下文和视觉任务方面有显著提升。',
105+
displayName: 'Gemini 1.5 Pro 002',
106+
enabled: true,
107+
id: 'gemini-1.5-pro-002',
108+
maxOutput: 8192,
109+
pricing: {
110+
cachedInput: 0.315,
111+
input: 1.25,
112+
output: 2.5,
113+
},
114+
releasedAt: '2024-09-24',
115+
type: 'chat',
116+
},
117+
{
118+
abilities: { functionCall: true, vision: true },
119+
contextWindowTokens: 2_000_000 + 8192,
120+
description: 'Gemini 1.5 Pro 001 是可扩展的多模态AI解决方案,支持广泛的复杂任务。',
121+
displayName: 'Gemini 1.5 Pro 001',
122+
id: 'gemini-1.5-pro-001',
123+
maxOutput: 8192,
124+
pricing: {
125+
cachedInput: 0.875,
126+
input: 3.5,
127+
output: 10.5,
128+
},
129+
releasedAt: '2024-02-15',
130+
type: 'chat',
131+
},
132+
{
133+
abilities: { functionCall: true, vision: true },
134+
contextWindowTokens: 2_000_000 + 8192,
135+
description: 'Gemini 1.5 Pro 0827 结合最新优化技术,带来更高效的多模态数据处理能力。',
136+
displayName: 'Gemini 1.5 Pro 0827',
137+
id: 'gemini-1.5-pro-exp-0827',
138+
maxOutput: 8192,
139+
pricing: {
140+
cachedInput: 0.875,
141+
input: 3.5,
142+
output: 10.5,
143+
},
144+
releasedAt: '2024-08-27',
145+
type: 'chat',
146+
},
147+
{
148+
abilities: { functionCall: true, vision: true },
149+
contextWindowTokens: 2_000_000 + 8192,
150+
description: 'Gemini 1.5 Pro 0801 提供出色的多模态处理能力,为应用开发带来更大灵活性。',
151+
displayName: 'Gemini 1.5 Pro 0801',
152+
id: 'gemini-1.5-pro-exp-0801',
153+
maxOutput: 8192,
154+
pricing: {
155+
cachedInput: 0.875,
156+
input: 3.5,
157+
output: 10.5,
158+
},
159+
releasedAt: '2024-08-01',
160+
type: 'chat',
161+
},
162+
{
163+
contextWindowTokens: 30_720 + 2048,
164+
description: 'Gemini 1.0 Pro 是Google的高性能AI模型,专为广泛任务扩展而设计。',
165+
displayName: 'Gemini 1.0 Pro',
166+
id: 'gemini-1.0-pro-latest',
167+
maxOutput: 2048,
168+
pricing: {
169+
input: 0.5,
170+
output: 1.5,
171+
},
172+
releasedAt: '2023-12-06',
173+
type: 'chat',
174+
},
175+
{
176+
abilities: { functionCall: true },
177+
contextWindowTokens: 30_720 + 2048,
178+
description:
179+
'Gemini 1.0 Pro 001 (Tuning) 提供稳定并可调优的性能,是复杂任务解决方案的理想选择。',
180+
displayName: 'Gemini 1.0 Pro 001 (Tuning)',
181+
id: 'gemini-1.0-pro-001',
182+
maxOutput: 2048,
183+
pricing: {
184+
input: 0.5,
185+
output: 1.5,
186+
},
187+
releasedAt: '2023-12-06',
188+
type: 'chat',
189+
},
190+
{
191+
contextWindowTokens: 30_720 + 2048,
192+
description: 'Gemini 1.0 Pro 002 (Tuning) 提供出色的多模态支持,专注于复杂任务的有效解决。',
193+
displayName: 'Gemini 1.0 Pro 002 (Tuning)',
194+
id: 'gemini-1.0-pro-002',
195+
maxOutput: 2048,
196+
pricing: {
197+
input: 0.5,
198+
output: 1.5,
199+
},
200+
releasedAt: '2023-12-06',
201+
type: 'chat',
202+
},
203+
];
204+
205+
export const allModels = [...vertexaiChatModels];
206+
207+
export default allModels;

0 commit comments

Comments
 (0)