@lobehub/lobehub 2.0.0-next.82 → 2.0.0-next.84
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 +58 -0
- package/changelog/v1.json +21 -0
- package/docs/usage/providers/comfyui.mdx +1 -1
- package/docs/usage/providers/comfyui.zh-CN.mdx +1 -1
- package/locales/ar/error.json +2 -2
- package/locales/ar/modelProvider.json +1 -1
- package/locales/ar/models.json +7 -1
- package/locales/bg-BG/error.json +2 -2
- package/locales/bg-BG/modelProvider.json +1 -1
- package/locales/bg-BG/models.json +7 -1
- package/locales/de-DE/error.json +2 -2
- package/locales/de-DE/modelProvider.json +1 -1
- package/locales/de-DE/models.json +7 -1
- package/locales/en-US/error.json +2 -2
- package/locales/en-US/modelProvider.json +1 -1
- package/locales/en-US/models.json +7 -1
- package/locales/es-ES/error.json +2 -2
- package/locales/es-ES/modelProvider.json +1 -1
- package/locales/es-ES/models.json +7 -1
- package/locales/fa-IR/error.json +2 -2
- package/locales/fa-IR/modelProvider.json +1 -1
- package/locales/fa-IR/models.json +7 -1
- package/locales/fr-FR/error.json +2 -2
- package/locales/fr-FR/modelProvider.json +1 -1
- package/locales/fr-FR/models.json +7 -1
- package/locales/it-IT/error.json +2 -2
- package/locales/it-IT/modelProvider.json +1 -1
- package/locales/it-IT/models.json +7 -1
- package/locales/ja-JP/error.json +2 -2
- package/locales/ja-JP/modelProvider.json +1 -1
- package/locales/ja-JP/models.json +7 -1
- package/locales/ko-KR/error.json +2 -2
- package/locales/ko-KR/modelProvider.json +1 -1
- package/locales/ko-KR/models.json +7 -1
- package/locales/nl-NL/error.json +2 -2
- package/locales/nl-NL/modelProvider.json +1 -1
- package/locales/nl-NL/models.json +7 -1
- package/locales/pl-PL/error.json +2 -2
- package/locales/pl-PL/modelProvider.json +1 -1
- package/locales/pl-PL/models.json +7 -1
- package/locales/pt-BR/error.json +2 -2
- package/locales/pt-BR/modelProvider.json +1 -1
- package/locales/pt-BR/models.json +7 -1
- package/locales/ru-RU/error.json +2 -2
- package/locales/ru-RU/modelProvider.json +1 -1
- package/locales/ru-RU/models.json +7 -1
- package/locales/tr-TR/error.json +2 -2
- package/locales/tr-TR/modelProvider.json +1 -1
- package/locales/tr-TR/models.json +7 -1
- package/locales/vi-VN/error.json +2 -2
- package/locales/vi-VN/modelProvider.json +1 -1
- package/locales/vi-VN/models.json +7 -1
- package/locales/zh-CN/error.json +2 -2
- package/locales/zh-CN/modelProvider.json +1 -1
- package/locales/zh-CN/models.json +7 -1
- package/locales/zh-TW/error.json +2 -2
- package/locales/zh-TW/modelProvider.json +1 -1
- package/locales/zh-TW/models.json +7 -1
- package/package.json +1 -1
- package/packages/model-bank/src/aiModels/google.ts +54 -0
- package/packages/model-bank/src/aiModels/novita.ts +3 -2
- package/packages/model-bank/src/aiModels/nvidia.ts +14 -0
- package/packages/model-bank/src/aiModels/ollamacloud.ts +23 -2
- package/packages/model-bank/src/aiModels/qwen.ts +88 -0
- package/packages/model-bank/src/aiModels/siliconcloud.ts +20 -0
- package/packages/model-bank/src/aiModels/vercelaigateway.ts +0 -17
- package/packages/model-bank/src/aiModels/volcengine.ts +1 -1
- package/packages/model-runtime/src/core/openaiCompatibleFactory/index.test.ts +108 -64
- package/packages/model-runtime/src/core/openaiCompatibleFactory/index.ts +150 -125
- package/packages/model-runtime/src/providers/newapi/index.test.ts +3 -75
- package/packages/model-runtime/src/providers/newapi/index.ts +1 -14
- package/packages/model-runtime/src/providers/openrouter/index.test.ts +3 -2
- package/packages/model-runtime/src/providers/openrouter/index.ts +1 -1
- package/src/app/[variants]/(main)/settings/provider/features/CreateNewProvider/index.tsx +19 -6
- package/src/app/[variants]/(main)/settings/provider/features/customProviderSdkOptions.ts +1 -0
- package/src/config/modelProviders/aihubmix.ts +1 -0
- package/src/config/modelProviders/newapi.ts +1 -0
- package/src/locales/default/modelProvider.ts +1 -1
|
@@ -1548,8 +1548,9 @@ describe('LobeOpenRouterAI - custom features', () => {
|
|
|
1548
1548
|
const models = await params.models();
|
|
1549
1549
|
|
|
1550
1550
|
const mixedModel = models.find((m) => m.id === 'mixed-free/model');
|
|
1551
|
-
// Input or output is 0
|
|
1552
|
-
|
|
1551
|
+
// Input or output is 0. Current behavior does not append '(free)' for mixed pricing,
|
|
1552
|
+
// so assert the displayName equals the cleaned model name.
|
|
1553
|
+
expect(mixedModel?.displayName).toBe('Mixed Free Model');
|
|
1553
1554
|
});
|
|
1554
1555
|
|
|
1555
1556
|
it('should handle very large pricing values', async () => {
|
|
@@ -99,7 +99,7 @@ export const params = {
|
|
|
99
99
|
const cachedInputPrice = formatPrice(pricing.input_cache_read);
|
|
100
100
|
const writeCacheInputPrice = formatPrice(pricing.input_cache_write);
|
|
101
101
|
|
|
102
|
-
const isFree =
|
|
102
|
+
const isFree = inputPrice === 0 && outputPrice === 0 && !displayName.endsWith('(free)');
|
|
103
103
|
if (isFree) {
|
|
104
104
|
displayName += ' (free)';
|
|
105
105
|
}
|
|
@@ -42,6 +42,15 @@ const CreateNewProvider = memo<CreateNewProviderProps>(({ onClose, open }) => {
|
|
|
42
42
|
name: values.name || values.id,
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
+
// 只为 openai 和 router (newapi) 类型的自定义 provider 添加 supportResponsesApi: true
|
|
46
|
+
const sdkType = values.settings?.sdkType;
|
|
47
|
+
if (sdkType === 'openai' || sdkType === 'router') {
|
|
48
|
+
finalValues.settings = {
|
|
49
|
+
...finalValues.settings,
|
|
50
|
+
supportResponsesApi: true,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
45
54
|
await createNewAiProvider(finalValues);
|
|
46
55
|
setLoading(false);
|
|
47
56
|
navigate(`/settings?active=provider&provider=${values.id}`);
|
|
@@ -102,12 +111,16 @@ const CreateNewProvider = memo<CreateNewProviderProps>(({ onClose, open }) => {
|
|
|
102
111
|
{
|
|
103
112
|
children: (
|
|
104
113
|
<Select
|
|
105
|
-
optionRender={({ label, value }) =>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
114
|
+
optionRender={({ label, value }) => {
|
|
115
|
+
// Map 'router' to 'newapi' for displaying the correct icon
|
|
116
|
+
const iconProvider = value === 'router' ? 'newapi' : (value as string);
|
|
117
|
+
return (
|
|
118
|
+
<Flexbox align={'center'} gap={8} horizontal>
|
|
119
|
+
<ProviderIcon provider={iconProvider} size={18} />
|
|
120
|
+
{label}
|
|
121
|
+
</Flexbox>
|
|
122
|
+
);
|
|
123
|
+
}}
|
|
111
124
|
options={CUSTOM_PROVIDER_SDK_OPTIONS}
|
|
112
125
|
placeholder={t('createNewAiProvider.sdkType.placeholder')}
|
|
113
126
|
variant={'filled'}
|
|
@@ -9,4 +9,5 @@ export const CUSTOM_PROVIDER_SDK_OPTIONS = [
|
|
|
9
9
|
{ label: 'Qwen', value: 'qwen' },
|
|
10
10
|
{ label: 'Volcengine', value: 'volcengine' },
|
|
11
11
|
{ label: 'Ollama', value: 'ollama' },
|
|
12
|
+
{ label: 'New API', value: 'router' },
|
|
12
13
|
] satisfies { label: string; value: AiProviderSDKType }[];
|
|
@@ -298,7 +298,7 @@ export default {
|
|
|
298
298
|
},
|
|
299
299
|
helpDoc: '配置教程',
|
|
300
300
|
responsesApi: {
|
|
301
|
-
desc: '采用 OpenAI 新一代请求格式规范,解锁思维链等进阶特性',
|
|
301
|
+
desc: '采用 OpenAI 新一代请求格式规范,解锁思维链等进阶特性 (仅 OpenAI 模型支持)',
|
|
302
302
|
title: '使用 Responses API 规范',
|
|
303
303
|
},
|
|
304
304
|
waitingForMore: '更多模型正在 <1>计划接入</1> 中,敬请期待',
|