@lobehub/chat 0.162.16 → 0.162.18

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 (173) hide show
  1. package/.env.example +4 -0
  2. package/CHANGELOG.md +50 -0
  3. package/Dockerfile +3 -0
  4. package/README.md +1 -0
  5. package/README.zh-CN.md +1 -0
  6. package/docs/self-hosting/advanced/settings-url-share.mdx +89 -57
  7. package/docs/self-hosting/advanced/settings-url-share.zh-CN.mdx +87 -56
  8. package/docs/self-hosting/advanced/upstream-sync.mdx +1 -1
  9. package/docs/self-hosting/environment-variables/model-provider.mdx +10 -1
  10. package/docs/self-hosting/environment-variables/model-provider.zh-CN.mdx +9 -0
  11. package/docs/usage/features/multi-ai-providers.mdx +1 -0
  12. package/docs/usage/features/multi-ai-providers.zh-CN.mdx +1 -0
  13. package/locales/ar/error.json +7 -37
  14. package/locales/ar/modelProvider.json +15 -171
  15. package/locales/ar/setting.json +5 -8
  16. package/locales/bg-BG/error.json +6 -36
  17. package/locales/bg-BG/modelProvider.json +15 -171
  18. package/locales/bg-BG/setting.json +5 -8
  19. package/locales/de-DE/error.json +6 -36
  20. package/locales/de-DE/modelProvider.json +15 -171
  21. package/locales/de-DE/setting.json +5 -8
  22. package/locales/en-US/error.json +6 -36
  23. package/locales/en-US/modelProvider.json +15 -171
  24. package/locales/en-US/setting.json +6 -9
  25. package/locales/es-ES/error.json +6 -36
  26. package/locales/es-ES/modelProvider.json +15 -171
  27. package/locales/es-ES/setting.json +5 -8
  28. package/locales/fr-FR/error.json +6 -36
  29. package/locales/fr-FR/modelProvider.json +15 -171
  30. package/locales/fr-FR/setting.json +9 -12
  31. package/locales/it-IT/error.json +6 -36
  32. package/locales/it-IT/modelProvider.json +15 -171
  33. package/locales/it-IT/setting.json +5 -8
  34. package/locales/ja-JP/error.json +6 -36
  35. package/locales/ja-JP/modelProvider.json +15 -171
  36. package/locales/ja-JP/setting.json +5 -8
  37. package/locales/ko-KR/error.json +6 -36
  38. package/locales/ko-KR/modelProvider.json +15 -171
  39. package/locales/ko-KR/setting.json +5 -8
  40. package/locales/nl-NL/error.json +6 -36
  41. package/locales/nl-NL/modelProvider.json +15 -171
  42. package/locales/nl-NL/setting.json +5 -8
  43. package/locales/pl-PL/error.json +6 -36
  44. package/locales/pl-PL/modelProvider.json +15 -171
  45. package/locales/pl-PL/setting.json +6 -9
  46. package/locales/pt-BR/error.json +6 -36
  47. package/locales/pt-BR/modelProvider.json +15 -171
  48. package/locales/pt-BR/setting.json +5 -8
  49. package/locales/ru-RU/error.json +6 -36
  50. package/locales/ru-RU/modelProvider.json +15 -171
  51. package/locales/ru-RU/setting.json +5 -8
  52. package/locales/tr-TR/error.json +6 -36
  53. package/locales/tr-TR/modelProvider.json +15 -171
  54. package/locales/tr-TR/setting.json +5 -8
  55. package/locales/vi-VN/error.json +6 -36
  56. package/locales/vi-VN/modelProvider.json +15 -171
  57. package/locales/vi-VN/setting.json +5 -8
  58. package/locales/zh-CN/error.json +7 -37
  59. package/locales/zh-CN/modelProvider.json +15 -171
  60. package/locales/zh-CN/setting.json +5 -8
  61. package/locales/zh-TW/error.json +7 -37
  62. package/locales/zh-TW/modelProvider.json +15 -171
  63. package/locales/zh-TW/setting.json +5 -8
  64. package/package.json +1 -2
  65. package/src/app/(main)/settings/llm/ProviderList/Azure/index.tsx +107 -0
  66. package/src/app/(main)/settings/llm/ProviderList/Bedrock/index.tsx +68 -0
  67. package/src/app/(main)/settings/llm/ProviderList/Ollama/index.tsx +29 -0
  68. package/src/app/(main)/settings/llm/ProviderList/OpenAI/index.tsx +20 -0
  69. package/src/app/(main)/settings/llm/ProviderList/providers.tsx +141 -0
  70. package/src/app/(main)/settings/llm/components/ProviderConfig/index.tsx +18 -27
  71. package/src/app/(main)/settings/llm/index.tsx +7 -34
  72. package/src/app/(main)/settings/llm/type.ts +5 -0
  73. package/src/app/api/chat/[provider]/route.ts +8 -3
  74. package/src/app/api/chat/agentRuntime.test.ts +17 -0
  75. package/src/app/api/chat/agentRuntime.ts +7 -0
  76. package/src/app/api/errorResponse.test.ts +7 -89
  77. package/src/app/api/errorResponse.ts +6 -43
  78. package/src/app/api/middleware/auth/index.ts +7 -3
  79. package/src/components/ModelProviderIcon/index.tsx +5 -0
  80. package/src/components/ModelSelect/index.tsx +7 -10
  81. package/src/config/llm.ts +6 -0
  82. package/src/config/modelProviders/anthropic.ts +5 -0
  83. package/src/config/modelProviders/azure.ts +2 -0
  84. package/src/config/modelProviders/bedrock.ts +2 -0
  85. package/src/config/modelProviders/deepseek.ts +4 -1
  86. package/src/config/modelProviders/google.ts +5 -0
  87. package/src/config/modelProviders/groq.ts +5 -0
  88. package/src/config/modelProviders/index.ts +4 -0
  89. package/src/config/modelProviders/minimax.ts +2 -0
  90. package/src/config/modelProviders/mistral.ts +2 -0
  91. package/src/config/modelProviders/moonshot.ts +2 -0
  92. package/src/config/modelProviders/ollama.ts +4 -0
  93. package/src/config/modelProviders/openai.ts +3 -0
  94. package/src/config/modelProviders/openrouter.ts +3 -0
  95. package/src/config/modelProviders/perplexity.ts +5 -0
  96. package/src/config/modelProviders/qwen.ts +35 -0
  97. package/src/config/modelProviders/togetherai.ts +3 -0
  98. package/src/config/modelProviders/zeroone.ts +4 -2
  99. package/src/config/modelProviders/zhipu.ts +2 -0
  100. package/src/const/settings/llm.ts +5 -0
  101. package/src/features/Conversation/Error/APIKeyForm/ProviderApiKeyForm.tsx +6 -3
  102. package/src/features/Conversation/Error/APIKeyForm/ProviderAvatar.tsx +5 -0
  103. package/src/features/Conversation/Error/APIKeyForm/index.tsx +4 -0
  104. package/src/features/Conversation/Error/OllamaBizError/InvalidOllamaModel/index.tsx +11 -14
  105. package/src/features/Conversation/Error/index.tsx +29 -19
  106. package/src/features/Conversation/components/ChatItem/index.tsx +4 -13
  107. package/src/features/ModelSelect/index.tsx +1 -1
  108. package/src/features/ModelSwitchPanel/index.tsx +1 -1
  109. package/src/hooks/useProviderName.ts +8 -0
  110. package/src/libs/agent-runtime/AgentRuntime.ts +8 -1
  111. package/src/libs/agent-runtime/anthropic/index.test.ts +8 -5
  112. package/src/libs/agent-runtime/anthropic/index.ts +3 -3
  113. package/src/libs/agent-runtime/azureOpenai/index.test.ts +5 -2
  114. package/src/libs/agent-runtime/azureOpenai/index.ts +2 -2
  115. package/src/libs/agent-runtime/bedrock/index.test.ts +2 -2
  116. package/src/libs/agent-runtime/bedrock/index.ts +2 -2
  117. package/src/libs/agent-runtime/deepseek/index.test.ts +3 -2
  118. package/src/libs/agent-runtime/deepseek/index.ts +0 -5
  119. package/src/libs/agent-runtime/error.ts +11 -43
  120. package/src/libs/agent-runtime/google/index.test.ts +3 -4
  121. package/src/libs/agent-runtime/google/index.ts +4 -4
  122. package/src/libs/agent-runtime/groq/index.test.ts +3 -2
  123. package/src/libs/agent-runtime/groq/index.ts +0 -4
  124. package/src/libs/agent-runtime/index.ts +1 -0
  125. package/src/libs/agent-runtime/minimax/index.test.ts +3 -2
  126. package/src/libs/agent-runtime/minimax/index.ts +5 -5
  127. package/src/libs/agent-runtime/mistral/index.test.ts +2 -2
  128. package/src/libs/agent-runtime/mistral/index.ts +0 -5
  129. package/src/libs/agent-runtime/moonshot/index.test.ts +3 -2
  130. package/src/libs/agent-runtime/moonshot/index.ts +0 -5
  131. package/src/libs/agent-runtime/openrouter/index.test.ts +3 -2
  132. package/src/libs/agent-runtime/openrouter/index.ts +0 -6
  133. package/src/libs/agent-runtime/perplexity/index.test.ts +2 -2
  134. package/src/libs/agent-runtime/perplexity/index.ts +0 -5
  135. package/src/libs/agent-runtime/qwen/index.test.ts +251 -0
  136. package/src/libs/agent-runtime/qwen/index.ts +28 -0
  137. package/src/libs/agent-runtime/togetherai/index.test.ts +3 -2
  138. package/src/libs/agent-runtime/togetherai/index.ts +0 -5
  139. package/src/libs/agent-runtime/types/type.ts +1 -1
  140. package/src/libs/agent-runtime/utils/openaiCompatibleFactory/index.test.ts +123 -6
  141. package/src/libs/agent-runtime/utils/openaiCompatibleFactory/index.ts +12 -6
  142. package/src/libs/agent-runtime/utils/streams/openai.ts +1 -1
  143. package/src/libs/agent-runtime/zeroone/index.test.ts +3 -2
  144. package/src/libs/agent-runtime/zeroone/index.ts +1 -5
  145. package/src/libs/agent-runtime/zhipu/index.test.ts +8 -5
  146. package/src/libs/agent-runtime/zhipu/index.ts +2 -2
  147. package/src/locales/default/error.ts +10 -51
  148. package/src/locales/default/modelProvider.ts +12 -169
  149. package/src/locales/default/setting.ts +5 -8
  150. package/src/server/globalConfig/index.ts +2 -0
  151. package/src/services/__tests__/chat.test.ts +16 -0
  152. package/src/services/chat.ts +3 -0
  153. package/src/services/message/client.test.ts +4 -1
  154. package/src/types/fetch.ts +3 -1
  155. package/src/types/llm.ts +22 -0
  156. package/src/types/user/settings/keyVaults.ts +1 -0
  157. package/src/app/(main)/settings/llm/Anthropic/index.tsx +0 -25
  158. package/src/app/(main)/settings/llm/Azure/index.tsx +0 -110
  159. package/src/app/(main)/settings/llm/Bedrock/index.tsx +0 -74
  160. package/src/app/(main)/settings/llm/DeepSeek/index.tsx +0 -21
  161. package/src/app/(main)/settings/llm/Google/index.tsx +0 -31
  162. package/src/app/(main)/settings/llm/Groq/index.tsx +0 -26
  163. package/src/app/(main)/settings/llm/Minimax/index.tsx +0 -20
  164. package/src/app/(main)/settings/llm/Mistral/index.tsx +0 -20
  165. package/src/app/(main)/settings/llm/Moonshot/index.tsx +0 -28
  166. package/src/app/(main)/settings/llm/Ollama/index.tsx +0 -37
  167. package/src/app/(main)/settings/llm/OpenAI/index.tsx +0 -28
  168. package/src/app/(main)/settings/llm/OpenRouter/index.tsx +0 -21
  169. package/src/app/(main)/settings/llm/Perplexity/index.tsx +0 -23
  170. package/src/app/(main)/settings/llm/TogetherAI/index.tsx +0 -19
  171. package/src/app/(main)/settings/llm/ZeroOne/index.tsx +0 -20
  172. package/src/app/(main)/settings/llm/Zhipu/index.tsx +0 -18
  173. /package/src/app/(main)/settings/llm/{Ollama → ProviderList/Ollama}/Checker.tsx +0 -0
@@ -1,21 +0,0 @@
1
- 'use client';
2
-
3
- import { DeepSeek } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import { ModelProvider } from '@/libs/agent-runtime';
7
-
8
- import ProviderConfig from '../components/ProviderConfig';
9
-
10
- const DeepSeekProvider = memo(() => {
11
- return (
12
- <ProviderConfig
13
- checkModel={'deepseek-chat'}
14
- modelList={{ showModelFetcher: true }}
15
- provider={ModelProvider.DeepSeek}
16
- title={<DeepSeek.Combine size={28} type={'color'} />}
17
- />
18
- );
19
- });
20
-
21
- export default DeepSeekProvider;
@@ -1,31 +0,0 @@
1
- 'use client';
2
-
3
- import { Gemini, Google } from '@lobehub/icons';
4
- import { Divider } from 'antd';
5
- import { memo } from 'react';
6
- import { Flexbox } from 'react-layout-kit';
7
-
8
- import { ModelProvider } from '@/libs/agent-runtime';
9
-
10
- import ProviderConfig from '../components/ProviderConfig';
11
-
12
- const GoogleProvider = memo(() => {
13
- return (
14
- <ProviderConfig
15
- checkModel={'gemini-pro'}
16
- provider={ModelProvider.Google}
17
- proxyUrl={{
18
- placeholder: 'https://generativelanguage.googleapis.com',
19
- }}
20
- title={
21
- <Flexbox align={'center'} gap={8} horizontal>
22
- <Google.BrandColor size={22} />
23
- <Divider style={{ margin: '0 4px' }} type={'vertical'} />
24
- <Gemini.Combine size={22} type={'color'} />
25
- </Flexbox>
26
- }
27
- />
28
- );
29
- });
30
-
31
- export default GoogleProvider;
@@ -1,26 +0,0 @@
1
- 'use client';
2
-
3
- import { Groq } from '@lobehub/icons';
4
- import { useTheme } from 'antd-style';
5
- import { memo } from 'react';
6
-
7
- import { ModelProvider } from '@/libs/agent-runtime';
8
-
9
- import ProviderConfig from '../components/ProviderConfig';
10
-
11
- const GroqProvider = memo(() => {
12
- const theme = useTheme();
13
-
14
- return (
15
- <ProviderConfig
16
- checkModel={'gemma-7b-it'}
17
- provider={ModelProvider.Groq}
18
- proxyUrl={{
19
- placeholder: 'https://api.groq.com/openai/v1',
20
- }}
21
- title={<Groq.Text color={theme.isDarkMode ? theme.colorText : Groq.colorPrimary} size={20} />}
22
- />
23
- );
24
- });
25
-
26
- export default GroqProvider;
@@ -1,20 +0,0 @@
1
- 'use client';
2
-
3
- import { Minimax } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import { ModelProvider } from '@/libs/agent-runtime';
7
-
8
- import ProviderConfig from '../components/ProviderConfig';
9
-
10
- const MinimaxProvider = memo(() => {
11
- return (
12
- <ProviderConfig
13
- checkModel={'abab5.5s-chat'}
14
- provider={ModelProvider.Minimax}
15
- title={<Minimax.Combine size={32} type={'color'} />}
16
- />
17
- );
18
- });
19
-
20
- export default MinimaxProvider;
@@ -1,20 +0,0 @@
1
- 'use client';
2
-
3
- import { Mistral } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import { ModelProvider } from '@/libs/agent-runtime';
7
-
8
- import ProviderConfig from '../components/ProviderConfig';
9
-
10
- const MistralProvider = memo(() => {
11
- return (
12
- <ProviderConfig
13
- checkModel={'open-mistral-7b'}
14
- provider={ModelProvider.Mistral}
15
- title={<Mistral.Combine size={26} type={'color'} />}
16
- />
17
- );
18
- });
19
-
20
- export default MistralProvider;
@@ -1,28 +0,0 @@
1
- 'use client';
2
-
3
- import { Moonshot } from '@lobehub/icons';
4
- import { useTheme } from 'antd-style';
5
- import { memo } from 'react';
6
-
7
- import { ModelProvider } from '@/libs/agent-runtime';
8
-
9
- import ProviderConfig from '../components/ProviderConfig';
10
-
11
- const MoonshotProvider = memo(() => {
12
- const theme = useTheme();
13
-
14
- return (
15
- <ProviderConfig
16
- checkModel={'moonshot-v1-8k'}
17
- provider={ModelProvider.Moonshot}
18
- title={
19
- <Moonshot.Combine
20
- color={theme.isDarkMode ? theme.colorText : Moonshot.colorPrimary}
21
- size={22}
22
- />
23
- }
24
- />
25
- );
26
- });
27
-
28
- export default MoonshotProvider;
@@ -1,37 +0,0 @@
1
- 'use client';
2
-
3
- import { Ollama } from '@lobehub/icons';
4
- import { memo } from 'react';
5
- import { useTranslation } from 'react-i18next';
6
-
7
- import { ModelProvider } from '@/libs/agent-runtime';
8
-
9
- import ProviderConfig from '../components/ProviderConfig';
10
- import Checker from './Checker';
11
-
12
- const OllamaProvider = memo(() => {
13
- const { t } = useTranslation('modelProvider');
14
-
15
- return (
16
- <ProviderConfig
17
- checkerItem={{
18
- children: <Checker />,
19
- desc: t('ollama.checker.desc'),
20
- label: t('ollama.checker.title'),
21
- minWidth: undefined,
22
- }}
23
- modelList={{ showModelFetcher: true }}
24
- provider={ModelProvider.Ollama}
25
- proxyUrl={{
26
- desc: t('ollama.endpoint.desc'),
27
- placeholder: 'http://127.0.0.1:11434',
28
- title: t('ollama.endpoint.title'),
29
- }}
30
- showApiKey={false}
31
- showBrowserRequest
32
- title={<Ollama.Combine size={28} />}
33
- />
34
- );
35
- });
36
-
37
- export default OllamaProvider;
@@ -1,28 +0,0 @@
1
- 'use client';
2
-
3
- import { OpenAI } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfig';
7
-
8
- import ProviderConfig from '../components/ProviderConfig';
9
-
10
- const OpenAIProvider = memo(() => {
11
- const { showOpenAIProxyUrl, showOpenAIApiKey } = useServerConfigStore(featureFlagsSelectors);
12
-
13
- return (
14
- <ProviderConfig
15
- modelList={{ showModelFetcher: true }}
16
- provider={'openai'}
17
- proxyUrl={
18
- showOpenAIProxyUrl && {
19
- placeholder: 'https://api.openai.com/v1',
20
- }
21
- }
22
- showApiKey={showOpenAIApiKey}
23
- title={<OpenAI.Combine size={24} />}
24
- />
25
- );
26
- });
27
-
28
- export default OpenAIProvider;
@@ -1,21 +0,0 @@
1
- 'use client';
2
-
3
- import { OpenRouter } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import { ModelProvider } from '@/libs/agent-runtime';
7
-
8
- import ProviderConfig from '../components/ProviderConfig';
9
-
10
- const OpenRouterProvider = memo(() => {
11
- return (
12
- <ProviderConfig
13
- checkModel={'mistralai/mistral-7b-instruct:free'}
14
- modelList={{ showModelFetcher: true }}
15
- provider={ModelProvider.OpenRouter}
16
- title={<OpenRouter.Combine iconProps={{ color: OpenRouter.colorPrimary }} size={20} />}
17
- />
18
- );
19
- });
20
-
21
- export default OpenRouterProvider;
@@ -1,23 +0,0 @@
1
- 'use client';
2
-
3
- import { Perplexity } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import { ModelProvider } from '@/libs/agent-runtime';
7
-
8
- import ProviderConfig from '../components/ProviderConfig';
9
-
10
- const PerplexityProvider = memo(() => {
11
- return (
12
- <ProviderConfig
13
- checkModel={'pplx-7b-chat'}
14
- provider={ModelProvider.Perplexity}
15
- proxyUrl={{
16
- placeholder: 'https://api.perplexity.ai',
17
- }}
18
- title={<Perplexity.Combine size={24} type={'color'} />}
19
- />
20
- );
21
- });
22
-
23
- export default PerplexityProvider;
@@ -1,19 +0,0 @@
1
- 'use client';
2
-
3
- import { Together } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import ProviderConfig from '../components/ProviderConfig';
7
-
8
- const TogetherAIProvider = memo(() => {
9
- return (
10
- <ProviderConfig
11
- checkModel={'togethercomputer/alpaca-7b'}
12
- modelList={{ showModelFetcher: true }}
13
- provider={'togetherai'}
14
- title={<Together.Combine size={26} type={'color'} />}
15
- />
16
- );
17
- });
18
-
19
- export default TogetherAIProvider;
@@ -1,20 +0,0 @@
1
- 'use client';
2
-
3
- import { ZeroOne } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import { ModelProvider } from '@/libs/agent-runtime';
7
-
8
- import ProviderConfig from '../components/ProviderConfig';
9
-
10
- const ZeroOneProvider = memo(() => {
11
- return (
12
- <ProviderConfig
13
- checkModel={'yi-34b-chat-0205'}
14
- provider={ModelProvider.ZeroOne}
15
- title={<ZeroOne.Text size={20} />}
16
- />
17
- );
18
- });
19
-
20
- export default ZeroOneProvider;
@@ -1,18 +0,0 @@
1
- 'use client';
2
-
3
- import { Zhipu } from '@lobehub/icons';
4
- import { memo } from 'react';
5
-
6
- import ProviderConfig from '../components/ProviderConfig';
7
-
8
- const ZhipuProvider = memo(() => {
9
- return (
10
- <ProviderConfig
11
- checkModel={'glm-3-turbo'}
12
- provider={'zhipu'}
13
- title={<Zhipu.Combine size={32} type={'color'} />}
14
- />
15
- );
16
- });
17
-
18
- export default ZhipuProvider;