@lobehub/chat 1.107.6 → 1.108.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 (74) hide show
  1. package/.env.example +5 -0
  2. package/CHANGELOG.md +58 -0
  3. package/Dockerfile +2 -0
  4. package/Dockerfile.database +3 -1
  5. package/Dockerfile.pglite +3 -1
  6. package/README.md +3 -2
  7. package/README.zh-CN.md +3 -2
  8. package/changelog/v1.json +21 -0
  9. package/docs/usage/providers/ai302.mdx +45 -0
  10. package/docs/usage/providers/ai302.zh-CN.mdx +45 -0
  11. package/package.json +2 -2
  12. package/packages/types/src/user/settings/keyVaults.ts +1 -0
  13. package/src/app/(backend)/trpc/desktop/[trpc]/route.ts +1 -1
  14. package/src/app/[variants]/(main)/settings/llm/ProviderList/providers.tsx +2 -0
  15. package/src/app/[variants]/layout.tsx +1 -0
  16. package/src/config/aiModels/ai302.ts +148 -0
  17. package/src/config/aiModels/index.ts +3 -0
  18. package/src/config/llm.ts +7 -0
  19. package/src/config/modelProviders/ai302.ts +149 -0
  20. package/src/config/modelProviders/index.ts +3 -0
  21. package/src/database/models/__tests__/_test_template.ts +1 -1
  22. package/src/database/models/__tests__/agent.test.ts +1 -1
  23. package/src/database/models/__tests__/aiModel.test.ts +1 -1
  24. package/src/database/models/__tests__/aiProvider.test.ts +1 -1
  25. package/src/database/models/__tests__/asyncTask.test.ts +1 -1
  26. package/src/database/models/__tests__/chunk.test.ts +1 -1
  27. package/src/database/models/__tests__/file.test.ts +1 -1
  28. package/src/database/models/__tests__/generationTopic.test.ts +1 -1
  29. package/src/database/models/__tests__/knowledgeBase.test.ts +1 -1
  30. package/src/database/models/__tests__/message.test.ts +1 -1
  31. package/src/database/models/__tests__/session.test.ts +1 -1
  32. package/src/database/models/__tests__/sessionGroup.test.ts +1 -1
  33. package/src/database/models/__tests__/topic.test.ts +1 -1
  34. package/src/database/models/_template.ts +1 -1
  35. package/src/database/models/agent.ts +1 -1
  36. package/src/database/models/aiModel.ts +1 -1
  37. package/src/database/models/aiProvider.ts +1 -1
  38. package/src/database/models/apiKey.ts +1 -1
  39. package/src/database/models/asyncTask.ts +1 -1
  40. package/src/database/models/chunk.ts +1 -2
  41. package/src/database/models/document.ts +1 -1
  42. package/src/database/models/embedding.ts +1 -2
  43. package/src/database/models/file.ts +1 -2
  44. package/src/database/models/generationTopic.ts +1 -1
  45. package/src/database/models/knowledgeBase.ts +1 -1
  46. package/src/database/models/message.ts +1 -2
  47. package/src/database/models/plugin.ts +1 -1
  48. package/src/database/models/session.ts +15 -2
  49. package/src/database/models/sessionGroup.ts +1 -1
  50. package/src/database/models/thread.ts +1 -1
  51. package/src/database/models/topic.ts +1 -2
  52. package/src/database/models/user.ts +1 -1
  53. package/src/database/repositories/dataExporter/index.ts +1 -1
  54. package/src/database/repositories/dataImporter/__tests__/index.test.ts +1 -1
  55. package/src/database/repositories/dataImporter/deprecated/__tests__/index.test.ts +1 -1
  56. package/src/database/repositories/dataImporter/deprecated/index.ts +1 -2
  57. package/src/database/repositories/dataImporter/index.ts +1 -1
  58. package/src/database/server/models/__tests__/adapter.test.ts +1 -1
  59. package/src/database/server/models/__tests__/nextauth.test.ts +1 -1
  60. package/src/database/server/models/__tests__/user.test.ts +1 -1
  61. package/src/database/server/models/ragEval/dataset.ts +1 -1
  62. package/src/database/server/models/ragEval/datasetRecord.ts +1 -1
  63. package/src/database/server/models/ragEval/evaluation.ts +1 -2
  64. package/src/database/server/models/ragEval/evaluationRecord.ts +1 -1
  65. package/src/database/utils/genWhere.ts +1 -2
  66. package/src/features/User/UserAvatar.tsx +18 -2
  67. package/src/libs/model-runtime/ai302/index.ts +46 -0
  68. package/src/libs/model-runtime/runtimeMap.ts +2 -0
  69. package/src/libs/model-runtime/types/type.ts +1 -0
  70. package/src/libs/next-auth/adapter/index.ts +1 -1
  71. package/src/libs/oidc-provider/adapter.ts +1 -2
  72. package/src/server/routers/lambda/chunk.ts +1 -1
  73. package/src/services/session/client.test.ts +1 -1
  74. package/src/styles/antdOverride.ts +6 -0
package/.env.example CHANGED
@@ -140,6 +140,11 @@ OPENAI_API_KEY=sk-xxxxxxxxx
140
140
 
141
141
  # INFINIAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
142
142
 
143
+
144
+ ### 302.AI ###
145
+
146
+ # AI302_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
147
+
143
148
  ### ModelScope ###
144
149
 
145
150
  # MODELSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
package/CHANGELOG.md CHANGED
@@ -2,6 +2,64 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.108.1](https://github.com/lobehub/lobe-chat/compare/v1.108.0...v1.108.1)
6
+
7
+ <sup>Released on **2025-08-05**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: Fix remote avatar broken in desktop.
12
+
13
+ #### 💄 Styles
14
+
15
+ - **misc**: Update mask style.
16
+
17
+ <br/>
18
+
19
+ <details>
20
+ <summary><kbd>Improvements and Fixes</kbd></summary>
21
+
22
+ #### What's fixed
23
+
24
+ - **misc**: Fix remote avatar broken in desktop, closes [#8673](https://github.com/lobehub/lobe-chat/issues/8673) ([7eae430](https://github.com/lobehub/lobe-chat/commit/7eae430))
25
+
26
+ #### Styles
27
+
28
+ - **misc**: Update mask style, closes [#8555](https://github.com/lobehub/lobe-chat/issues/8555) ([b4ac89d](https://github.com/lobehub/lobe-chat/commit/b4ac89d))
29
+
30
+ </details>
31
+
32
+ <div align="right">
33
+
34
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
35
+
36
+ </div>
37
+
38
+ ## [Version 1.108.0](https://github.com/lobehub/lobe-chat/compare/v1.107.6...v1.108.0)
39
+
40
+ <sup>Released on **2025-08-05**</sup>
41
+
42
+ #### ✨ Features
43
+
44
+ - **misc**: Support 302ai provider.
45
+
46
+ <br/>
47
+
48
+ <details>
49
+ <summary><kbd>Improvements and Fixes</kbd></summary>
50
+
51
+ #### What's improved
52
+
53
+ - **misc**: Support 302ai provider, closes [#8362](https://github.com/lobehub/lobe-chat/issues/8362) ([e172055](https://github.com/lobehub/lobe-chat/commit/e172055))
54
+
55
+ </details>
56
+
57
+ <div align="right">
58
+
59
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
60
+
61
+ </div>
62
+
5
63
  ### [Version 1.107.6](https://github.com/lobehub/lobe-chat/compare/v1.107.5...v1.107.6)
6
64
 
7
65
  <sup>Released on **2025-08-05**</sup>
package/Dockerfile CHANGED
@@ -248,6 +248,8 @@ ENV \
248
248
  TENCENT_CLOUD_API_KEY="" TENCENT_CLOUD_MODEL_LIST="" \
249
249
  # Infini-AI
250
250
  INFINIAI_API_KEY="" INFINIAI_MODEL_LIST=""
251
+ # 302.AI
252
+ AI302_API_KEY="" AI302_MODEL_LIST=""
251
253
 
252
254
  USER nextjs
253
255
 
@@ -289,7 +289,9 @@ ENV \
289
289
  # Tencent Cloud
290
290
  TENCENT_CLOUD_API_KEY="" TENCENT_CLOUD_MODEL_LIST="" \
291
291
  # Infini-AI
292
- INFINIAI_API_KEY="" INFINIAI_MODEL_LIST=""
292
+ INFINIAI_API_KEY="" INFINIAI_MODEL_LIST="" \
293
+ # 302.AI
294
+ AI302_API_KEY="" AI302_MODEL_LIST=""
293
295
 
294
296
  USER nextjs
295
297
 
package/Dockerfile.pglite CHANGED
@@ -245,7 +245,9 @@ ENV \
245
245
  # Tencent Cloud
246
246
  TENCENT_CLOUD_API_KEY="" TENCENT_CLOUD_MODEL_LIST="" \
247
247
  # Infini-AI
248
- INFINIAI_API_KEY="" INFINIAI_MODEL_LIST=""
248
+ INFINIAI_API_KEY="" INFINIAI_MODEL_LIST="" \
249
+ # 302.AI
250
+ AI302_API_KEY="" AI302_MODEL_LIST=""
249
251
 
250
252
  USER nextjs
251
253
 
package/README.md CHANGED
@@ -250,7 +250,7 @@ We have implemented support for the following model service providers:
250
250
  - **[HuggingFace](https://lobechat.com/discover/provider/huggingface)**: The HuggingFace Inference API provides a fast and free way for you to explore thousands of models for various tasks. Whether you are prototyping for a new application or experimenting with the capabilities of machine learning, this API gives you instant access to high-performance models across multiple domains.
251
251
  - **[Cloudflare Workers AI](https://lobechat.com/discover/provider/cloudflare)**: Run serverless GPU-powered machine learning models on Cloudflare's global network.
252
252
 
253
- <details><summary><kbd>See more providers (+31)</kbd></summary>
253
+ <details><summary><kbd>See more providers (+32)</kbd></summary>
254
254
 
255
255
  - **[GitHub](https://lobechat.com/discover/provider/github)**: With GitHub Models, developers can become AI engineers and leverage the industry's leading AI models.
256
256
  - **[Novita](https://lobechat.com/discover/provider/novita)**: Novita AI is a platform providing a variety of large language models and AI image generation API services, flexible, reliable, and cost-effective. It supports the latest open-source models like Llama3 and Mistral, offering a comprehensive, user-friendly, and auto-scaling API solution for generative AI application development, suitable for the rapid growth of AI startups.
@@ -283,10 +283,11 @@ We have implemented support for the following model service providers:
283
283
  - **[Search1API](https://lobechat.com/discover/provider/search1api)**: Search1API provides access to the DeepSeek series of models that can connect to the internet as needed, including standard and fast versions, supporting a variety of model sizes.
284
284
  - **[InfiniAI](https://lobechat.com/discover/provider/infiniai)**: Provides high-performance, easy-to-use, and secure large model services for application developers, covering the entire process from large model development to service deployment.
285
285
  - **[Qiniu](https://lobechat.com/discover/provider/qiniu)**: Qiniu, as a long-established cloud service provider, delivers cost-effective and reliable AI inference services for both real-time and batch processing, with a simple and user-friendly experience.
286
+ - **[302.AI](https://lobechat.com/discover/provider/ai302)**:
286
287
 
287
288
  </details>
288
289
 
289
- > 📊 Total providers: [<kbd>**41**</kbd>](https://lobechat.com/discover/providers)
290
+ > 📊 Total providers: [<kbd>**42**</kbd>](https://lobechat.com/discover/providers)
290
291
 
291
292
  <!-- PROVIDER LIST -->
292
293
 
package/README.zh-CN.md CHANGED
@@ -250,7 +250,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
250
250
  - **[HuggingFace](https://lobechat.com/discover/provider/huggingface)**: HuggingFace Inference API 提供了一种快速且免费的方式,让您可以探索成千上万种模型,适用于各种任务。无论您是在为新应用程序进行原型设计,还是在尝试机器学习的功能,这个 API 都能让您即时访问多个领域的高性能模型。
251
251
  - **[Cloudflare Workers AI](https://lobechat.com/discover/provider/cloudflare)**: 在 Cloudflare 的全球网络上运行由无服务器 GPU 驱动的机器学习模型。
252
252
 
253
- <details><summary><kbd>See more providers (+31)</kbd></summary>
253
+ <details><summary><kbd>See more providers (+32)</kbd></summary>
254
254
 
255
255
  - **[GitHub](https://lobechat.com/discover/provider/github)**: 通过 GitHub 模型,开发人员可以成为 AI 工程师,并使用行业领先的 AI 模型进行构建。
256
256
  - **[Novita](https://lobechat.com/discover/provider/novita)**: Novita AI 是一个提供多种大语言模型与 AI 图像生成的 API 服务的平台,灵活、可靠且具有成本效益。它支持 Llama3、Mistral 等最新的开源模型,并为生成式 AI 应用开发提供了全面、用户友好且自动扩展的 API 解决方案,适合 AI 初创公司的快速发展。
@@ -283,10 +283,11 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
283
283
  - **[Search1API](https://lobechat.com/discover/provider/search1api)**: Search1API 提供可根据需要自行联网的 DeepSeek 系列模型的访问,包括标准版和快速版本,支持多种参数规模的模型选择。
284
284
  - **[InfiniAI](https://lobechat.com/discover/provider/infiniai)**: 为应用开发者提供高性能、易上手、安全可靠的大模型服务,覆盖从大模型开发到大模型服务化部署的全流程。
285
285
  - **[Qiniu](https://lobechat.com/discover/provider/qiniu)**: 七牛作为老牌云服务厂商,提供高性价比稳定的实时、批量 AI 推理服务,简单易用。
286
+ - **[302.AI](https://lobechat.com/discover/provider/ai302)**:
286
287
 
287
288
  </details>
288
289
 
289
- > 📊 Total providers: [<kbd>**41**</kbd>](https://lobechat.com/discover/providers)
290
+ > 📊 Total providers: [<kbd>**42**</kbd>](https://lobechat.com/discover/providers)
290
291
 
291
292
  <!-- PROVIDER LIST -->
292
293
 
package/changelog/v1.json CHANGED
@@ -1,4 +1,25 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "fixes": [
5
+ "Fix remote avatar broken in desktop."
6
+ ],
7
+ "improvements": [
8
+ "Update mask style."
9
+ ]
10
+ },
11
+ "date": "2025-08-05",
12
+ "version": "1.108.1"
13
+ },
14
+ {
15
+ "children": {
16
+ "features": [
17
+ "Support 302ai provider."
18
+ ]
19
+ },
20
+ "date": "2025-08-05",
21
+ "version": "1.108.0"
22
+ },
2
23
  {
3
24
  "children": {
4
25
  "fixes": [
@@ -0,0 +1,45 @@
1
+ ---
2
+ title: Using 302.AI in LobeChat
3
+ description: Learn how to configure and use 302.AI's API Key in LobeChat to start conversations and interactions.
4
+ tags:
5
+ - LobeChat
6
+ - 302.AI
7
+ - API Key
8
+ - Web UI
9
+ ---
10
+
11
+ # Using 302.AI in LobeChat
12
+
13
+ <Image cover src={'https://file.302.ai/gpt/imgs/20250722/c7a6ee9959a8490fa00481dae0fbb339.jpg'} />
14
+
15
+ [302.AI](https://www.302.ai/) is a pay-as-you-go AI application platform that provides the most comprehensive AI APIs and AI online applications on the market.
16
+
17
+ This article will guide you on how to use 302.AI in LobeChat.
18
+
19
+ <Steps>
20
+ ### Step 1: Obtain [302.AI](https://www.302.ai/) API Key
21
+
22
+ - Click `Get Started`, register and log in to [302.AI](https://www.302.ai/)
23
+ - Click `API Keys` on the left side
24
+ - Click `Add API KEY`, copy and save the generated API key
25
+
26
+ <Image alt={'Get API Key'} inStep src={'https://file.302.ai/gpt/imgs/20250722/7a3597061d9a484ca7358867930a8316.jpg'} />
27
+
28
+ ### Step 2: Configure 302.AI in LobeChat
29
+
30
+ - Access LobeChat's `Settings` interface
31
+ - Find the `302.AI` configuration item under `Language Models`
32
+
33
+ <Image alt={'Enter API Key'} inStep src={'https://file.302.ai/gpt/imgs/20250722/b056ca4e63374668b7e3e093726fa6f0.jpg'} />
34
+
35
+ - Enter the obtained API key
36
+ - Select a 302.AI model for your AI assistant to start conversations
37
+
38
+ <Image alt={'Select 302.AI model and start conversation'} inStep src={'https://file.302.ai/gpt/imgs/20250722/c7a6ee9959a8490fa00481dae0fbb339.jpg'} />
39
+
40
+ <Callout type={'warning'}>
41
+ During usage, you may need to pay the API service provider. Please refer to 302.AI's relevant pricing policy.
42
+ </Callout>
43
+ </Steps>
44
+
45
+ Now you can use 302.AI's models for conversations in LobeChat.
@@ -0,0 +1,45 @@
1
+ ---
2
+ title: 在 LobeChat 中使用 302.AI
3
+ description: 学习如何在 LobeChat 中配置和使用 302.AI 的API Key,以便开始对话和交互。
4
+ tags:
5
+ - LobeChat
6
+ - 302.AI
7
+ - API密钥
8
+ - Web UI
9
+ ---
10
+
11
+ # 在 LobeChat 中使用 302.AI
12
+
13
+ <Image cover src={'https://file.302.ai/gpt/imgs/20250722/d346c796faa4443eb0bd4218f84205f6.jpg'} />
14
+
15
+ [302.AI](https://www.302.ai/) 是一个按需付费的 AI 应用平台,提供市面上最全的 AI API 和 AI 在线应用。
16
+
17
+ 本文将指导你如何在 LobeChat 中使用 302.AI。
18
+
19
+ <Steps>
20
+ ### 步骤一:获得 [302.AI](https://www.302.ai/) 的 API Key
21
+
22
+ - 点击 `开始使用`,注册并登录 [302.AI](https://www.302.ai/)
23
+ - 点击左侧的 `API Keys`
24
+ - 点击 `添加API KEY`,复制并保存生成的 API 密钥
25
+
26
+ <Image alt={'获取 API 密钥'} inStep src={'https://file.302.ai/gpt/imgs/20250722/01abd69fd61540489781fd963e504a04.jpg'} />
27
+
28
+ ### 步骤二:在 LobeChat 中配置 302.AI
29
+
30
+ - 访问 LobeChat 的`设置`界面
31
+ - 在`语言模型`下找到 `302.AI` 的设置项
32
+
33
+ <Image alt={'填入 API 密钥'} inStep src={'https://file.302.ai/gpt/imgs/20250722/5247463e74c742f79bef416bbb0722bf.jpg'} />
34
+
35
+ - 填入获得的 API 密钥
36
+ - 为你的 AI 助手选择一个 302.AI 的模型即可开始对话
37
+
38
+ <Image alt={'选择 302.AI 模型并开始对话'} inStep src={'https://file.302.ai/gpt/imgs/20250722/d346c796faa4443eb0bd4218f84205f6.jpg'} />
39
+
40
+ <Callout type={'warning'}>
41
+ 在使用过程中你可能需要向 API 服务提供商付费,请参考 302.AI 的相关费用政策。
42
+ </Callout>
43
+ </Steps>
44
+
45
+ 至此你已经可以在 LobeChat 中使用 302.AI 提供的模型进行对话了。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.107.6",
3
+ "version": "1.108.1",
4
4
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -182,7 +182,7 @@
182
182
  "debug": "^4.4.1",
183
183
  "dexie": "^3.2.7",
184
184
  "diff": "^7.0.0",
185
- "drizzle-orm": "^0.41.0",
185
+ "drizzle-orm": "^0.44.0",
186
186
  "drizzle-zod": "^0.5.1",
187
187
  "epub2": "^3.0.2",
188
188
  "fast-deep-equal": "^3.1.3",
@@ -38,6 +38,7 @@ export interface SearchEngineKeyVaults {
38
38
 
39
39
  export interface UserKeyVaults extends SearchEngineKeyVaults {
40
40
  ai21?: OpenAICompatibleKeyVault;
41
+ ai302?: OpenAICompatibleKeyVault;
41
42
  ai360?: OpenAICompatibleKeyVault;
42
43
  aihubmix?: OpenAICompatibleKeyVault;
43
44
  anthropic?: OpenAICompatibleKeyVault;
@@ -15,7 +15,7 @@ const handler = (req: NextRequest) =>
15
15
  endpoint: '/trpc/desktop',
16
16
 
17
17
  onError: ({ error, path, type }) => {
18
- pino.info(`Error in tRPC handler (tools) on path: ${path}, type: ${type}`);
18
+ pino.info(`Error in tRPC handler (desktop) on path: ${path}, type: ${type}`);
19
19
  console.error(error);
20
20
  },
21
21
 
@@ -2,6 +2,7 @@ import { useMemo } from 'react';
2
2
 
3
3
  import {
4
4
  Ai21ProviderCard,
5
+ Ai302ProviderCard,
5
6
  Ai360ProviderCard,
6
7
  AnthropicProviderCard,
7
8
  BaichuanProviderCard,
@@ -112,6 +113,7 @@ export const useProviderList = (): ProviderItem[] => {
112
113
  GiteeAIProviderCard,
113
114
  PPIOProviderCard,
114
115
  InfiniAIProviderCard,
116
+ Ai302ProviderCard,
115
117
  ],
116
118
  [
117
119
  AzureProvider,
@@ -34,6 +34,7 @@ const RootLayout = async ({ children, params, modal }: RootLayoutProps) => {
34
34
  <html dir={direction} lang={locale} suppressHydrationWarning>
35
35
  <head>
36
36
  {process.env.DEBUG_REACT_SCAN === '1' && (
37
+ // eslint-disable-next-line @next/next/no-sync-scripts
37
38
  <script crossOrigin="anonymous" src="https://unpkg.com/react-scan/dist/auto.global.js" />
38
39
  )}
39
40
  </head>
@@ -0,0 +1,148 @@
1
+ import { AIChatModelCard } from '@/types/aiModel';
2
+
3
+ const ai302ChatModels: AIChatModelCard[] = [
4
+ {
5
+ contextWindowTokens: 32_000,
6
+ displayName: 'deepseek-chat',
7
+ enabled: true,
8
+ id: 'deepseek-chat',
9
+ type: 'chat',
10
+ },
11
+ {
12
+ contextWindowTokens: 128_000,
13
+ displayName: 'chatgpt-4o-latest',
14
+ enabled: true,
15
+ id: 'chatgpt-4o-latest',
16
+ type: 'chat',
17
+ },
18
+ {
19
+ contextWindowTokens: 128_000,
20
+ displayName: 'llama3.3-70b',
21
+ enabled: true,
22
+ id: 'llama3.3-70b',
23
+ type: 'chat',
24
+ },
25
+ {
26
+ contextWindowTokens: 64_000,
27
+ displayName: 'deepseek-reasoner',
28
+ enabled: true,
29
+ id: 'deepseek-reasoner',
30
+ type: 'chat',
31
+ },
32
+ {
33
+ contextWindowTokens: 1_000_000,
34
+ displayName: 'gemini-2.0-flash',
35
+ enabled: true,
36
+ id: 'gemini-2.0-flash',
37
+ type: 'chat',
38
+ },
39
+ {
40
+ contextWindowTokens: 200_000,
41
+ displayName: 'claude-3-7-sonnet-20250219',
42
+ enabled: true,
43
+ id: 'claude-3-7-sonnet-20250219',
44
+ type: 'chat',
45
+ },
46
+ {
47
+ contextWindowTokens: 200_000,
48
+ displayName: 'claude-3-7-sonnet-latest',
49
+ enabled: true,
50
+ id: 'claude-3-7-sonnet-latest',
51
+ type: 'chat',
52
+ },
53
+ {
54
+ contextWindowTokens: 131_072,
55
+ displayName: 'grok-3-beta',
56
+ enabled: true,
57
+ id: 'grok-3-beta',
58
+ type: 'chat',
59
+ },
60
+ {
61
+ contextWindowTokens: 131_072,
62
+ displayName: 'grok-3-mini-beta',
63
+ enabled: true,
64
+ id: 'grok-3-mini-beta',
65
+ type: 'chat',
66
+ },
67
+ {
68
+ contextWindowTokens: 1_000_000,
69
+ displayName: 'gpt-4.1',
70
+ enabled: true,
71
+ id: 'gpt-4.1',
72
+ type: 'chat',
73
+ },
74
+ {
75
+ contextWindowTokens: 200_000,
76
+ displayName: 'o3',
77
+ enabled: true,
78
+ id: 'o3',
79
+ type: 'chat',
80
+ },
81
+ {
82
+ contextWindowTokens: 200_000,
83
+ displayName: 'o4-mini',
84
+ enabled: true,
85
+ id: 'o4-mini',
86
+ type: 'chat',
87
+ },
88
+ {
89
+ contextWindowTokens: 128_000,
90
+ displayName: 'qwen3-235b-a22b',
91
+ enabled: true,
92
+ id: 'qwen3-235b-a22b',
93
+ type: 'chat',
94
+ },
95
+ {
96
+ contextWindowTokens: 128_000,
97
+ displayName: 'qwen3-32b',
98
+ enabled: true,
99
+ id: 'qwen3-32b',
100
+ type: 'chat',
101
+ },
102
+ {
103
+ contextWindowTokens: 1_000_000,
104
+ displayName: 'gemini-2.5-pro-preview-05-06',
105
+ enabled: true,
106
+ id: 'gemini-2.5-pro-preview-05-06',
107
+ type: 'chat',
108
+ },
109
+ {
110
+ contextWindowTokens: 128_000,
111
+ displayName: 'llama-4-maverick',
112
+ enabled: true,
113
+ id: 'llama-4-maverick',
114
+ type: 'chat',
115
+ },
116
+ {
117
+ contextWindowTokens: 1_000_000,
118
+ displayName: 'gemini-2.5-flash',
119
+ enabled: true,
120
+ id: 'gemini-2.5-flash',
121
+ type: 'chat',
122
+ },
123
+ {
124
+ contextWindowTokens: 200_000,
125
+ displayName: 'claude-sonnet-4-20250514',
126
+ enabled: true,
127
+ id: 'claude-sonnet-4-20250514',
128
+ type: 'chat',
129
+ },
130
+ {
131
+ contextWindowTokens: 200_000,
132
+ displayName: 'claude-opus-4-20250514',
133
+ enabled: true,
134
+ id: 'claude-opus-4-20250514',
135
+ type: 'chat',
136
+ },
137
+ {
138
+ contextWindowTokens: 1_000_000,
139
+ displayName: 'gemini-2.5-pro',
140
+ enabled: true,
141
+ id: 'gemini-2.5-pro',
142
+ type: 'chat',
143
+ },
144
+ ];
145
+
146
+ export const allModels = [...ai302ChatModels];
147
+
148
+ export default allModels;
@@ -1,6 +1,7 @@
1
1
  import { AiFullModelCard, LobeDefaultAiModelListItem } from '@/types/aiModel';
2
2
 
3
3
  import { default as ai21 } from './ai21';
4
+ import { default as ai302 } from './ai302';
4
5
  import { default as ai360 } from './ai360';
5
6
  import { default as aihubmix } from './aihubmix';
6
7
  import { default as anthropic } from './anthropic';
@@ -78,6 +79,7 @@ const buildDefaultModelList = (map: ModelsMap): LobeDefaultAiModelListItem[] =>
78
79
 
79
80
  export const LOBE_DEFAULT_MODEL_LIST = buildDefaultModelList({
80
81
  ai21,
82
+ ai302,
81
83
  ai360,
82
84
  aihubmix,
83
85
  anthropic,
@@ -136,6 +138,7 @@ export const LOBE_DEFAULT_MODEL_LIST = buildDefaultModelList({
136
138
  });
137
139
 
138
140
  export { default as ai21 } from './ai21';
141
+ export { default as ai302 } from './ai302';
139
142
  export { default as ai360 } from './ai360';
140
143
  export { default as aihubmix } from './aihubmix';
141
144
  export { default as anthropic } from './anthropic';
package/src/config/llm.ts CHANGED
@@ -172,6 +172,10 @@ export const getLLMConfig = () => {
172
172
  ENABLED_V0: z.boolean(),
173
173
  V0_API_KEY: z.string().optional(),
174
174
 
175
+
176
+ ENABLED_AI302: z.boolean(),
177
+ AI302_API_KEY: z.string().optional(),
178
+
175
179
  ENABLED_AIHUBMIX: z.boolean(),
176
180
  AIHUBMIX_API_KEY: z.string().optional(),
177
181
  },
@@ -344,6 +348,9 @@ export const getLLMConfig = () => {
344
348
  ENABLED_V0: !!process.env.V0_API_KEY,
345
349
  V0_API_KEY: process.env.V0_API_KEY,
346
350
 
351
+ ENABLED_AI302: !!process.env.AI302_API_KEY,
352
+ AI302_API_KEY: process.env.AI302_API_KEY,
353
+
347
354
  ENABLED_AIHUBMIX: !!process.env.AIHUBMIX_API_KEY,
348
355
  AIHUBMIX_API_KEY: process.env.AIHUBMIX_API_KEY,
349
356
  },
@@ -0,0 +1,149 @@
1
+ import { ModelProviderCard } from '@/types/llm';
2
+
3
+ // ref: https://302.ai/pricing/
4
+ const Ai302: ModelProviderCard = {
5
+ chatModels: [
6
+ {
7
+ contextWindowTokens: 32_000,
8
+ displayName: 'deepseek-chat',
9
+ enabled: true,
10
+ id: 'deepseek-chat',
11
+ },
12
+ {
13
+ contextWindowTokens: 128_000,
14
+ displayName: 'gpt-4o',
15
+ enabled: true,
16
+ id: 'gpt-4o',
17
+ },
18
+ {
19
+ contextWindowTokens: 128_000,
20
+ displayName: 'chatgpt-4o-latest',
21
+ enabled: true,
22
+ id: 'chatgpt-4o-latest',
23
+ },
24
+ {
25
+ contextWindowTokens: 128_000,
26
+ displayName: 'llama3.3-70b',
27
+ enabled: true,
28
+ id: 'llama3.3-70b',
29
+ },
30
+ {
31
+ contextWindowTokens: 64_000,
32
+ displayName: 'deepseek-reasoner',
33
+ enabled: true,
34
+ id: 'deepseek-reasoner',
35
+ },
36
+ {
37
+ contextWindowTokens: 1_000_000,
38
+ displayName: 'gemini-2.0-flash',
39
+ enabled: true,
40
+ id: 'gemini-2.0-flash',
41
+ },
42
+ {
43
+ contextWindowTokens: 200_000,
44
+ displayName: 'claude-3-7-sonnet-20250219',
45
+ enabled: true,
46
+ id: 'claude-3-7-sonnet-20250219',
47
+ },
48
+ {
49
+ contextWindowTokens: 200_000,
50
+ displayName: 'claude-3-7-sonnet-latest',
51
+ enabled: true,
52
+ id: 'claude-3-7-sonnet-latest',
53
+ },
54
+ {
55
+ contextWindowTokens: 131_072,
56
+ displayName: 'grok-3-beta',
57
+ enabled: true,
58
+ id: 'grok-3-beta',
59
+ },
60
+ {
61
+ contextWindowTokens: 131_072,
62
+ displayName: 'grok-3-mini-beta',
63
+ enabled: true,
64
+ id: 'grok-3-mini-beta',
65
+ },
66
+ {
67
+ contextWindowTokens: 1_000_000,
68
+ displayName: 'gpt-4.1',
69
+ enabled: true,
70
+ id: 'gpt-4.1',
71
+ },
72
+ {
73
+ contextWindowTokens: 200_000,
74
+ displayName: 'o3',
75
+ enabled: true,
76
+ id: 'o3',
77
+ },
78
+ {
79
+ contextWindowTokens: 200_000,
80
+ displayName: 'o4-mini',
81
+ enabled: true,
82
+ id: 'o4-mini',
83
+ },
84
+ {
85
+ contextWindowTokens: 128_000,
86
+ displayName: 'qwen3-235b-a22b',
87
+ enabled: true,
88
+ id: 'qwen3-235b-a22b',
89
+ },
90
+ {
91
+ contextWindowTokens: 128_000,
92
+ displayName: 'qwen3-32b',
93
+ enabled: true,
94
+ id: 'qwen3-32b',
95
+ },
96
+ {
97
+ contextWindowTokens: 1_000_000,
98
+ displayName: 'gemini-2.5-pro-preview-05-06',
99
+ enabled: true,
100
+ id: 'gemini-2.5-pro-preview-05-06',
101
+ },
102
+ {
103
+ contextWindowTokens: 128_000,
104
+ displayName: 'llama-4-maverick',
105
+ enabled: true,
106
+ id: 'llama-4-maverick',
107
+ },
108
+ {
109
+ contextWindowTokens: 1_000_000,
110
+ displayName: 'gemini-2.5-flash',
111
+ enabled: true,
112
+ id: 'gemini-2.5-flash',
113
+ },
114
+ {
115
+ contextWindowTokens: 200_000,
116
+ displayName: 'claude-sonnet-4-20250514',
117
+ enabled: true,
118
+ id: 'claude-sonnet-4-20250514',
119
+ },
120
+ {
121
+ contextWindowTokens: 200_000,
122
+ displayName: 'claude-opus-4-20250514',
123
+ enabled: true,
124
+ id: 'claude-opus-4-20250514',
125
+ },
126
+ {
127
+ contextWindowTokens: 1_000_000,
128
+ displayName: 'gemini-2.5-pro',
129
+ enabled: true,
130
+ id: 'gemini-2.5-pro',
131
+ },
132
+ ],
133
+ checkModel: 'gpt-4o',
134
+ description: '302.AI 是一个按需付费的 AI 应用平台,提供市面上最全的 AI API 和 AI 在线应用',
135
+ id: 'ai302',
136
+ modelList: { showModelFetcher: true },
137
+ modelsUrl: 'https://302.ai/pricing/',
138
+ name: '302.AI',
139
+ settings: {
140
+ proxyUrl: {
141
+ placeholder: 'https://api.302.ai/v1',
142
+ },
143
+ sdkType: 'openai',
144
+ showModelFetcher: true,
145
+ },
146
+ url: 'https://302.ai',
147
+ };
148
+
149
+ export default Ai302;