@lobehub/chat 1.118.5 → 1.118.6
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/locales/ar/setting.json +4 -0
- package/locales/bg-BG/setting.json +4 -0
- package/locales/de-DE/setting.json +4 -0
- package/locales/en-US/setting.json +4 -0
- package/locales/es-ES/setting.json +4 -0
- package/locales/fa-IR/setting.json +4 -0
- package/locales/fr-FR/setting.json +4 -0
- package/locales/it-IT/setting.json +4 -0
- package/locales/ja-JP/setting.json +4 -0
- package/locales/ko-KR/setting.json +4 -0
- package/locales/nl-NL/setting.json +4 -0
- package/locales/pl-PL/setting.json +4 -0
- package/locales/pt-BR/setting.json +4 -0
- package/locales/ru-RU/setting.json +4 -0
- package/locales/tr-TR/setting.json +4 -0
- package/locales/vi-VN/setting.json +4 -0
- package/locales/zh-CN/setting.json +4 -0
- package/locales/zh-TW/setting.json +4 -0
- package/package.json +1 -1
- package/packages/const/src/settings/agent.ts +1 -0
- package/packages/types/src/agent/chatConfig.ts +6 -0
- package/src/features/AgentSetting/AgentModal/index.tsx +9 -0
- package/src/locales/default/setting.ts +4 -0
- package/src/services/chat.ts +8 -1
- package/src/store/agent/slices/chat/selectors/__snapshots__/agent.test.ts.snap +1 -0
- package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +2 -0
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,31 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
### [Version 1.118.6](https://github.com/lobehub/lobe-chat/compare/v1.118.5...v1.118.6)
|
6
|
+
|
7
|
+
<sup>Released on **2025-08-29**</sup>
|
8
|
+
|
9
|
+
#### 💄 Styles
|
10
|
+
|
11
|
+
- **misc**: Support non-stream mode.
|
12
|
+
|
13
|
+
<br/>
|
14
|
+
|
15
|
+
<details>
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
17
|
+
|
18
|
+
#### Styles
|
19
|
+
|
20
|
+
- **misc**: Support non-stream mode, closes [#8751](https://github.com/lobehub/lobe-chat/issues/8751) ([ce623bb](https://github.com/lobehub/lobe-chat/commit/ce623bb))
|
21
|
+
|
22
|
+
</details>
|
23
|
+
|
24
|
+
<div align="right">
|
25
|
+
|
26
|
+
[](#readme-top)
|
27
|
+
|
28
|
+
</div>
|
29
|
+
|
5
30
|
### [Version 1.118.5](https://github.com/lobehub/lobe-chat/compare/v1.118.4...v1.118.5)
|
6
31
|
|
7
32
|
<sup>Released on **2025-08-29**</sup>
|
package/changelog/v1.json
CHANGED
package/locales/ar/setting.json
CHANGED
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "تحديد عدد الرسائل التاريخية",
|
238
238
|
"unlimited": "غير محدود"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "تمكين الإخراج المتدفق لعرض الاستجابات في الوقت الفعلي. عند التعطيل، يتم عرض الاستجابة الكاملة فقط.",
|
242
|
+
"title": "تمكين الإخراج المتدفق"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "عدد الرسائل التي يتم إرفاقها في كل طلب (تشمل الأسئلة والأجوبة الجديدة. يُحسب كل سؤال وجواب كرسالة واحدة)",
|
242
246
|
"title": "عدد الرسائل المرفقة"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Ограничаване на броя на съобщенията в историята",
|
238
238
|
"unlimited": "Неограничен брой съобщения в историята"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Активирайте поточно предаване, за да показвате отговорите в реално време. Ако е деактивирано, ще се показва само пълният отговор.",
|
242
|
+
"title": "Активиране на поточно предаване"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Брой исторически съобщения, носени с всяка заявка",
|
242
246
|
"title": "Брой прикачени съобщения в историята"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Historiennachrichten begrenzen",
|
238
238
|
"unlimited": "Unbegrenzte Historiennachrichten"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Aktivieren Sie den Streaming-Ausgang, um Antworten in Echtzeit anzuzeigen. Wenn deaktiviert, wird nur die vollständige Antwort angezeigt.",
|
242
|
+
"title": "Streaming-Ausgabe aktivieren"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Anzahl der Nachrichten pro Anfrage (einschließlich der neuesten Fragen und Antworten. Jede Frage und Antwort zählt als 1)",
|
242
246
|
"title": "Anzahl der mitgelieferten Nachrichten"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Limit History Message Count",
|
238
238
|
"unlimited": "Unlimited history message count"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Enable streaming output to display responses in real-time. When disabled, only the complete response is shown.",
|
242
|
+
"title": "Enable Streaming Output"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Number of historical messages carried with each request",
|
242
246
|
"title": "Attached History Message Count"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Limitar número de mensajes históricos",
|
238
238
|
"unlimited": "Sin límite de mensajes históricos"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Habilita la salida en streaming para mostrar la respuesta en tiempo real. Si se desactiva, solo se mostrará la respuesta completa.",
|
242
|
+
"title": "Habilitar salida en streaming"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Número de mensajes incluidos en cada solicitud (incluyendo las preguntas más recientes. Cada pregunta y respuesta se cuenta como 1)",
|
242
246
|
"title": "Número de mensajes incluidos"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "محدودیت تعداد پیامهای تاریخی",
|
238
238
|
"unlimited": "بدون محدودیت در تعداد پیامهای تاریخی"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "فعالسازی خروجی جریانی برای نمایش پاسخها بهصورت زنده. در صورت غیرفعال بودن، فقط پاسخ کامل نمایش داده میشود.",
|
242
|
+
"title": "فعالسازی خروجی جریانی"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "تعداد پیامهایی که در هر درخواست ارسال میشوند (شامل آخرین سوال نوشتهشده. هر سوال و پاسخ بهعنوان 1 محاسبه میشود)",
|
242
246
|
"title": "تعداد پیامهای همراه"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Limite du nombre de messages historiques",
|
238
238
|
"unlimited": "Aucune limite sur le nombre de messages historiques"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Activez la diffusion en continu pour afficher les réponses en temps réel. Si désactivé, seule la réponse complète sera affichée.",
|
242
|
+
"title": "Activer la diffusion en continu"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Nombre de messages historiques à inclure dans chaque requête",
|
242
246
|
"title": "Nombre de messages historiques inclus"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Limita il numero di messaggi storici",
|
238
238
|
"unlimited": "Numero illimitato di messaggi storici"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Abilita l'output in streaming per visualizzare la risposta in tempo reale. Se disabilitato, verrà mostrata solo la risposta completa.",
|
242
|
+
"title": "Abilita output in streaming"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Numero di messaggi inclusi in ogni richiesta (inclusi gli ultimi messaggi scritti, ogni domanda e risposta conta come 1)",
|
242
246
|
"title": "Numero di messaggi inclusi"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "過去メッセージ数を制限する",
|
238
238
|
"unlimited": "過去メッセージ数を制限しない"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "リアルタイムで応答を表示するためにストリーミング出力を有効にします。無効にすると、完全な応答のみが表示されます。",
|
242
|
+
"title": "ストリーミング出力を有効にする"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "リクエストごとに含まれる過去メッセージの数",
|
242
246
|
"title": "過去メッセージ数"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "이전 메시지 수 제한",
|
238
238
|
"unlimited": "이전 메시지 수 제한 없음"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "실시간으로 응답을 표시하려면 스트리밍 출력을 활성화하세요. 비활성화하면 전체 응답만 표시됩니다.",
|
242
|
+
"title": "스트리밍 출력 활성화"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "요청당 포함되는 이전 메시지 수",
|
242
246
|
"title": "이전 메시지 수"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Berichtgeschiedenis beperken",
|
238
238
|
"unlimited": "Onbeperkt aantal berichten in de geschiedenis"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Schakel streaming-uitvoer in om reacties in realtime weer te geven. Als dit is uitgeschakeld, wordt alleen de volledige reactie weergegeven.",
|
242
|
+
"title": "Streaming-uitvoer inschakelen"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Aantal berichten dat bij elke aanvraag wordt meegenomen (inclusief de meest recente vraag. Elke vraag en antwoord tellen als 1)",
|
242
246
|
"title": "Berichtaantal meenemen"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Ograniczenie liczby wiadomości w historii",
|
238
238
|
"unlimited": "Bez limitu wiadomości w historii"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Włącz strumieniowe wyświetlanie odpowiedzi w czasie rzeczywistym. Po wyłączeniu wyświetlana jest tylko pełna odpowiedź.",
|
242
|
+
"title": "Włącz strumieniowe wyświetlanie"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Liczba wiadomości przesyłanych w jednym żądaniu (obejmuje najnowsze pytania i odpowiedzi, gdzie każde pytanie i odpowiedź liczy się jako 1)",
|
242
246
|
"title": "Liczba wiadomości"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Limitar número de mensagens de histórico",
|
238
238
|
"unlimited": "Sem limite de mensagens de histórico"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Ative a saída em fluxo para exibir respostas em tempo real. Quando desativado, apenas a resposta completa será exibida.",
|
242
|
+
"title": "Ativar saída em fluxo"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Número de mensagens incluídas em cada solicitação (incluindo a última pergunta feita. Cada pergunta e resposta contam como 1)",
|
242
246
|
"title": "Número de mensagens incluídas"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Ограничение истории сообщений",
|
238
238
|
"unlimited": "Без ограничения истории сообщений"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Включите потоковую передачу для отображения ответа в реальном времени. Если отключено, будет показан только полный ответ.",
|
242
|
+
"title": "Включить потоковую передачу"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Количество сообщений, передаваемых с каждым запросом",
|
242
246
|
"title": "Количество сообщений в истории"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Geçmiş Mesaj Sayısı Sınırlama",
|
238
238
|
"unlimited": "Sınırsız geçmiş mesaj sayısı"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Yanıtları gerçek zamanlı göstermek için akışlı çıktıyı etkinleştirin. Devre dışı bırakıldığında yalnızca tam yanıt gösterilir.",
|
242
|
+
"title": "Akışlı Çıktıyı Etkinleştir"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Her istekle taşınan tarihsel mesaj sayısı",
|
242
246
|
"title": "Eklenen Geçmiş Mesaj Sayısı"
|
@@ -237,6 +237,10 @@
|
|
237
237
|
"title": "Giới hạn số lượng tin nhắn lịch sử",
|
238
238
|
"unlimited": "Không giới hạn số lượng tin nhắn lịch sử"
|
239
239
|
},
|
240
|
+
"enableStreaming": {
|
241
|
+
"desc": "Bật phát trực tiếp để hiển thị phản hồi theo thời gian thực. Tắt sẽ chỉ hiển thị phản hồi đầy đủ.",
|
242
|
+
"title": "Bật phát trực tiếp"
|
243
|
+
},
|
240
244
|
"historyCount": {
|
241
245
|
"desc": "Số lượng tin nhắn được gửi mỗi lần yêu cầu (bao gồm cả câu hỏi mới nhất. Mỗi câu hỏi và câu trả lời đều tính là 1)",
|
242
246
|
"title": "Số lượng tin nhắn đi kèm"
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lobehub/chat",
|
3
|
-
"version": "1.118.
|
3
|
+
"version": "1.118.6",
|
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",
|
@@ -29,6 +29,7 @@ export const DEFAULT_AGENT_CHAT_CONFIG: LobeAgentChatConfig = {
|
|
29
29
|
enableCompressHistory: true,
|
30
30
|
enableHistoryCount: true,
|
31
31
|
enableReasoning: false,
|
32
|
+
enableStreaming: true,
|
32
33
|
historyCount: 20,
|
33
34
|
reasoningBudgetToken: 1024,
|
34
35
|
searchFCModel: DEFAULT_AGENT_SEARCH_FC_MODEL,
|
@@ -16,6 +16,11 @@ export interface LobeAgentChatConfig {
|
|
16
16
|
|
17
17
|
enableMaxTokens?: boolean;
|
18
18
|
|
19
|
+
/**
|
20
|
+
* 是否开启流式输出
|
21
|
+
*/
|
22
|
+
enableStreaming?: boolean;
|
23
|
+
|
19
24
|
/**
|
20
25
|
* 是否开启推理
|
21
26
|
*/
|
@@ -68,6 +73,7 @@ export const AgentChatConfigSchema = z.object({
|
|
68
73
|
enableMaxTokens: z.boolean().optional(),
|
69
74
|
enableReasoning: z.boolean().optional(),
|
70
75
|
enableReasoningEffort: z.boolean().optional(),
|
76
|
+
enableStreaming: z.boolean().optional(),
|
71
77
|
historyCount: z.number().optional(),
|
72
78
|
reasoningBudgetToken: z.number().optional(),
|
73
79
|
searchFCModel: z
|
@@ -31,6 +31,15 @@ const AgentModal = memo(() => {
|
|
31
31
|
name: '_modalConfig',
|
32
32
|
tag: 'model',
|
33
33
|
},
|
34
|
+
{
|
35
|
+
children: <Switch />,
|
36
|
+
desc: t('settingChat.enableStreaming.desc'),
|
37
|
+
label: t('settingChat.enableStreaming.title'),
|
38
|
+
layout: 'horizontal',
|
39
|
+
minWidth: undefined,
|
40
|
+
name: 'enableStreaming',
|
41
|
+
valuePropName: 'checked',
|
42
|
+
},
|
34
43
|
{
|
35
44
|
children: <SliderWithInput max={2} min={0} step={0.1} />,
|
36
45
|
desc: t('settingModel.temperature.desc'),
|
@@ -241,6 +241,10 @@ export default {
|
|
241
241
|
title: '限制历史消息数',
|
242
242
|
unlimited: '不限历史消息数',
|
243
243
|
},
|
244
|
+
enableStreaming: {
|
245
|
+
desc: '启用流式输出以实时显示响应。禁用后仅显示完整响应。',
|
246
|
+
title: '启用流式输出',
|
247
|
+
},
|
244
248
|
historyCount: {
|
245
249
|
desc: '每次请求携带的消息数(包括最新编写的提问。每个提问和回答都计算1)',
|
246
250
|
title: '附带消息数',
|
package/src/services/chat.ts
CHANGED
@@ -365,8 +365,15 @@ class ChatService {
|
|
365
365
|
? 'responses'
|
366
366
|
: undefined;
|
367
367
|
|
368
|
+
// Get the chat config to check streaming preference
|
369
|
+
const chatConfig = agentChatConfigSelectors.currentChatConfig(getAgentStoreState());
|
370
|
+
|
368
371
|
const payload = merge(
|
369
|
-
{
|
372
|
+
{
|
373
|
+
model: DEFAULT_AGENT_CONFIG.model,
|
374
|
+
stream: chatConfig.enableStreaming !== false, // Default to true if not set
|
375
|
+
...DEFAULT_AGENT_CONFIG.params,
|
376
|
+
},
|
370
377
|
{ ...res, apiMode, model },
|
371
378
|
);
|
372
379
|
|
@@ -9,6 +9,7 @@ exports[`agentSelectors > defaultAgentConfig > should merge DEFAULT_AGENT_CONFIG
|
|
9
9
|
"enableCompressHistory": true,
|
10
10
|
"enableHistoryCount": true,
|
11
11
|
"enableReasoning": false,
|
12
|
+
"enableStreaming": true,
|
12
13
|
"historyCount": 20,
|
13
14
|
"reasoningBudgetToken": 1024,
|
14
15
|
"searchFCModel": {
|
@@ -112,6 +112,7 @@ exports[`settingsSelectors > defaultAgent > should merge DEFAULT_AGENT and s.set
|
|
112
112
|
"enableCompressHistory": true,
|
113
113
|
"enableHistoryCount": true,
|
114
114
|
"enableReasoning": false,
|
115
|
+
"enableStreaming": true,
|
115
116
|
"historyCount": 20,
|
116
117
|
"reasoningBudgetToken": 1024,
|
117
118
|
"searchFCModel": {
|
@@ -156,6 +157,7 @@ exports[`settingsSelectors > defaultAgentConfig > should merge DEFAULT_AGENT_CON
|
|
156
157
|
"enableCompressHistory": true,
|
157
158
|
"enableHistoryCount": true,
|
158
159
|
"enableReasoning": false,
|
160
|
+
"enableStreaming": true,
|
159
161
|
"historyCount": 20,
|
160
162
|
"reasoningBudgetToken": 1024,
|
161
163
|
"searchFCModel": {
|