@lobehub/chat 1.69.6 → 1.70.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/changelog/v1.json +9 -0
- package/docs/self-hosting/advanced/auth/clerk.zh-CN.mdx +1 -1
- package/docs/self-hosting/server-database/vercel.zh-CN.mdx +1 -1
- package/locales/ar/chat.json +7 -1
- package/locales/bg-BG/chat.json +7 -1
- package/locales/de-DE/chat.json +7 -1
- package/locales/en-US/chat.json +7 -1
- package/locales/es-ES/chat.json +7 -1
- package/locales/fa-IR/chat.json +7 -1
- package/locales/fr-FR/chat.json +7 -1
- package/locales/it-IT/chat.json +7 -1
- package/locales/ja-JP/chat.json +7 -1
- package/locales/ko-KR/chat.json +7 -1
- package/locales/nl-NL/chat.json +7 -1
- package/locales/pl-PL/chat.json +7 -1
- package/locales/pt-BR/chat.json +7 -1
- package/locales/ru-RU/chat.json +7 -1
- package/locales/tr-TR/chat.json +7 -1
- package/locales/vi-VN/chat.json +7 -1
- package/locales/zh-CN/chat.json +7 -1
- package/locales/zh-TW/chat.json +7 -1
- package/package.json +1 -1
- package/packages/web-crawler/src/crawler.ts +11 -1
- package/src/app/(backend)/webapi/chat/[provider]/route.test.ts +4 -1
- package/src/app/(backend)/webapi/chat/[provider]/route.ts +5 -1
- package/src/{features/Conversation/Messages/Assistant/Tool/Inspector/Loader.tsx → components/CircleLoader/index.tsx} +4 -3
- package/src/config/tools.ts +2 -0
- package/src/const/settings/agent.ts +6 -0
- package/src/features/ChatInput/ActionBar/Search/FCSearchModel.tsx +56 -0
- package/src/features/ChatInput/ActionBar/Search/FunctionCallingModelSelect/index.tsx +85 -0
- package/src/features/ChatInput/ActionBar/Search/SwitchPanel.tsx +9 -23
- package/src/features/Conversation/Extras/Usage/UsageDetail/ModelCard.tsx +15 -23
- package/src/features/Conversation/Extras/Usage/UsageDetail/pricing.ts +26 -0
- package/src/features/Conversation/Extras/Usage/UsageDetail/tokens.test.ts +4 -4
- package/src/features/Conversation/Extras/Usage/UsageDetail/tokens.ts +15 -10
- package/src/features/Conversation/Messages/Assistant/IntentUnderstanding.tsx +25 -0
- package/src/features/Conversation/Messages/Assistant/Tool/Inspector/ToolTitle.tsx +1 -2
- package/src/features/Conversation/Messages/Assistant/index.tsx +18 -9
- package/src/features/ModelSwitchPanel/index.tsx +1 -4
- package/src/hooks/useAgentEnableSearch.ts +1 -9
- package/src/locales/default/chat.ts +7 -3
- package/src/server/routers/tools/search.ts +8 -1
- package/src/services/__tests__/chat.test.ts +1 -0
- package/src/services/chat.ts +63 -30
- package/src/services/session/type.ts +1 -1
- package/src/store/agent/slices/chat/selectors/__snapshots__/agent.test.ts.snap +4 -0
- package/src/store/agent/slices/chat/selectors/chatConfig.ts +5 -1
- package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChat.test.ts +12 -4
- package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +113 -13
- package/src/store/chat/slices/aiChat/initialState.ts +2 -0
- package/src/store/chat/slices/aiChat/selectors.ts +8 -1
- package/src/store/chat/slices/message/action.ts +9 -1
- package/src/store/chat/slices/plugin/action.ts +6 -4
- package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +4 -0
- package/src/types/agent/chatConfig.ts +6 -0
- package/src/types/openai/chat.ts +0 -1
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,31 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
## [Version 1.70.0](https://github.com/lobehub/lobe-chat/compare/v1.69.6...v1.70.0)
|
6
|
+
|
7
|
+
<sup>Released on **2025-03-09**</sup>
|
8
|
+
|
9
|
+
#### ✨ Features
|
10
|
+
|
11
|
+
- **misc**: Support no-fc models like deepseek r1 with online search.
|
12
|
+
|
13
|
+
<br/>
|
14
|
+
|
15
|
+
<details>
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
17
|
+
|
18
|
+
#### What's improved
|
19
|
+
|
20
|
+
- **misc**: Support no-fc models like deepseek r1 with online search, closes [#6842](https://github.com/lobehub/lobe-chat/issues/6842) ([f284c25](https://github.com/lobehub/lobe-chat/commit/f284c25))
|
21
|
+
|
22
|
+
</details>
|
23
|
+
|
24
|
+
<div align="right">
|
25
|
+
|
26
|
+
[](#readme-top)
|
27
|
+
|
28
|
+
</div>
|
29
|
+
|
5
30
|
### [Version 1.69.6](https://github.com/lobehub/lobe-chat/compare/v1.69.5...v1.69.6)
|
6
31
|
|
7
32
|
<sup>Released on **2025-03-09**</sup>
|
package/changelog/v1.json
CHANGED
@@ -36,7 +36,7 @@ tags:
|
|
36
36
|
|
37
37
|
<Image alt={'Clerk 添加 Webhooks 端点'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/f50f47fb-5e8e-4930-bf4e-8cf6f5b8afb9'} />
|
38
38
|
|
39
|
-
在
|
39
|
+
在 endpoint 中填写你的项目 URL,如 `https://your-project.com/api/webhooks/clerk`。然后在订阅事件(Subscribe to events)中,勾选 user 的三个事件(`user.created` 、`user.deleted`、`user.updated`),然后点击创建。
|
40
40
|
|
41
41
|
<Callout type={'warning'}>URL 的`https://`不可缺失,须保持 URL 的完整性</Callout>
|
42
42
|
|
@@ -140,7 +140,7 @@ tags:
|
|
140
140
|
|
141
141
|
<Image alt={'Clerk 添加 Webhooks 端点'} src={'https://github.com/lobehub/lobe-chat/assets/28616219/f50f47fb-5e8e-4930-bf4e-8cf6f5b8afb9'} />
|
142
142
|
|
143
|
-
在
|
143
|
+
在 endpoint 中填写你的 Vercel 项目的 URL,如 `https://your-project.vercel.app/api/webhooks/clerk`。然后在订阅事件(Subscribe to events)中,勾选 user 的三个事件(`user.created` 、`user.deleted`、`user.updated`),然后点击创建。
|
144
144
|
|
145
145
|
<Callout type={'warning'}>URL 的`https://`不可缺失,须保持 URL 的完整性</Callout>
|
146
146
|
|
package/locales/ar/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "توقف",
|
65
65
|
"warp": "تغيير السطر"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "جارٍ تحليل وفهم نواياك..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "جميع المحتويات",
|
69
72
|
"allFiles": "جميع الملفات",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "تحديد ما إذا كان من الضروري البحث بناءً على محتوى المحادثة",
|
145
148
|
"title": "الاتصال الذكي"
|
146
149
|
},
|
147
|
-
"disable": "النموذج الحالي لا يدعم استدعاء الوظائف، لذا لا يمكن استخدام وظيفة الاتصال الذكي",
|
148
150
|
"off": {
|
149
151
|
"desc": "استخدام المعرفة الأساسية للنموذج فقط، دون إجراء بحث عبر الإنترنت",
|
150
152
|
"title": "إيقاف الاتصال"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "استخدام محرك البحث المدمج في النموذج"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "النموذج الحالي لا يدعم استدعاء الدوال، لذا يجب استخدام نموذج يدعم استدعاء الدوال للبحث عبر الإنترنت",
|
162
|
+
"title": "نموذج البحث المساعد"
|
163
|
+
},
|
158
164
|
"title": "بحث عبر الإنترنت"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "مساعد البحث...",
|
package/locales/bg-BG/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Спри",
|
65
65
|
"warp": "Нов ред"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Анализирам и разбирам вашето намерение..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Всички съдържания",
|
69
72
|
"allFiles": "Всички файлове",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Интелигентно определяне на необходимостта от търсене въз основа на съдържанието на разговора",
|
145
148
|
"title": "Интелигентно свързване"
|
146
149
|
},
|
147
|
-
"disable": "Текущият модел не поддържа извикване на функции, затова не може да се използва интелигентно свързване",
|
148
150
|
"off": {
|
149
151
|
"desc": "Използва само основните знания на модела, без интернет търсене",
|
150
152
|
"title": "Изключване на свързването"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Използване на вградената търсачка на модела"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Текущият модел не поддържа извикване на функции, затова е необходимо да се комбинира с модел, който поддържа извикване на функции, за да се извърши търсене в интернет",
|
162
|
+
"title": "Модел за търсене на помощ"
|
163
|
+
},
|
158
164
|
"title": "Търсене в интернет"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Търсач на помощ...",
|
package/locales/de-DE/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Stoppen",
|
65
65
|
"warp": "Zeilenumbruch"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Analysiere und verstehe Ihre Absicht..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Alle Inhalte",
|
69
72
|
"allFiles": "Alle Dateien",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Intelligente Beurteilung, ob eine Suche basierend auf dem Gesprächsinhalt erforderlich ist",
|
145
148
|
"title": "Intelligente Vernetzung"
|
146
149
|
},
|
147
|
-
"disable": "Das aktuelle Modell unterstützt keine Funktionsaufrufe, daher kann die intelligente Vernetzungsfunktion nicht verwendet werden",
|
148
150
|
"off": {
|
149
151
|
"desc": "Verwendet nur das Grundwissen des Modells, ohne Netzsuche",
|
150
152
|
"title": "Vernetzung deaktivieren"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Verwenden Sie die integrierte Suchmaschine des Modells"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Das aktuelle Modell unterstützt keine Funktionsaufrufe, daher muss es mit einem Modell kombiniert werden, das Funktionsaufrufe unterstützt, um online zu suchen",
|
162
|
+
"title": "Suchunterstützungsmodell"
|
163
|
+
},
|
158
164
|
"title": "Netzwerksuche"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Suchassistent...",
|
package/locales/en-US/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Stop",
|
65
65
|
"warp": "New Line"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Analyzing and understanding your intent..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "All Content",
|
69
72
|
"allFiles": "All Files",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Intelligently determine whether a search is needed based on the conversation content",
|
145
148
|
"title": "Smart Online Search"
|
146
149
|
},
|
147
|
-
"disable": "The current model does not support function calls, so the smart online search feature is unavailable",
|
148
150
|
"off": {
|
149
151
|
"desc": "Use only the model's basic knowledge without performing a web search",
|
150
152
|
"title": "Disable Online Search"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Use the model's built-in search engine"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "The current model does not support function calls, so it needs to be paired with a model that does support function calls for online searching.",
|
162
|
+
"title": "Search Assistant Model"
|
163
|
+
},
|
158
164
|
"title": "Online Search"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Search assistants...",
|
package/locales/es-ES/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Detener",
|
65
65
|
"warp": "Salto de línea"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Analizando y comprendiendo su intención..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Todo el contenido",
|
69
72
|
"allFiles": "Todos los archivos",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Determina inteligentemente si se necesita buscar según el contenido de la conversación",
|
145
148
|
"title": "Conexión inteligente"
|
146
149
|
},
|
147
|
-
"disable": "El modelo actual no admite llamadas a funciones, por lo que no se puede utilizar la función de conexión inteligente",
|
148
150
|
"off": {
|
149
151
|
"desc": "Utiliza solo el conocimiento básico del modelo, sin realizar búsquedas en línea",
|
150
152
|
"title": "Desactivar conexión"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Utilizar el motor de búsqueda integrado del modelo"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "El modelo actual no admite llamadas a funciones, por lo que se necesita combinarlo con un modelo que admita llamadas a funciones para realizar búsquedas en línea",
|
162
|
+
"title": "Modelo de búsqueda auxiliar"
|
163
|
+
},
|
158
164
|
"title": "Búsqueda en línea"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Asistente de búsqueda...",
|
package/locales/fa-IR/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "توقف",
|
65
65
|
"warp": "خط جدید"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "در حال تحلیل و درک نیت شما..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "همه محتوا",
|
69
72
|
"allFiles": "همه فایلها",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "به طور هوشمندانه بر اساس محتوای گفتگو تشخیص میدهد که آیا نیاز به جستجو است",
|
145
148
|
"title": "اتصال هوشمند"
|
146
149
|
},
|
147
|
-
"disable": "مدل فعلی از فراخوانی توابع پشتیبانی نمیکند، بنابراین نمیتوان از ویژگی اتصال هوشمند استفاده کرد",
|
148
150
|
"off": {
|
149
151
|
"desc": "فقط از دانش پایه مدل استفاده میکند و جستجوی اینترنتی انجام نمیدهد",
|
150
152
|
"title": "قطع اتصال"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "استفاده از موتور جستجوی داخلی مدل"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "مدل فعلی از فراخوانی توابع پشتیبانی نمیکند، بنابراین نیاز است که با مدلی که از فراخوانی توابع پشتیبانی میکند، برای جستجوی آنلاین ترکیب شود",
|
162
|
+
"title": "مدل جستجوی کمکی"
|
163
|
+
},
|
158
164
|
"title": "جستجوی متصل"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "جستجوی دستیار...",
|
package/locales/fr-FR/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Arrêter",
|
65
65
|
"warp": "Saut de ligne"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Analyse et comprend votre intention..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Tout le contenu",
|
69
72
|
"allFiles": "Tous les fichiers",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Détermine intelligemment si une recherche est nécessaire en fonction du contenu de la conversation",
|
145
148
|
"title": "Connexion intelligente"
|
146
149
|
},
|
147
|
-
"disable": "Le modèle actuel ne prend pas en charge l'appel de fonctions, donc la fonctionnalité de connexion intelligente est indisponible",
|
148
150
|
"off": {
|
149
151
|
"desc": "Utilise uniquement les connaissances de base du modèle, sans recherche en ligne",
|
150
152
|
"title": "Déconnexion"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Utiliser le moteur de recherche intégré du modèle"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Le modèle actuel ne prend pas en charge les appels de fonction, il doit donc être associé à un modèle prenant en charge les appels de fonction pour effectuer une recherche en ligne",
|
162
|
+
"title": "Modèle d'assistance à la recherche"
|
163
|
+
},
|
158
164
|
"title": "Recherche en ligne"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Assistant de recherche...",
|
package/locales/it-IT/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Ferma",
|
65
65
|
"warp": "A capo"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Analizzando e comprendendo le tue intenzioni..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Tutti i contenuti",
|
69
72
|
"allFiles": "Tutti i file",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Determina intelligentemente se è necessario cercare in base al contenuto della conversazione",
|
145
148
|
"title": "Collegamento intelligente"
|
146
149
|
},
|
147
|
-
"disable": "Il modello attuale non supporta le chiamate di funzione, quindi non è possibile utilizzare la funzionalità di collegamento intelligente",
|
148
150
|
"off": {
|
149
151
|
"desc": "Utilizza solo la conoscenza di base del modello, senza effettuare ricerche online",
|
150
152
|
"title": "Disattiva collegamento"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Utilizza il motore di ricerca integrato del modello"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Il modello attuale non supporta le chiamate di funzione, quindi è necessario utilizzarlo insieme a un modello che supporti le chiamate di funzione per cercare online",
|
162
|
+
"title": "Modello di ricerca assistita"
|
163
|
+
},
|
158
164
|
"title": "Ricerca online"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Assistente di ricerca...",
|
package/locales/ja-JP/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "停止",
|
65
65
|
"warp": "改行"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "あなたの意図を分析し理解しています..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "すべてのコンテンツ",
|
69
72
|
"allFiles": "すべてのファイル",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "会話の内容に基づいて、検索が必要かどうかを自動的に判断します",
|
145
148
|
"title": "インテリジェント接続"
|
146
149
|
},
|
147
|
-
"disable": "現在のモデルは関数呼び出しをサポートしていないため、インテリジェント接続機能は使用できません",
|
148
150
|
"off": {
|
149
151
|
"desc": "モデルの基本知識のみを使用し、ネット検索は行いません",
|
150
152
|
"title": "接続をオフ"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "モデル内蔵の検索エンジンを使用"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "現在のモデルは関数呼び出しをサポートしていないため、関数呼び出しをサポートするモデルと組み合わせてネット検索を行う必要があります",
|
162
|
+
"title": "検索補助モデル"
|
163
|
+
},
|
158
164
|
"title": "ネット接続検索"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "検索アシスタント...",
|
package/locales/ko-KR/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "중지",
|
65
65
|
"warp": "줄바꿈"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "귀하의 의도를 분석하고 이해하는 중입니다..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "모든 내용",
|
69
72
|
"allFiles": "모든 파일",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "대화 내용을 기반으로 검색 필요성을 스마트하게 판단",
|
145
148
|
"title": "스마트 연결"
|
146
149
|
},
|
147
|
-
"disable": "현재 모델은 함수 호출을 지원하지 않으므로 스마트 연결 기능을 사용할 수 없습니다",
|
148
150
|
"off": {
|
149
151
|
"desc": "모델의 기본 지식만 사용하고 네트워크 검색을 수행하지 않음",
|
150
152
|
"title": "연결 끄기"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "모델 내장 검색 엔진 사용"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "현재 모델은 함수 호출을 지원하지 않으므로 함수 호출을 지원하는 모델과 함께 사용해야 인터넷 검색이 가능합니다.",
|
162
|
+
"title": "검색 보조 모델"
|
163
|
+
},
|
158
164
|
"title": "연결 검색"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "검색 도우미...",
|
package/locales/nl-NL/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Stoppen",
|
65
65
|
"warp": "Nieuwe regel"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Bezig met het analyseren en begrijpen van uw intentie..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Alle inhoud",
|
69
72
|
"allFiles": "Alle bestanden",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Intelligente beoordeling of er gezocht moet worden op basis van de gesprekinhoud",
|
145
148
|
"title": "Slimme verbinding"
|
146
149
|
},
|
147
|
-
"disable": "Het huidige model ondersteunt geen functieaanroepen, dus de slimme verbindingsfunctie kan niet worden gebruikt",
|
148
150
|
"off": {
|
149
151
|
"desc": "Gebruik alleen de basiskennis van het model, zonder online zoekopdrachten",
|
150
152
|
"title": "Verbinding uitschakelen"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Gebruik de ingebouwde zoekmachine van het model"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Het huidige model ondersteunt geen functieaanroepen, dus het moet worden gecombineerd met een model dat functieaanroepen ondersteunt om online te zoeken",
|
162
|
+
"title": "Zoekhulpmiddel model"
|
163
|
+
},
|
158
164
|
"title": "Online zoeken"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Zoekassistent...",
|
package/locales/pl-PL/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Zatrzymaj",
|
65
65
|
"warp": "Złamanie wiersza"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Analizuję i rozumiem Twoje intencje..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Wszystkie treści",
|
69
72
|
"allFiles": "Wszystkie pliki",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Inteligentne określenie, czy potrzebne jest wyszukiwanie na podstawie treści rozmowy",
|
145
148
|
"title": "Inteligentne połączenie"
|
146
149
|
},
|
147
|
-
"disable": "Aktualny model nie obsługuje wywołań funkcji, więc nie można korzystać z inteligentnego połączenia",
|
148
150
|
"off": {
|
149
151
|
"desc": "Używaj tylko podstawowej wiedzy modelu, bez wyszukiwania w sieci",
|
150
152
|
"title": "Wyłącz połączenie"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Użyj wbudowanej wyszukiwarki modelu"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Aktualny model nie obsługuje wywołań funkcji, dlatego wymaga współpracy z modelem obsługującym wywołania funkcji, aby móc przeszukiwać sieć",
|
162
|
+
"title": "Model wspomagający wyszukiwanie"
|
163
|
+
},
|
158
164
|
"title": "Wyszukiwanie w sieci"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Wyszukaj pomocnika...",
|
package/locales/pt-BR/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Parar",
|
65
65
|
"warp": "Quebrar linha"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Analisando e compreendendo sua intenção..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Todo conteúdo",
|
69
72
|
"allFiles": "Todos os arquivos",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Determina inteligentemente se é necessário pesquisar com base no conteúdo da conversa",
|
145
148
|
"title": "Conexão Inteligente"
|
146
149
|
},
|
147
|
-
"disable": "O modelo atual não suporta chamadas de função, portanto, a funcionalidade de conexão inteligente não está disponível",
|
148
150
|
"off": {
|
149
151
|
"desc": "Usa apenas o conhecimento básico do modelo, sem realizar pesquisas na web",
|
150
152
|
"title": "Desativar Conexão"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Usar o mecanismo de busca embutido no modelo"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "O modelo atual não suporta chamadas de função, portanto, é necessário combiná-lo com um modelo que suporte chamadas de função para realizar buscas na internet",
|
162
|
+
"title": "Modelo de busca auxiliar"
|
163
|
+
},
|
158
164
|
"title": "Pesquisa Conectada"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Assistente de busca...",
|
package/locales/ru-RU/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Остановить",
|
65
65
|
"warp": "Перенос строки"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Анализ и понимание вашего намерения..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Все содержимое",
|
69
72
|
"allFiles": "Все файлы",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Интеллектуально определяет необходимость поиска на основе содержания диалога",
|
145
148
|
"title": "Интеллектуальное подключение к сети"
|
146
149
|
},
|
147
|
-
"disable": "Текущая модель не поддерживает вызовы функций, поэтому функция интеллектуального подключения к сети недоступна",
|
148
150
|
"off": {
|
149
151
|
"desc": "Использует только базовые знания модели, без сетевого поиска",
|
150
152
|
"title": "Отключить подключение к сети"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Использовать встроенный поисковый движок модели"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Текущая модель не поддерживает вызов функций, поэтому необходимо использовать модель, поддерживающую вызов функций, для поиска в интернете",
|
162
|
+
"title": "Модель поиска"
|
163
|
+
},
|
158
164
|
"title": "Поиск в сети"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Поиск помощника...",
|
package/locales/tr-TR/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Dur",
|
65
65
|
"warp": "Satır atla"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Niyetinizi analiz ediyor ve anlıyor..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Tüm İçerik",
|
69
72
|
"allFiles": "Tüm Dosyalar",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Sohbet içeriğine göre akıllıca arama gerekip gerekmediğini belirler",
|
145
148
|
"title": "Akıllı Bağlantı"
|
146
149
|
},
|
147
|
-
"disable": "Mevcut model fonksiyon çağrısını desteklemediği için akıllı bağlantı özelliği kullanılamaz",
|
148
150
|
"off": {
|
149
151
|
"desc": "Sadece modelin temel bilgilerini kullanır, ağ araması yapmaz",
|
150
152
|
"title": "Bağlantıyı Kapat"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Modelin yerleşik arama motorunu kullan"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Mevcut model fonksiyon çağrısını desteklemiyor, bu nedenle çevrimiçi arama yapmak için fonksiyon çağrısını destekleyen bir model ile birlikte kullanılması gerekiyor",
|
162
|
+
"title": "Arama Yardımcı Modeli"
|
163
|
+
},
|
158
164
|
"title": "Ağ Araması"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Arama Asistanı...",
|
package/locales/vi-VN/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "Dừng",
|
65
65
|
"warp": "Xuống dòng"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "Đang phân tích và hiểu ý định của bạn..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "Tất cả nội dung",
|
69
72
|
"allFiles": "Tất cả tệp",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "Thông minh xác định xem có cần tìm kiếm dựa trên nội dung cuộc trò chuyện",
|
145
148
|
"title": "Kết nối thông minh"
|
146
149
|
},
|
147
|
-
"disable": "Mô hình hiện tại không hỗ trợ gọi hàm, do đó không thể sử dụng chức năng kết nối thông minh",
|
148
150
|
"off": {
|
149
151
|
"desc": "Chỉ sử dụng kiến thức cơ bản của mô hình, không thực hiện tìm kiếm trên mạng",
|
150
152
|
"title": "Tắt kết nối"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "Sử dụng công cụ tìm kiếm tích hợp của mô hình"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "Mô hình hiện tại không hỗ trợ gọi hàm, vì vậy cần kết hợp với mô hình hỗ trợ gọi hàm để tìm kiếm trực tuyến",
|
162
|
+
"title": "Mô hình hỗ trợ tìm kiếm"
|
163
|
+
},
|
158
164
|
"title": "Tìm kiếm trực tuyến"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "Trợ lý tìm kiếm...",
|
package/locales/zh-CN/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "停止",
|
65
65
|
"warp": "换行"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "正在分析并理解意图您的意图..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "所有内容",
|
69
72
|
"allFiles": "所有文件",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "根据对话内容智能判断是否需要搜索",
|
145
148
|
"title": "智能联网"
|
146
149
|
},
|
147
|
-
"disable": "当前模型不支持函数调用,因此无法使用智能联网功能",
|
148
150
|
"off": {
|
149
151
|
"desc": "仅使用模型的基础知识,不进行网络搜索",
|
150
152
|
"title": "关闭联网"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "使用模型内置搜索引擎"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "当前模型不支持函数调用,因此需要搭配支持函数调用的模型才能联网搜索",
|
162
|
+
"title": "搜索辅助模型"
|
163
|
+
},
|
158
164
|
"title": "联网搜索"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "搜索助手...",
|
package/locales/zh-TW/chat.json
CHANGED
@@ -64,6 +64,9 @@
|
|
64
64
|
"stop": "停止",
|
65
65
|
"warp": "換行"
|
66
66
|
},
|
67
|
+
"intentUnderstanding": {
|
68
|
+
"title": "正在分析並理解您的意圖..."
|
69
|
+
},
|
67
70
|
"knowledgeBase": {
|
68
71
|
"all": "所有內容",
|
69
72
|
"allFiles": "所有檔案",
|
@@ -144,7 +147,6 @@
|
|
144
147
|
"desc": "根據對話內容智能判斷是否需要搜尋",
|
145
148
|
"title": "智能連網"
|
146
149
|
},
|
147
|
-
"disable": "當前模型不支持函數調用,因此無法使用智能連網功能",
|
148
150
|
"off": {
|
149
151
|
"desc": "僅使用模型的基礎知識,不進行網路搜尋",
|
150
152
|
"title": "關閉連網"
|
@@ -155,6 +157,10 @@
|
|
155
157
|
},
|
156
158
|
"useModelBuiltin": "使用模型內建搜尋引擎"
|
157
159
|
},
|
160
|
+
"searchModel": {
|
161
|
+
"desc": "當前模型不支持函數調用,因此需要搭配支持函數調用的模型才能聯網搜索",
|
162
|
+
"title": "搜索輔助模型"
|
163
|
+
},
|
158
164
|
"title": "連網搜尋"
|
159
165
|
},
|
160
166
|
"searchAgentPlaceholder": "搜尋助手...",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lobehub/chat",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.70.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",
|
@@ -3,8 +3,18 @@ import { CrawlUrlRule } from './type';
|
|
3
3
|
import { crawUrlRules } from './urlRules';
|
4
4
|
import { applyUrlRules } from './utils/appUrlRules';
|
5
5
|
|
6
|
+
interface CrawlOptions {
|
7
|
+
impls?: string[];
|
8
|
+
}
|
9
|
+
|
6
10
|
export class Crawler {
|
7
|
-
impls
|
11
|
+
impls: CrawlImplType[];
|
12
|
+
|
13
|
+
constructor(options: CrawlOptions = {}) {
|
14
|
+
this.impls = !!options.impls?.length
|
15
|
+
? (options.impls.filter((impl) => Object.keys(crawlImpls).includes(impl)) as CrawlImplType[])
|
16
|
+
: (['naive', 'jina', 'browserless'] as const);
|
17
|
+
}
|
8
18
|
|
9
19
|
/**
|
10
20
|
* 爬取网页内容
|
@@ -181,7 +181,10 @@ describe('POST handler', () => {
|
|
181
181
|
const response = await POST(request as unknown as Request, { params: mockParams });
|
182
182
|
|
183
183
|
expect(response).toEqual(mockChatResponse);
|
184
|
-
expect(AgentRuntime.prototype.chat).toHaveBeenCalledWith(mockChatPayload, {
|
184
|
+
expect(AgentRuntime.prototype.chat).toHaveBeenCalledWith(mockChatPayload, {
|
185
|
+
user: 'abc',
|
186
|
+
signal: expect.anything(),
|
187
|
+
});
|
185
188
|
});
|
186
189
|
|
187
190
|
it('should return an error response when chat completion fails', async () => {
|
@@ -39,7 +39,11 @@ export const POST = checkAuth(async (req: Request, { params, jwtPayload, createR
|
|
39
39
|
});
|
40
40
|
}
|
41
41
|
|
42
|
-
return await agentRuntime.chat(data, {
|
42
|
+
return await agentRuntime.chat(data, {
|
43
|
+
user: jwtPayload.userId,
|
44
|
+
...traceOptions,
|
45
|
+
signal: req.signal,
|
46
|
+
});
|
43
47
|
} catch (e) {
|
44
48
|
const {
|
45
49
|
errorType = ChatErrorType.InternalServerError,
|