@lobehub/chat 1.54.0 → 1.55.0
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 +25 -0
- package/Dockerfile +2 -0
- package/Dockerfile.database +2 -0
- package/README.ja-JP.md +1 -1
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/README.zh-TW.md +9 -14
- package/changelog/v1.json +9 -0
- package/docs/changelog/2024-11-25-november-providers.mdx +1 -1
- package/docs/changelog/2024-11-25-november-providers.zh-CN.mdx +1 -1
- package/docs/usage/features/multi-ai-providers.mdx +1 -1
- package/docs/usage/features/multi-ai-providers.zh-CN.mdx +1 -1
- package/package.json +1 -1
- package/src/app/[variants]/(main)/settings/llm/ProviderList/providers.tsx +2 -0
- package/src/config/aiModels/index.ts +3 -0
- package/src/config/aiModels/vllm.ts +94 -0
- package/src/config/llm.ts +6 -0
- package/src/config/modelProviders/index.ts +4 -0
- package/src/config/modelProviders/vllm.ts +20 -0
- package/src/const/url.ts +1 -1
- package/src/libs/agent-runtime/AgentRuntime.ts +7 -0
- package/src/libs/agent-runtime/types/type.ts +1 -0
- package/src/libs/agent-runtime/vllm/index.ts +44 -0
- package/src/types/user/settings/keyVaults.ts +1 -0
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,31 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
## [Version 1.55.0](https://github.com/lobehub/lobe-chat/compare/v1.54.0...v1.55.0)
|
6
|
+
|
7
|
+
<sup>Released on **2025-02-14**</sup>
|
8
|
+
|
9
|
+
#### ✨ Features
|
10
|
+
|
11
|
+
- **misc**: Add vLLM provider support.
|
12
|
+
|
13
|
+
<br/>
|
14
|
+
|
15
|
+
<details>
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
17
|
+
|
18
|
+
#### What's improved
|
19
|
+
|
20
|
+
- **misc**: Add vLLM provider support, closes [#6154](https://github.com/lobehub/lobe-chat/issues/6154) ([1708e32](https://github.com/lobehub/lobe-chat/commit/1708e32))
|
21
|
+
|
22
|
+
</details>
|
23
|
+
|
24
|
+
<div align="right">
|
25
|
+
|
26
|
+
[](#readme-top)
|
27
|
+
|
28
|
+
</div>
|
29
|
+
|
5
30
|
## [Version 1.54.0](https://github.com/lobehub/lobe-chat/compare/v1.53.12...v1.54.0)
|
6
31
|
|
7
32
|
<sup>Released on **2025-02-14**</sup>
|
package/Dockerfile
CHANGED
@@ -217,6 +217,8 @@ ENV \
|
|
217
217
|
TOGETHERAI_API_KEY="" TOGETHERAI_MODEL_LIST="" \
|
218
218
|
# Upstage
|
219
219
|
UPSTAGE_API_KEY="" UPSTAGE_MODEL_LIST="" \
|
220
|
+
# vLLM
|
221
|
+
VLLM_API_KEY="" VLLM_MODEL_LIST="" VLLM_PROXY_URL="" \
|
220
222
|
# Wenxin
|
221
223
|
WENXIN_API_KEY="" WENXIN_MODEL_LIST="" \
|
222
224
|
# xAI
|
package/Dockerfile.database
CHANGED
@@ -254,6 +254,8 @@ ENV \
|
|
254
254
|
TOGETHERAI_API_KEY="" TOGETHERAI_MODEL_LIST="" \
|
255
255
|
# Upstage
|
256
256
|
UPSTAGE_API_KEY="" UPSTAGE_MODEL_LIST="" \
|
257
|
+
# vLLM
|
258
|
+
VLLM_API_KEY="" VLLM_MODEL_LIST="" VLLM_PROXY_URL="" \
|
257
259
|
# Wenxin
|
258
260
|
WENXIN_API_KEY="" WENXIN_MODEL_LIST="" \
|
259
261
|
# xAI
|
package/README.ja-JP.md
CHANGED
@@ -170,7 +170,7 @@ LobeChat の継続的な開発において、AI 会話サービスを提供す
|
|
170
170
|
|
171
171
|
<!-- PROVIDER LIST -->
|
172
172
|
|
173
|
-
同時に、私たちはさらに多くのモデルサービスプロバイダーをサポートする計画を立てており、サービスプロバイダーのライブラリをさらに充実させる予定です。 LobeChat があなたのお気に入りのサービスプロバイダーをサポートすることを希望する場合は、[💬 コミュニティディスカッション](https://github.com/lobehub/lobe-chat/discussions/
|
173
|
+
同時に、私たちはさらに多くのモデルサービスプロバイダーをサポートする計画を立てており、サービスプロバイダーのライブラリをさらに充実させる予定です。 LobeChat があなたのお気に入りのサービスプロバイダーをサポートすることを希望する場合は、[💬 コミュニティディスカッション](https://github.com/lobehub/lobe-chat/discussions/6157)に参加してください。
|
174
174
|
|
175
175
|
<div align="right">
|
176
176
|
|
package/README.md
CHANGED
@@ -189,7 +189,7 @@ We have implemented support for the following model service providers:
|
|
189
189
|
|
190
190
|
<!-- PROVIDER LIST -->
|
191
191
|
|
192
|
-
At the same time, we are also planning to support more model service providers. If you would like LobeChat to support your favorite service provider, feel free to join our [💬 community discussion](https://github.com/lobehub/lobe-chat/discussions/
|
192
|
+
At the same time, we are also planning to support more model service providers. If you would like LobeChat to support your favorite service provider, feel free to join our [💬 community discussion](https://github.com/lobehub/lobe-chat/discussions/6157).
|
193
193
|
|
194
194
|
<div align="right">
|
195
195
|
|
package/README.zh-CN.md
CHANGED
@@ -189,7 +189,7 @@ LobeChat 支持文件上传与知识库功能,你可以上传文件、图片
|
|
189
189
|
|
190
190
|
<!-- PROVIDER LIST -->
|
191
191
|
|
192
|
-
同时,我们也在计划支持更多的模型服务商,以进一步丰富我们的服务商库。如果你希望让 LobeChat 支持你喜爱的服务商,欢迎加入我们的 [💬 社区讨论](https://github.com/lobehub/lobe-chat/discussions/
|
192
|
+
同时,我们也在计划支持更多的模型服务商,以进一步丰富我们的服务商库。如果你希望让 LobeChat 支持你喜爱的服务商,欢迎加入我们的 [💬 社区讨论](https://github.com/lobehub/lobe-chat/discussions/6157)。
|
193
193
|
|
194
194
|
<div align="right">
|
195
195
|
|
package/README.zh-TW.md
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
|
5
5
|
<h1>Lobe Chat</h1>
|
6
6
|
|
7
|
-
現代風格的開源 ChatGPT/LLMs
|
8
|
-
支持語音合成、多模態、可擴展的([function call][docs-functionc-call]
|
7
|
+
現代風格的開源 ChatGPT/LLMs 使用介面 / 框架\
|
8
|
+
支持語音合成、多模態、可擴展的([function call][docs-functionc-call])插件系統\
|
9
9
|
一鍵**免費**部署私人的 OpenAI ChatGPT/Claude/Gemini/Groq/Ollama 聊天應用
|
10
10
|
|
11
11
|
[English](./README.md) · **繁體中文** · [簡體中文](./README.zh-CN.md) · [日本語](./README.ja-JP.md) · [官網][official-site] · [更新日誌][changelog] · [文檔][docs] · [部落格][blog] · [反饋問題][github-issues-link]
|
@@ -50,14 +50,13 @@
|
|
50
50
|
|
51
51
|
#### TOC
|
52
52
|
|
53
|
-
- [👋🏻 開始使用
|
53
|
+
- [👋🏻 開始使用 & 交流](#-開始使用--交流)
|
54
54
|
- [✨ 特性一覽](#-特性一覽)
|
55
55
|
- [`1` 文件上傳 / 知識庫](#1-文件上傳--知識庫)
|
56
56
|
- [`2` 多模型服務商支持](#2-多模型服務商支持)
|
57
|
-
- [已支持的模型服務商](#已支持的模型服務商)
|
58
57
|
- [`3` 支持本地大型語言模型 (LLM)](#3-支持本地大型語言模型-llm)
|
59
58
|
- [`4` 模型視覺識別 (Model Visual)](#4-模型視覺識別-model-visual)
|
60
|
-
- [`5` TTS
|
59
|
+
- [`5` TTS & STT 語音轉化](#5-tts--stt-語音轉化)
|
61
60
|
- [`6` Text to Image 文生圖](#6-text-to-image-文生圖)
|
62
61
|
- [`7` 插件系統 (Tools Calling)](#7-插件系統-tools-calling)
|
63
62
|
- [`8` 助手市集 (GPTs)](#8-助手市集-gpts)
|
@@ -70,13 +69,9 @@
|
|
70
69
|
- [⚡️ 性能測試](#️-性能測試)
|
71
70
|
- [🛳 開箱即用](#-開箱即用)
|
72
71
|
- [`A` 使用 Vercel、Zeabur 、Sealos 或 Alibaba Cloud 部署](#a-使用-vercelzeabur-sealos-或-alibaba-cloud-部署)
|
73
|
-
- [Fork 之後](#fork-之後)
|
74
|
-
- [保持更新](#保持更新)
|
75
72
|
- [`B` 使用 Docker 部署](#b-使用-docker-部署)
|
76
73
|
- [環境變量](#環境變量)
|
77
74
|
- [獲取 OpenAI API Key](#獲取-openai-api-key)
|
78
|
-
- [`A` 通過 OpenAI 官方渠道](#a-通過-openai-官方渠道)
|
79
|
-
- [`B` 通過 OpenAI 第三方代理商](#b-通過-openai-第三方代理商)
|
80
75
|
- [📦 生態系統](#-生態系統)
|
81
76
|
- [🧩 插件體系](#-插件體系)
|
82
77
|
- [⌨️ 本地開發](#️-本地開發)
|
@@ -93,12 +88,12 @@
|
|
93
88
|
## 👋🏻 開始使用 & 交流
|
94
89
|
|
95
90
|
我們是一群充滿熱情的設計工程師,希望為 AIGC 提供現代化的設計組件和工具,並以開源的方式分享。
|
96
|
-
透過採用Bootstrapping 的方式,我們的目標是為開發人員和使用者提供一個更加開放、透明和使用者友好的產品生態系統。
|
91
|
+
透過採用 Bootstrapping 的方式,我們的目標是為開發人員和使用者提供一個更加開放、透明和使用者友好的產品生態系統。
|
97
92
|
|
98
93
|
LobeHub 旨在成為普通用戶與專業開發者測試 AI 助手的場所。LobeChat 目前正在積極開發中,有任何需求或者問題,歡迎提交 [issues][issues-link]
|
99
94
|
|
100
|
-
| [![][vercel-shield-badge]][vercel-link] | 無需安裝或註冊!訪問我們的網站立刻體驗
|
101
|
-
| :---------------------------------------- |
|
95
|
+
| [![][vercel-shield-badge]][vercel-link] | 無需安裝或註冊!訪問我們的網站立刻體驗 |
|
96
|
+
| :---------------------------------------- | :------------------------------------------------------ |
|
102
97
|
| [![][discord-shield-badge]][discord-link] | 加入我們的 Discord 和開發者交流,和其他用戶們分享心得! |
|
103
98
|
|
104
99
|
> \[!IMPORTANT]
|
@@ -194,7 +189,7 @@ LobeChat 支持文件上傳與知識庫功能,你可以上傳文件、圖片
|
|
194
189
|
|
195
190
|
<!-- PROVIDER LIST -->
|
196
191
|
|
197
|
-
同時,我們也在計劃支持更多的模型服務商,以進一步豐富我們的服務商庫。如果你希望讓 LobeChat 支持你喜愛的服務商,歡迎加入我們的 [💬 社區討論](https://github.com/lobehub/lobe-chat/discussions/
|
192
|
+
同時,我們也在計劃支持更多的模型服務商,以進一步豐富我們的服務商庫。如果你希望讓 LobeChat 支持你喜愛的服務商,歡迎加入我們的 [💬 社區討論](https://github.com/lobehub/lobe-chat/discussions/6157)。
|
198
193
|
|
199
194
|
<div align="right">
|
200
195
|
|
@@ -477,7 +472,7 @@ LobeChat 提供了 Vercel 的 自托管版本 和 [Docker 鏡像][docker-release
|
|
477
472
|
|
478
473
|
<div align="center">
|
479
474
|
|
480
|
-
| 使用 Vercel 部署 | 使用 Zeabur 部署 | 使用 Sealos 部署 |
|
475
|
+
| 使用 Vercel 部署 | 使用 Zeabur 部署 | 使用 Sealos 部署 | 使用 Alibaba Cloud 部署 |
|
481
476
|
| :-------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: | :-----------------------------------------------------------------------: |
|
482
477
|
| [![][deploy-button-image]][deploy-link] | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] | [![][deploy-on-sealos-button-image]][deploy-on-sealos-link] | [![][deploy-on-alibaba-cloud-button-image]][deploy-on-alibaba-cloud-link] |
|
483
478
|
|
package/changelog/v1.json
CHANGED
@@ -23,4 +23,4 @@ We're excited to announce that LobeChat has expanded its AI model support with t
|
|
23
23
|
|
24
24
|
## Need More Model Providers?
|
25
25
|
|
26
|
-
Feel free to submit your requests at [More Model Provider Support](https://github.com/lobehub/lobe-chat/discussions/
|
26
|
+
Feel free to submit your requests at [More Model Provider Support](https://github.com/lobehub/lobe-chat/discussions/6157).
|
@@ -43,7 +43,7 @@ We have implemented support for the following model service providers:
|
|
43
43
|
- **DeepSeek**: Integrated with the DeepSeek series models, an innovative AI startup from China, The product has been designed to provide a model that balances performance with price. [Learn more](https://www.deepseek.com/)
|
44
44
|
- **Qwen**: Integrated with the Qwen series models, including the latest **qwen-turbo**, **qwen-plus** and **qwen-max**. [Learn more](https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction)
|
45
45
|
|
46
|
-
At the same time, we are also planning to support more model service providers, such as Replicate and Perplexity, to further enrich our service provider library. If you would like LobeChat to support your favorite service provider, feel free to join our [community discussion](https://github.com/lobehub/lobe-chat/discussions/
|
46
|
+
At the same time, we are also planning to support more model service providers, such as Replicate and Perplexity, to further enrich our service provider library. If you would like LobeChat to support your favorite service provider, feel free to join our [community discussion](https://github.com/lobehub/lobe-chat/discussions/6157).
|
47
47
|
|
48
48
|
## Local Model Support
|
49
49
|
|
@@ -43,7 +43,7 @@ tags:
|
|
43
43
|
- **DeepSeek**: 接入了 DeepSeek 的 AI 模型,包括最新的 **DeepSeek-V2**,提供兼顾性能与价格的模型。[了解更多](https://www.deepseek.com/)
|
44
44
|
- **Qwen (通义千问)**: 接入了 Qwen 的 AI 模型,包括最新的 **qwen-turbo**,**qwen-plus** 和 **qwen-max** 等模型。[了解更多](https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction)
|
45
45
|
|
46
|
-
同时,我们也在计划支持更多的模型服务商,如 Replicate 和 Perplexity 等,以进一步丰富我们的服务商库。如果你希望让 LobeChat 支持你喜爱的服务商,欢迎加入我们的[社区讨论](https://github.com/lobehub/lobe-chat/discussions/
|
46
|
+
同时,我们也在计划支持更多的模型服务商,如 Replicate 和 Perplexity 等,以进一步丰富我们的服务商库。如果你希望让 LobeChat 支持你喜爱的服务商,欢迎加入我们的[社区讨论](https://github.com/lobehub/lobe-chat/discussions/6157)。
|
47
47
|
|
48
48
|
## 本地模型支持
|
49
49
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lobehub/chat",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.55.0",
|
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",
|
@@ -28,6 +28,7 @@ import {
|
|
28
28
|
TaichuProviderCard,
|
29
29
|
TogetherAIProviderCard,
|
30
30
|
UpstageProviderCard,
|
31
|
+
VLLMProviderCard,
|
31
32
|
WenxinProviderCard,
|
32
33
|
XAIProviderCard,
|
33
34
|
ZeroOneProviderCard,
|
@@ -57,6 +58,7 @@ export const useProviderList = (): ProviderItem[] => {
|
|
57
58
|
OpenAIProvider,
|
58
59
|
AzureProvider,
|
59
60
|
OllamaProvider,
|
61
|
+
VLLMProviderCard,
|
60
62
|
AnthropicProviderCard,
|
61
63
|
BedrockProvider,
|
62
64
|
GoogleProviderCard,
|
@@ -37,6 +37,7 @@ import { default as taichu } from './taichu';
|
|
37
37
|
import { default as tencentcloud } from './tencentcloud';
|
38
38
|
import { default as togetherai } from './togetherai';
|
39
39
|
import { default as upstage } from './upstage';
|
40
|
+
import { default as vllm } from './vllm';
|
40
41
|
import { default as wenxin } from './wenxin';
|
41
42
|
import { default as xai } from './xai';
|
42
43
|
import { default as zeroone } from './zeroone';
|
@@ -99,6 +100,7 @@ export const LOBE_DEFAULT_MODEL_LIST = buildDefaultModelList({
|
|
99
100
|
tencentcloud,
|
100
101
|
togetherai,
|
101
102
|
upstage,
|
103
|
+
vllm,
|
102
104
|
wenxin,
|
103
105
|
xai,
|
104
106
|
zeroone,
|
@@ -142,6 +144,7 @@ export { default as taichu } from './taichu';
|
|
142
144
|
export { default as tencentcloud } from './tencentcloud';
|
143
145
|
export { default as togetherai } from './togetherai';
|
144
146
|
export { default as upstage } from './upstage';
|
147
|
+
export { default as vllm } from './vllm';
|
145
148
|
export { default as wenxin } from './wenxin';
|
146
149
|
export { default as xai } from './xai';
|
147
150
|
export { default as zeroone } from './zeroone';
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import { AIChatModelCard } from '@/types/aiModel';
|
2
|
+
|
3
|
+
const vllmChatModels: AIChatModelCard[] = [
|
4
|
+
{
|
5
|
+
abilities: {
|
6
|
+
functionCall: true
|
7
|
+
},
|
8
|
+
contextWindowTokens: 128_000,
|
9
|
+
description:
|
10
|
+
'Llama 3.1 是 Meta 推出的领先模型,支持高达 405B 参数,可应用于复杂对话、多语言翻译和数据分析领域。',
|
11
|
+
displayName: 'Llama 3.1 70B',
|
12
|
+
enabled: true,
|
13
|
+
id: 'meta-llama/Meta-Llama-3.1-70B',
|
14
|
+
type: 'chat',
|
15
|
+
},
|
16
|
+
{
|
17
|
+
abilities: {
|
18
|
+
functionCall: true
|
19
|
+
},
|
20
|
+
contextWindowTokens: 128_000,
|
21
|
+
description:
|
22
|
+
'Llama 3.1 是 Meta 推出的领先模型,支持高达 405B 参数,可应用于复杂对话、多语言翻译和数据分析领域。',
|
23
|
+
displayName: 'Llama 3.1 405B Instruct',
|
24
|
+
id: 'meta-llama/Meta-Llama-3.1-405B-Instruct',
|
25
|
+
type: 'chat',
|
26
|
+
},
|
27
|
+
{
|
28
|
+
contextWindowTokens: 8192,
|
29
|
+
description:
|
30
|
+
'Gemma 2 是 Google 推出的高效模型,涵盖从小型应用到复杂数据处理的多种应用场景。',
|
31
|
+
displayName: 'Gemma 2 9B',
|
32
|
+
id: 'google/gemma-2-9b',
|
33
|
+
type: 'chat',
|
34
|
+
},
|
35
|
+
{
|
36
|
+
contextWindowTokens: 8192,
|
37
|
+
description:
|
38
|
+
'Gemma 2 是 Google 推出的高效模型,涵盖从小型应用到复杂数据处理的多种应用场景。',
|
39
|
+
displayName: 'Gemma 2 27B',
|
40
|
+
id: 'google/gemma-2-27b',
|
41
|
+
type: 'chat',
|
42
|
+
},
|
43
|
+
{
|
44
|
+
contextWindowTokens: 8192,
|
45
|
+
description:
|
46
|
+
'Mistral (7B) Instruct 以高性能著称,适用于多种语言任务。',
|
47
|
+
displayName: 'Mistral 7B Instruct v0.1',
|
48
|
+
id: 'mistralai/Mistral-7B-Instruct-v0.1',
|
49
|
+
type: 'chat',
|
50
|
+
},
|
51
|
+
{
|
52
|
+
contextWindowTokens: 32_768,
|
53
|
+
description:
|
54
|
+
'Mixtral-8x7B Instruct (46.7B) 提供高容量的计算框架,适合大规模数据处理。',
|
55
|
+
displayName: 'Mistral 8x7B Instruct v0.1',
|
56
|
+
id: 'mistralai/Mixtral-8x7B-Instruct-v0.1',
|
57
|
+
type: 'chat',
|
58
|
+
},
|
59
|
+
{
|
60
|
+
abilities: {
|
61
|
+
functionCall: true
|
62
|
+
},
|
63
|
+
contextWindowTokens: 65_536,
|
64
|
+
description:
|
65
|
+
'DeepSeek-V3 是一款拥有 6710 亿参数的混合专家(MoE)语言模型,采用多头潜在注意力(MLA)和 DeepSeekMoE 架构,结合无辅助损失的负载平衡策略,优化推理和训练效率。通过在 14.8 万亿高质量tokens上预训练,并进行监督微调和强化学习,DeepSeek-V3 在性能上超越其他开源模型,接近领先闭源模型。',
|
66
|
+
displayName: 'DeepSeek V3',
|
67
|
+
enabled: true,
|
68
|
+
id: 'deepseek-ai/DeepSeek-V3',
|
69
|
+
type: 'chat',
|
70
|
+
},
|
71
|
+
{
|
72
|
+
abilities: {
|
73
|
+
reasoning: true
|
74
|
+
},
|
75
|
+
contextWindowTokens: 32_768,
|
76
|
+
description: 'Qwen QwQ 是由 Qwen 团队开发的实验研究模型,专注于提升AI推理能力。',
|
77
|
+
displayName: 'QwQ 32B Preview',
|
78
|
+
enabled: true,
|
79
|
+
id: 'Qwen/QwQ-32B-Preview',
|
80
|
+
type: 'chat',
|
81
|
+
},
|
82
|
+
{
|
83
|
+
contextWindowTokens: 32_768,
|
84
|
+
description: 'Qwen2-7B-Instruct 是 Qwen2 系列中的指令微调大语言模型,参数规模为 7B。该模型基于 Transformer 架构,采用了 SwiGLU 激活函数、注意力 QKV 偏置和组查询注意力等技术。它能够处理大规模输入。该模型在语言理解、生成、多语言能力、编码、数学和推理等多个基准测试中表现出色,超越了大多数开源模型,并在某些任务上展现出与专有模型相当的竞争力。Qwen2-7B-Instruct 在多项评测中均优于 Qwen1.5-7B-Chat,显示出显著的性能提升',
|
85
|
+
displayName: 'Qwen2 7B Instruct',
|
86
|
+
enabled: true,
|
87
|
+
id: 'Qwen/Qwen2-7B-Instruct',
|
88
|
+
type: 'chat',
|
89
|
+
},
|
90
|
+
]
|
91
|
+
|
92
|
+
export const allModels = [...vllmChatModels];
|
93
|
+
|
94
|
+
export default allModels;
|
package/src/config/llm.ts
CHANGED
@@ -68,6 +68,9 @@ export const getLLMConfig = () => {
|
|
68
68
|
|
69
69
|
ENABLED_OLLAMA: z.boolean(),
|
70
70
|
|
71
|
+
ENABLED_VLLM: z.boolean(),
|
72
|
+
VLLM_API_KEY: z.string().optional(),
|
73
|
+
|
71
74
|
ENABLED_QWEN: z.boolean(),
|
72
75
|
QWEN_API_KEY: z.string().optional(),
|
73
76
|
|
@@ -196,6 +199,9 @@ export const getLLMConfig = () => {
|
|
196
199
|
|
197
200
|
ENABLED_OLLAMA: process.env.ENABLED_OLLAMA !== '0',
|
198
201
|
|
202
|
+
ENABLED_VLLM: !!process.env.VLLM_API_KEY,
|
203
|
+
VLLM_API_KEY: process.env.VLLM_API_KEY,
|
204
|
+
|
199
205
|
ENABLED_QWEN: !!process.env.QWEN_API_KEY,
|
200
206
|
QWEN_API_KEY: process.env.QWEN_API_KEY,
|
201
207
|
|
@@ -37,6 +37,7 @@ import TaichuProvider from './taichu';
|
|
37
37
|
import TencentcloudProvider from './tencentcloud';
|
38
38
|
import TogetherAIProvider from './togetherai';
|
39
39
|
import UpstageProvider from './upstage';
|
40
|
+
import VLLMProvider from './vllm';
|
40
41
|
import WenxinProvider from './wenxin';
|
41
42
|
import XAIProvider from './xai';
|
42
43
|
import ZeroOneProvider from './zeroone';
|
@@ -58,6 +59,7 @@ export const LOBE_DEFAULT_MODEL_LIST: ChatModelCard[] = [
|
|
58
59
|
MistralProvider.chatModels,
|
59
60
|
MoonshotProvider.chatModels,
|
60
61
|
OllamaProvider.chatModels,
|
62
|
+
VLLMProvider.chatModels,
|
61
63
|
OpenRouterProvider.chatModels,
|
62
64
|
TogetherAIProvider.chatModels,
|
63
65
|
FireworksAIProvider.chatModels,
|
@@ -89,6 +91,7 @@ export const DEFAULT_MODEL_PROVIDER_LIST = [
|
|
89
91
|
OpenAIProvider,
|
90
92
|
{ ...AzureProvider, chatModels: [] },
|
91
93
|
OllamaProvider,
|
94
|
+
VLLMProvider,
|
92
95
|
AnthropicProvider,
|
93
96
|
BedrockProvider,
|
94
97
|
GoogleProvider,
|
@@ -175,6 +178,7 @@ export { default as TaichuProviderCard } from './taichu';
|
|
175
178
|
export { default as TencentCloudProviderCard } from './tencentcloud';
|
176
179
|
export { default as TogetherAIProviderCard } from './togetherai';
|
177
180
|
export { default as UpstageProviderCard } from './upstage';
|
181
|
+
export { default as VLLMProviderCard } from './vllm';
|
178
182
|
export { default as WenxinProviderCard } from './wenxin';
|
179
183
|
export { default as XAIProviderCard } from './xai';
|
180
184
|
export { default as ZeroOneProviderCard } from './zeroone';
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { ModelProviderCard } from '@/types/llm';
|
2
|
+
|
3
|
+
const VLLM: ModelProviderCard = {
|
4
|
+
chatModels: [],
|
5
|
+
description: 'vLLM 是一个快速且易于使用的库,用于 LLM 推理和服务。',
|
6
|
+
id: 'vllm',
|
7
|
+
modelList: { showModelFetcher: true },
|
8
|
+
modelsUrl: 'https://docs.vllm.ai/en/latest/models/supported_models.html#supported-models',
|
9
|
+
name: 'vLLM',
|
10
|
+
settings: {
|
11
|
+
proxyUrl: {
|
12
|
+
placeholder: 'http://localhost:8000/v1',
|
13
|
+
},
|
14
|
+
sdkType: 'openai',
|
15
|
+
showModelFetcher: true,
|
16
|
+
},
|
17
|
+
url: 'https://docs.vllm.ai',
|
18
|
+
};
|
19
|
+
|
20
|
+
export default VLLM;
|
package/src/const/url.ts
CHANGED
@@ -44,7 +44,7 @@ export const TERMS_URL = urlJoin(OFFICIAL_SITE, '/terms');
|
|
44
44
|
export const PLUGINS_INDEX_URL = 'https://chat-plugins.lobehub.com';
|
45
45
|
|
46
46
|
export const MORE_MODEL_PROVIDER_REQUEST_URL =
|
47
|
-
'https://github.com/lobehub/lobe-chat/discussions/
|
47
|
+
'https://github.com/lobehub/lobe-chat/discussions/6157';
|
48
48
|
|
49
49
|
export const MORE_FILE_PREVIEW_REQUEST_URL =
|
50
50
|
'https://github.com/lobehub/lobe-chat/discussions/3684';
|
@@ -49,6 +49,7 @@ import {
|
|
49
49
|
TextToSpeechPayload,
|
50
50
|
} from './types';
|
51
51
|
import { LobeUpstageAI } from './upstage';
|
52
|
+
import { LobeVLLMAI } from './vllm';
|
52
53
|
import { LobeWenxinAI } from './wenxin';
|
53
54
|
import { LobeXAI } from './xai';
|
54
55
|
import { LobeZeroOneAI } from './zeroone';
|
@@ -172,6 +173,7 @@ class AgentRuntime {
|
|
172
173
|
tencentcloud: Partial<ClientOptions>;
|
173
174
|
togetherai: Partial<ClientOptions>;
|
174
175
|
upstage: Partial<ClientOptions>;
|
176
|
+
vllm: Partial<ClientOptions>;
|
175
177
|
wenxin: Partial<ClientOptions>;
|
176
178
|
xai: Partial<ClientOptions>;
|
177
179
|
zeroone: Partial<ClientOptions>;
|
@@ -227,6 +229,11 @@ class AgentRuntime {
|
|
227
229
|
break;
|
228
230
|
}
|
229
231
|
|
232
|
+
case ModelProvider.VLLM: {
|
233
|
+
runtimeModel = new LobeVLLMAI(params.vllm);
|
234
|
+
break;
|
235
|
+
}
|
236
|
+
|
230
237
|
case ModelProvider.Perplexity: {
|
231
238
|
runtimeModel = new LobePerplexityAI(params.perplexity);
|
232
239
|
break;
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { ModelProvider } from '../types';
|
2
|
+
import { LobeOpenAICompatibleFactory } from '../utils/openaiCompatibleFactory';
|
3
|
+
|
4
|
+
import type { ChatModelCard } from '@/types/llm';
|
5
|
+
|
6
|
+
export interface VLLMModelCard {
|
7
|
+
id: string;
|
8
|
+
}
|
9
|
+
|
10
|
+
export const LobeVLLMAI = LobeOpenAICompatibleFactory({
|
11
|
+
baseURL: 'http://localhost:8000/v1',
|
12
|
+
debug: {
|
13
|
+
chatCompletion: () => process.env.DEBUG_VLLM_CHAT_COMPLETION === '1',
|
14
|
+
},
|
15
|
+
models: async ({ client }) => {
|
16
|
+
const { LOBE_DEFAULT_MODEL_LIST } = await import('@/config/aiModels');
|
17
|
+
|
18
|
+
const modelsPage = await client.models.list() as any;
|
19
|
+
const modelList: VLLMModelCard[] = modelsPage.data;
|
20
|
+
|
21
|
+
return modelList
|
22
|
+
.map((model) => {
|
23
|
+
const knownModel = LOBE_DEFAULT_MODEL_LIST.find((m) => model.id.toLowerCase() === m.id.toLowerCase());
|
24
|
+
|
25
|
+
return {
|
26
|
+
contextWindowTokens: knownModel?.contextWindowTokens ?? undefined,
|
27
|
+
displayName: knownModel?.displayName ?? undefined,
|
28
|
+
enabled: knownModel?.enabled || false,
|
29
|
+
functionCall:
|
30
|
+
knownModel?.abilities?.functionCall
|
31
|
+
|| false,
|
32
|
+
id: model.id,
|
33
|
+
reasoning:
|
34
|
+
knownModel?.abilities?.reasoning
|
35
|
+
|| false,
|
36
|
+
vision:
|
37
|
+
knownModel?.abilities?.vision
|
38
|
+
|| false,
|
39
|
+
};
|
40
|
+
})
|
41
|
+
.filter(Boolean) as ChatModelCard[];
|
42
|
+
},
|
43
|
+
provider: ModelProvider.VLLM,
|
44
|
+
});
|
@@ -65,6 +65,7 @@ export interface UserKeyVaults {
|
|
65
65
|
tencentcloud?: OpenAICompatibleKeyVault;
|
66
66
|
togetherai?: OpenAICompatibleKeyVault;
|
67
67
|
upstage?: OpenAICompatibleKeyVault;
|
68
|
+
vllm?: OpenAICompatibleKeyVault;
|
68
69
|
wenxin?: OpenAICompatibleKeyVault;
|
69
70
|
xai?: OpenAICompatibleKeyVault;
|
70
71
|
zeroone?: OpenAICompatibleKeyVault;
|