@lobehub/chat 1.117.1 → 1.118.1

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.
Files changed (97) hide show
  1. package/.env.example +8 -0
  2. package/AGENTS.md +133 -0
  3. package/CHANGELOG.md +58 -0
  4. package/changelog/v1.json +21 -0
  5. package/locales/ar/chat.json +6 -1
  6. package/locales/ar/error.json +8 -8
  7. package/locales/ar/models.json +21 -0
  8. package/locales/ar/providers.json +3 -0
  9. package/locales/bg-BG/chat.json +6 -1
  10. package/locales/bg-BG/error.json +8 -8
  11. package/locales/bg-BG/models.json +21 -0
  12. package/locales/bg-BG/providers.json +3 -0
  13. package/locales/de-DE/chat.json +6 -1
  14. package/locales/de-DE/error.json +7 -7
  15. package/locales/de-DE/models.json +21 -0
  16. package/locales/de-DE/providers.json +3 -0
  17. package/locales/en-US/chat.json +6 -1
  18. package/locales/en-US/error.json +4 -4
  19. package/locales/en-US/models.json +21 -0
  20. package/locales/en-US/providers.json +3 -0
  21. package/locales/es-ES/chat.json +6 -1
  22. package/locales/es-ES/error.json +9 -9
  23. package/locales/es-ES/models.json +21 -0
  24. package/locales/es-ES/providers.json +3 -0
  25. package/locales/fa-IR/chat.json +6 -1
  26. package/locales/fa-IR/error.json +9 -9
  27. package/locales/fa-IR/models.json +21 -0
  28. package/locales/fa-IR/providers.json +3 -0
  29. package/locales/fr-FR/chat.json +6 -1
  30. package/locales/fr-FR/error.json +9 -9
  31. package/locales/fr-FR/models.json +21 -0
  32. package/locales/fr-FR/providers.json +3 -0
  33. package/locales/it-IT/chat.json +6 -1
  34. package/locales/it-IT/error.json +7 -7
  35. package/locales/it-IT/models.json +21 -0
  36. package/locales/it-IT/providers.json +3 -0
  37. package/locales/ja-JP/chat.json +6 -1
  38. package/locales/ja-JP/error.json +8 -8
  39. package/locales/ja-JP/models.json +21 -0
  40. package/locales/ja-JP/providers.json +3 -0
  41. package/locales/ko-KR/chat.json +6 -1
  42. package/locales/ko-KR/error.json +8 -8
  43. package/locales/ko-KR/models.json +21 -0
  44. package/locales/ko-KR/providers.json +3 -0
  45. package/locales/nl-NL/chat.json +6 -1
  46. package/locales/nl-NL/error.json +8 -8
  47. package/locales/nl-NL/models.json +21 -0
  48. package/locales/nl-NL/providers.json +3 -0
  49. package/locales/pl-PL/chat.json +6 -1
  50. package/locales/pl-PL/error.json +9 -9
  51. package/locales/pl-PL/models.json +21 -0
  52. package/locales/pl-PL/providers.json +3 -0
  53. package/locales/pt-BR/chat.json +6 -1
  54. package/locales/pt-BR/error.json +8 -8
  55. package/locales/pt-BR/models.json +21 -0
  56. package/locales/pt-BR/providers.json +3 -0
  57. package/locales/ru-RU/chat.json +6 -1
  58. package/locales/ru-RU/error.json +7 -7
  59. package/locales/ru-RU/models.json +21 -0
  60. package/locales/ru-RU/providers.json +3 -0
  61. package/locales/tr-TR/chat.json +6 -1
  62. package/locales/tr-TR/error.json +9 -9
  63. package/locales/tr-TR/models.json +21 -0
  64. package/locales/tr-TR/providers.json +3 -0
  65. package/locales/vi-VN/chat.json +6 -1
  66. package/locales/vi-VN/models.json +21 -0
  67. package/locales/vi-VN/providers.json +3 -0
  68. package/locales/zh-CN/chat.json +6 -1
  69. package/locales/zh-CN/models.json +21 -0
  70. package/locales/zh-CN/providers.json +3 -0
  71. package/locales/zh-TW/chat.json +6 -1
  72. package/locales/zh-TW/error.json +4 -4
  73. package/locales/zh-TW/models.json +21 -0
  74. package/locales/zh-TW/providers.json +3 -0
  75. package/next.config.ts +22 -6
  76. package/package.json +1 -1
  77. package/packages/model-runtime/src/akashchat/index.ts +43 -0
  78. package/packages/model-runtime/src/google/index.ts +17 -3
  79. package/packages/model-runtime/src/index.ts +1 -0
  80. package/packages/model-runtime/src/openai/__snapshots__/index.test.ts.snap +1 -1
  81. package/packages/model-runtime/src/runtimeMap.ts +2 -0
  82. package/packages/model-runtime/src/types/chat.ts +4 -0
  83. package/packages/model-runtime/src/types/type.ts +1 -0
  84. package/packages/model-runtime/src/utils/modelParse.ts +14 -1
  85. package/packages/types/src/agent/chatConfig.ts +1 -0
  86. package/packages/types/src/aiModel.ts +2 -1
  87. package/packages/types/src/user/settings/keyVaults.ts +1 -0
  88. package/src/app/[variants]/(main)/settings/llm/ProviderList/providers.tsx +2 -0
  89. package/src/config/aiModels/akashchat.ts +84 -0
  90. package/src/config/aiModels/google.ts +8 -6
  91. package/src/config/aiModels/index.ts +3 -0
  92. package/src/config/llm.ts +6 -0
  93. package/src/config/modelProviders/akashchat.ts +17 -0
  94. package/src/config/modelProviders/index.ts +3 -0
  95. package/src/features/ChatInput/ActionBar/Model/ControlsForm.tsx +13 -1
  96. package/src/locales/default/chat.ts +4 -0
  97. package/src/services/chat.ts +4 -0
package/src/config/llm.ts CHANGED
@@ -178,6 +178,9 @@ export const getLLMConfig = () => {
178
178
  ENABLED_AI302: z.boolean(),
179
179
  AI302_API_KEY: z.string().optional(),
180
180
 
181
+ ENABLED_AKASHCHAT: z.boolean(),
182
+ AKASHCHAT_API_KEY: z.string().optional(),
183
+
181
184
  ENABLED_AIHUBMIX: z.boolean(),
182
185
  AIHUBMIX_API_KEY: z.string().optional(),
183
186
  },
@@ -356,6 +359,9 @@ export const getLLMConfig = () => {
356
359
  ENABLED_AI302: !!process.env.AI302_API_KEY,
357
360
  AI302_API_KEY: process.env.AI302_API_KEY,
358
361
 
362
+ ENABLED_AKASHCHAT: !!process.env.AKASHCHAT_API_KEY,
363
+ AKASHCHAT_API_KEY: process.env.AKASHCHAT_API_KEY,
364
+
359
365
  ENABLED_AIHUBMIX: !!process.env.AIHUBMIX_API_KEY,
360
366
  AIHUBMIX_API_KEY: process.env.AIHUBMIX_API_KEY,
361
367
  },
@@ -0,0 +1,17 @@
1
+ import { ModelProviderCard } from '@/types/llm';
2
+
3
+ const AkashChat: ModelProviderCard = {
4
+ chatModels: [],
5
+ checkModel: 'Meta-Llama-3-1-8B-Instruct-FP8',
6
+ description: 'Akash 是一个无需许可的云资源市场,与传统云提供商相比,其定价具有竞争力。',
7
+ id: 'akashchat',
8
+ modelsUrl: 'https://chatapi.akash.network/documentation',
9
+ name: 'AkashChat',
10
+ settings: {
11
+ sdkType: 'openai',
12
+ showModelFetcher: true,
13
+ },
14
+ url: 'https://chatapi.akash.network/',
15
+ };
16
+
17
+ export default AkashChat;
@@ -4,6 +4,7 @@ import Ai21Provider from './ai21';
4
4
  import Ai302Provider from './ai302';
5
5
  import Ai360Provider from './ai360';
6
6
  import AiHubMixProvider from './aihubmix';
7
+ import AkashChatProvider from './akashchat';
7
8
  import AnthropicProvider from './anthropic';
8
9
  import AzureProvider from './azure';
9
10
  import AzureAIProvider from './azureai';
@@ -172,6 +173,7 @@ export const DEFAULT_MODEL_PROVIDER_LIST = [
172
173
  Ai360Provider,
173
174
  Search1APIProvider,
174
175
  InfiniAIProvider,
176
+ AkashChatProvider,
175
177
  QiniuProvider,
176
178
  ];
177
179
 
@@ -188,6 +190,7 @@ export { default as Ai21ProviderCard } from './ai21';
188
190
  export { default as Ai302ProviderCard } from './ai302';
189
191
  export { default as Ai360ProviderCard } from './ai360';
190
192
  export { default as AiHubMixProviderCard } from './aihubmix';
193
+ export { default as AkashChatProviderCard } from './akashchat';
191
194
  export { default as AnthropicProviderCard } from './anthropic';
192
195
  export { default as AzureProviderCard } from './azure';
193
196
  export { default as AzureAIProviderCard } from './azureai';
@@ -123,13 +123,25 @@ const ControlsForm = memo(() => {
123
123
  children: <ThinkingBudgetSlider />,
124
124
  label: t('extendParams.reasoningBudgetToken.title'),
125
125
  layout: 'vertical',
126
- minWidth: 500,
126
+ minWidth: 470,
127
127
  name: 'thinkingBudget',
128
128
  style: {
129
129
  paddingBottom: 0,
130
130
  },
131
131
  tag: 'thinkingBudget',
132
132
  },
133
+ {
134
+ children: <Switch />,
135
+ desc: t('extendParams.urlContext.desc'),
136
+ label: t('extendParams.urlContext.title'),
137
+ layout: 'horizontal',
138
+ minWidth: undefined,
139
+ name: 'urlContext',
140
+ style: {
141
+ width: 445,
142
+ },
143
+ tag: 'urlContext',
144
+ },
133
145
  {
134
146
  children: <ThinkingSlider />,
135
147
  label: t('extendParams.thinking.title'),
@@ -54,6 +54,10 @@ export default {
54
54
  title: '深度思考开关',
55
55
  },
56
56
  title: '模型扩展功能',
57
+ urlContext: {
58
+ desc: '开启后将自动解析网页链接,以获取实际网页上下文内容',
59
+ title: '提取网页链接内容',
60
+ },
57
61
  },
58
62
  history: {
59
63
  title: '助手将只记住最后{{count}}条消息',
@@ -297,6 +297,10 @@ class ChatService {
297
297
  ) {
298
298
  extendParams.thinkingBudget = chatConfig.thinkingBudget;
299
299
  }
300
+
301
+ if (modelExtendParams!.includes('urlContext') && chatConfig.urlContext) {
302
+ extendParams.urlContext = chatConfig.urlContext;
303
+ }
300
304
  }
301
305
 
302
306
  return this.getChatCompletion(