@lobehub/chat 1.126.2 → 1.126.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/changelog/v1.json +9 -0
- package/locales/ar/models.json +38 -11
- package/locales/bg-BG/models.json +38 -11
- package/locales/de-DE/models.json +38 -11
- package/locales/en-US/models.json +38 -11
- package/locales/es-ES/models.json +38 -11
- package/locales/fa-IR/models.json +38 -11
- package/locales/fr-FR/models.json +38 -11
- package/locales/it-IT/models.json +38 -11
- package/locales/ja-JP/models.json +38 -11
- package/locales/ko-KR/models.json +38 -11
- package/locales/nl-NL/models.json +38 -11
- package/locales/pl-PL/models.json +38 -11
- package/locales/pt-BR/models.json +38 -11
- package/locales/ru-RU/models.json +38 -11
- package/locales/tr-TR/models.json +38 -11
- package/locales/vi-VN/models.json +38 -11
- package/locales/zh-CN/models.json +38 -11
- package/locales/zh-TW/models.json +38 -11
- package/package.json +2 -2
- package/packages/model-bank/package.json +1 -0
- package/packages/model-bank/src/aiModels/cometapi.ts +349 -0
- package/packages/model-bank/src/aiModels/index.ts +3 -0
- package/packages/model-runtime/src/cometapi/index.ts +49 -0
- package/packages/model-runtime/src/index.ts +1 -0
- package/packages/model-runtime/src/runtimeMap.ts +2 -0
- package/packages/model-runtime/src/types/type.ts +1 -0
- package/packages/types/src/user/settings/keyVaults.ts +1 -0
- package/src/config/llm.ts +6 -0
- package/src/config/modelProviders/cometapi.ts +24 -0
- package/src/config/modelProviders/index.ts +3 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ModelProvider } from '../types';
|
|
2
|
+
import { processMultiProviderModelList } from '../utils/modelParse';
|
|
3
|
+
import { createOpenAICompatibleRuntime } from '../utils/openaiCompatibleFactory';
|
|
4
|
+
|
|
5
|
+
export interface CometAPIModelCard {
|
|
6
|
+
id: string;
|
|
7
|
+
object: string;
|
|
8
|
+
owned_by: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const LobeCometAPIAI = createOpenAICompatibleRuntime({
|
|
12
|
+
baseURL: 'https://api.cometapi.com/v1',
|
|
13
|
+
chatCompletion: {
|
|
14
|
+
handlePayload: (payload) => {
|
|
15
|
+
const { model, ...rest } = payload;
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
...rest,
|
|
19
|
+
model,
|
|
20
|
+
stream: true,
|
|
21
|
+
} as any;
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
debug: {
|
|
25
|
+
chatCompletion: () => process.env.DEBUG_COMETAPI_COMPLETION === '1',
|
|
26
|
+
},
|
|
27
|
+
models: async ({ client }) => {
|
|
28
|
+
try {
|
|
29
|
+
const modelsPage = (await client.models.list()) as any;
|
|
30
|
+
const rawList: any[] = modelsPage.data || [];
|
|
31
|
+
|
|
32
|
+
// 处理模型列表,移除不必要的字段
|
|
33
|
+
const modelList: CometAPIModelCard[] = rawList.map((model) => ({
|
|
34
|
+
id: model.id,
|
|
35
|
+
object: model.object,
|
|
36
|
+
owned_by: model.owned_by,
|
|
37
|
+
}));
|
|
38
|
+
|
|
39
|
+
return await processMultiProviderModelList(modelList, 'cometapi');
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.warn(
|
|
42
|
+
'Failed to fetch CometAPI models. Please ensure your CometAPI API key is valid:',
|
|
43
|
+
error,
|
|
44
|
+
);
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
provider: ModelProvider.CometAPI,
|
|
49
|
+
});
|
|
@@ -5,6 +5,7 @@ export { LobeAzureOpenAI } from './azureOpenai';
|
|
|
5
5
|
export * from './BaseAI';
|
|
6
6
|
export { LobeBedrockAI } from './bedrock';
|
|
7
7
|
export { LobeBflAI } from './bfl';
|
|
8
|
+
export { LobeCometAPIAI } from './cometapi';
|
|
8
9
|
export { LobeDeepSeekAI } from './deepseek';
|
|
9
10
|
export { LobeGoogleAI } from './google';
|
|
10
11
|
export { LobeGroq } from './groq';
|
|
@@ -11,6 +11,7 @@ import { LobeBedrockAI } from './bedrock';
|
|
|
11
11
|
import { LobeBflAI } from './bfl';
|
|
12
12
|
import { LobeCloudflareAI } from './cloudflare';
|
|
13
13
|
import { LobeCohereAI } from './cohere';
|
|
14
|
+
import { LobeCometAPIAI } from './cometapi';
|
|
14
15
|
import { LobeDeepSeekAI } from './deepseek';
|
|
15
16
|
import { LobeFalAI } from './fal';
|
|
16
17
|
import { LobeFireworksAI } from './fireworksai';
|
|
@@ -73,6 +74,7 @@ export const providerRuntimeMap = {
|
|
|
73
74
|
bfl: LobeBflAI,
|
|
74
75
|
cloudflare: LobeCloudflareAI,
|
|
75
76
|
cohere: LobeCohereAI,
|
|
77
|
+
cometapi: LobeCometAPIAI,
|
|
76
78
|
deepseek: LobeDeepSeekAI,
|
|
77
79
|
fal: LobeFalAI,
|
|
78
80
|
fireworksai: LobeFireworksAI,
|
|
@@ -49,6 +49,7 @@ export interface UserKeyVaults extends SearchEngineKeyVaults {
|
|
|
49
49
|
bedrock?: AWSBedrockKeyVault;
|
|
50
50
|
cloudflare?: CloudflareKeyVault;
|
|
51
51
|
cohere?: OpenAICompatibleKeyVault;
|
|
52
|
+
cometapi?: OpenAICompatibleKeyVault;
|
|
52
53
|
deepseek?: OpenAICompatibleKeyVault;
|
|
53
54
|
fal?: FalKeyVault;
|
|
54
55
|
fireworksai?: OpenAICompatibleKeyVault;
|
package/src/config/llm.ts
CHANGED
|
@@ -184,6 +184,9 @@ export const getLLMConfig = () => {
|
|
|
184
184
|
ENABLED_AKASHCHAT: z.boolean(),
|
|
185
185
|
AKASHCHAT_API_KEY: z.string().optional(),
|
|
186
186
|
|
|
187
|
+
ENABLED_COMETAPI: z.boolean(),
|
|
188
|
+
COMETAPI_KEY: z.string().optional(),
|
|
189
|
+
|
|
187
190
|
ENABLED_AIHUBMIX: z.boolean(),
|
|
188
191
|
AIHUBMIX_API_KEY: z.string().optional(),
|
|
189
192
|
|
|
@@ -369,6 +372,9 @@ export const getLLMConfig = () => {
|
|
|
369
372
|
ENABLED_AKASHCHAT: !!process.env.AKASHCHAT_API_KEY,
|
|
370
373
|
AKASHCHAT_API_KEY: process.env.AKASHCHAT_API_KEY,
|
|
371
374
|
|
|
375
|
+
ENABLED_COMETAPI: !!process.env.COMETAPI_KEY,
|
|
376
|
+
COMETAPI_KEY: process.env.COMETAPI_KEY,
|
|
377
|
+
|
|
372
378
|
ENABLED_AIHUBMIX: !!process.env.AIHUBMIX_API_KEY,
|
|
373
379
|
AIHUBMIX_API_KEY: process.env.AIHUBMIX_API_KEY,
|
|
374
380
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ModelProviderCard } from '@/types/llm';
|
|
2
|
+
|
|
3
|
+
// ref: https://api.cometapi.com/pricing
|
|
4
|
+
const CometAPI: ModelProviderCard = {
|
|
5
|
+
chatModels: [],
|
|
6
|
+
checkModel: 'gpt-5-mini',
|
|
7
|
+
description:
|
|
8
|
+
'CometAPI 是一个提供多种前沿大模型接口的服务平台,支持 OpenAI、Anthropic、Google 及更多,适合多样化的开发和应用需求。用户可根据自身需求灵活选择最优的模型和价格,助力AI体验的提升。',
|
|
9
|
+
enabled: true,
|
|
10
|
+
id: 'cometapi',
|
|
11
|
+
modelList: { showModelFetcher: true },
|
|
12
|
+
modelsUrl: 'https://api.cometapi.com/v1/models',
|
|
13
|
+
name: 'CometAPI',
|
|
14
|
+
settings: {
|
|
15
|
+
proxyUrl: {
|
|
16
|
+
placeholder: 'https://api.cometapi.com/v1',
|
|
17
|
+
},
|
|
18
|
+
sdkType: 'openai',
|
|
19
|
+
showModelFetcher: true,
|
|
20
|
+
},
|
|
21
|
+
url: 'https://cometapi.com',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default CometAPI;
|
|
@@ -13,6 +13,7 @@ import BedrockProvider from './bedrock';
|
|
|
13
13
|
import BflProvider from './bfl';
|
|
14
14
|
import CloudflareProvider from './cloudflare';
|
|
15
15
|
import CohereProvider from './cohere';
|
|
16
|
+
import CometAPIProvider from './cometapi';
|
|
16
17
|
import DeepSeekProvider from './deepseek';
|
|
17
18
|
import FalProvider from './fal';
|
|
18
19
|
import FireworksAIProvider from './fireworksai';
|
|
@@ -179,6 +180,7 @@ export const DEFAULT_MODEL_PROVIDER_LIST = [
|
|
|
179
180
|
AkashChatProvider,
|
|
180
181
|
QiniuProvider,
|
|
181
182
|
NebiusProvider,
|
|
183
|
+
CometAPIProvider,
|
|
182
184
|
];
|
|
183
185
|
|
|
184
186
|
export const filterEnabledModels = (provider: ModelProviderCard) => {
|
|
@@ -203,6 +205,7 @@ export { default as BedrockProviderCard } from './bedrock';
|
|
|
203
205
|
export { default as BflProviderCard } from './bfl';
|
|
204
206
|
export { default as CloudflareProviderCard } from './cloudflare';
|
|
205
207
|
export { default as CohereProviderCard } from './cohere';
|
|
208
|
+
export { default as CometAPIProviderCard } from './cometapi';
|
|
206
209
|
export { default as DeepSeekProviderCard } from './deepseek';
|
|
207
210
|
export { default as FalProviderCard } from './fal';
|
|
208
211
|
export { default as FireworksAIProviderCard } from './fireworksai';
|