@lobehub/chat 1.77.11 → 1.77.12
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/.github/scripts/pr-comment.js +111 -55
- package/CHANGELOG.md +26 -0
- package/changelog/v1.json +9 -0
- package/docs/self-hosting/environment-variables/basic.mdx +39 -0
- package/docs/self-hosting/environment-variables/basic.zh-CN.mdx +40 -1
- package/locales/ar/hotkey.json +4 -0
- package/locales/ar/models.json +6 -0
- package/locales/bg-BG/hotkey.json +4 -0
- package/locales/bg-BG/models.json +6 -0
- package/locales/de-DE/hotkey.json +4 -0
- package/locales/de-DE/models.json +6 -0
- package/locales/en-US/hotkey.json +4 -0
- package/locales/en-US/models.json +6 -0
- package/locales/es-ES/hotkey.json +4 -0
- package/locales/es-ES/models.json +6 -0
- package/locales/fa-IR/hotkey.json +4 -0
- package/locales/fa-IR/models.json +6 -0
- package/locales/fr-FR/hotkey.json +4 -0
- package/locales/fr-FR/models.json +6 -0
- package/locales/it-IT/hotkey.json +4 -0
- package/locales/it-IT/models.json +6 -0
- package/locales/ja-JP/hotkey.json +4 -0
- package/locales/ja-JP/models.json +6 -0
- package/locales/ko-KR/hotkey.json +4 -0
- package/locales/ko-KR/models.json +6 -0
- package/locales/nl-NL/hotkey.json +4 -0
- package/locales/nl-NL/models.json +6 -0
- package/locales/pl-PL/hotkey.json +4 -0
- package/locales/pl-PL/models.json +6 -0
- package/locales/pt-BR/hotkey.json +4 -0
- package/locales/pt-BR/models.json +6 -0
- package/locales/ru-RU/hotkey.json +4 -0
- package/locales/ru-RU/models.json +6 -0
- package/locales/tr-TR/hotkey.json +4 -0
- package/locales/tr-TR/models.json +6 -0
- package/locales/vi-VN/hotkey.json +4 -0
- package/locales/vi-VN/models.json +6 -0
- package/locales/zh-CN/hotkey.json +4 -0
- package/locales/zh-CN/models.json +7 -1
- package/locales/zh-TW/hotkey.json +4 -0
- package/locales/zh-TW/models.json +6 -0
- package/package.json +1 -1
- package/packages/electron-client-ipc/src/dispatch.ts +29 -0
- package/packages/electron-client-ipc/src/events/index.ts +9 -2
- package/packages/electron-client-ipc/src/events/menu.ts +5 -0
- package/packages/electron-client-ipc/src/events/search.ts +4 -0
- package/packages/electron-client-ipc/src/events/system.ts +3 -0
- package/packages/electron-client-ipc/src/events/windows.ts +8 -0
- package/packages/electron-client-ipc/src/index.ts +1 -0
- package/scripts/migrateServerDB/index.ts +3 -2
- package/src/app/[variants]/(main)/(mobile)/me/(home)/__tests__/UserBanner.test.tsx +1 -0
- package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +3 -2
- package/src/app/[variants]/(main)/_layout/Desktop/SideBar/index.tsx +24 -5
- package/src/app/[variants]/(main)/_layout/Desktop/Titlebar.tsx +27 -0
- package/src/app/[variants]/(main)/_layout/Desktop/index.tsx +32 -3
- package/src/app/[variants]/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/index.tsx +12 -2
- package/src/app/[variants]/(main)/chat/(workspace)/page.tsx +2 -1
- package/src/app/[variants]/(main)/settings/hotkey/features/HotkeySetting.tsx +15 -6
- package/src/app/[variants]/(main)/settings/hotkey/page.tsx +10 -1
- package/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/index.tsx +3 -1
- package/src/app/desktop/devtools/page.tsx +37 -38
- package/src/config/aiModels/google.ts +25 -1
- package/src/config/aiModels/novita.ts +1 -32
- package/src/config/aiModels/ollama.ts +12 -1
- package/src/config/aiModels/qwen.ts +1 -1
- package/src/const/hotkeys.ts +10 -0
- package/src/features/DevPanel/PostgresViewer/SchemaSidebar/index.tsx +1 -1
- package/src/features/User/UserPanel/index.tsx +1 -1
- package/src/features/User/__tests__/PanelContent.test.tsx +1 -0
- package/src/libs/trpc/index.ts +8 -1
- package/src/libs/trpc/middleware/userAuth.ts +2 -3
- package/src/locales/default/hotkey.ts +4 -0
- package/src/server/globalConfig/genServerAiProviderConfig.ts +12 -3
- package/src/server/globalConfig/index.ts +6 -1
- package/src/server/globalConfig/parseSystemAgent.test.ts +56 -0
- package/src/server/globalConfig/parseSystemAgent.ts +25 -0
- package/src/server/services/changelog/index.test.ts +2 -0
- package/src/server/services/changelog/index.ts +6 -2
- package/src/services/__tests__/chat.test.ts +3 -0
- package/src/services/electron/devtools.ts +1 -1
- package/src/store/user/slices/modelList/selectors/modelConfig.ts +4 -0
- package/src/styles/global.ts +14 -0
- package/src/types/hotkey.ts +1 -0
- package/tsconfig.json +1 -6
- package/packages/electron-client-ipc/src/events/devtools.ts +0 -6
- package/src/app/[variants]/(main)/settings/hotkey/index.tsx +0 -9
- package/src/types/electron.ts +0 -11
- package/src/utils/electron/dispatch.ts +0 -10
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B)は、基本的な指示処理能力を提供し、軽量アプリケーションに適しています。"
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27Bは、Googleのオープンソース言語モデルで、効率と性能の面で新たな基準を打ち立てました。"
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turboは、さまざまなテキスト生成と理解タスクに適しており、現在はgpt-3.5-turbo-0125を指しています。"
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "QVQモデルはQwenチームによって開発された実験的研究モデルで、視覚推論能力の向上に特化しており、特に数学推論の分野で優れた性能を発揮。"
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "通義千問QVQ視覚推論モデルは、視覚入力と思考連鎖出力をサポートし、数学、プログラミング、視覚分析、創作、一般的なタスクにおいてより強力な能力を発揮します。"
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "通義千問コードモデル。"
|
1597
1603
|
},
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B)는 기본적인 지시 처리 능력을 제공하며, 경량 애플리케이션에 적합합니다."
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B는 구글의 오픈 소스 언어 모델로, 효율성과 성능 면에서 새로운 기준을 세웠습니다."
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo는 다양한 텍스트 생성 및 이해 작업에 적합하며, 현재 gpt-3.5-turbo-0125를 가리킵니다."
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "QVQ 모델은 Qwen 팀이 개발한 실험적 연구 모델로, 시각적 추론 능력 향상에 중점을 두고 있으며, 특히 수학적 추론 분야에서 두드러진 성과를 보입니다."
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "통의천문 QVQ 비주얼 추론 모델로, 비주얼 입력과 사고 체인 출력을 지원하며, 수학, 프로그래밍, 비주얼 분석, 창작 및 일반 작업에서 더 강력한 능력을 보여줍니다."
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "통의 천문 코드 모델입니다."
|
1597
1603
|
},
|
@@ -15,6 +15,10 @@
|
|
15
15
|
"desc": "Bekijk de gebruiksaanwijzing voor alle sneltoetsen",
|
16
16
|
"title": "Open sneltoets hulp"
|
17
17
|
},
|
18
|
+
"openSettings": {
|
19
|
+
"desc": "Open de applicatie-instellingenpagina",
|
20
|
+
"title": "Applicatie-instellingen"
|
21
|
+
},
|
18
22
|
"regenerateMessage": {
|
19
23
|
"desc": "Genereer het laatste bericht opnieuw",
|
20
24
|
"title": "Genereer bericht opnieuw"
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B) biedt basis instructieverwerkingscapaciteiten, geschikt voor lichte toepassingen."
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B is een open-source taalmodel van Google dat nieuwe normen heeft gesteld op het gebied van efficiëntie en prestaties."
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo, geschikt voor verschillende tekstgeneratie- en begrijptaken, wijst momenteel naar gpt-3.5-turbo-0125."
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "Het QVQ-model is een experimenteel onderzoeksmodel ontwikkeld door het Qwen-team, gericht op het verbeteren van visuele redeneervaardigheden, vooral in het domein van wiskundige redenering."
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "De QVQ visuele redeneermodel van Tongyi Qianwen ondersteunt visuele invoer en output van denkprocessen, en heeft betere prestaties getoond in wiskunde, programmeren, visuele analyse, creatie en algemene taken."
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "Tongyi Qianwen code model."
|
1597
1603
|
},
|
@@ -15,6 +15,10 @@
|
|
15
15
|
"desc": "Zobacz wszystkie instrukcje dotyczące skrótów klawiszowych",
|
16
16
|
"title": "Otwórz pomoc dotyczącą skrótów klawiszowych"
|
17
17
|
},
|
18
|
+
"openSettings": {
|
19
|
+
"desc": "Otwórz stronę ustawień aplikacji",
|
20
|
+
"title": "Ustawienia aplikacji"
|
21
|
+
},
|
18
22
|
"regenerateMessage": {
|
19
23
|
"desc": "Ponownie wygeneruj ostatnią wiadomość",
|
20
24
|
"title": "Ponownie wygeneruj wiadomość"
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B) oferuje podstawowe możliwości przetwarzania poleceń, idealne do lekkich aplikacji."
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B to otwarty model językowy stworzony przez Google, który ustanowił nowe standardy w zakresie wydajności i efektywności."
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo, odpowiedni do różnych zadań generowania i rozumienia tekstu, obecnie wskazuje na gpt-3.5-turbo-0125."
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "Model QVQ jest eksperymentalnym modelem badawczym opracowanym przez zespół Qwen, skoncentrowanym na zwiększeniu zdolności w zakresie rozumowania wizualnego, szczególnie w dziedzinie rozumowania matematycznego."
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "Model wnioskowania wizualnego QVQ, wspierający wejścia wizualne oraz wyjścia w postaci łańcucha myślowego, wykazuje silniejsze zdolności w matematyce, programowaniu, analizie wizualnej, twórczości oraz w zadaniach ogólnych."
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "Model kodowania Qwen, oparty na ogólnym zrozumieniu."
|
1597
1603
|
},
|
@@ -15,6 +15,10 @@
|
|
15
15
|
"desc": "Ver as instruções de uso de todos os atalhos",
|
16
16
|
"title": "Abrir ajuda de atalhos"
|
17
17
|
},
|
18
|
+
"openSettings": {
|
19
|
+
"desc": "Abra a página de configurações do aplicativo",
|
20
|
+
"title": "Configurações do Aplicativo"
|
21
|
+
},
|
18
22
|
"regenerateMessage": {
|
19
23
|
"desc": "Regenerar a última mensagem",
|
20
24
|
"title": "Regenerar mensagem"
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B) oferece capacidade básica de processamento de instruções, adequada para aplicações leves."
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B é um modelo de linguagem de código aberto do Google, que estabelece novos padrões em eficiência e desempenho."
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "O GPT 3.5 Turbo é adequado para uma variedade de tarefas de geração e compreensão de texto, atualmente apontando para gpt-3.5-turbo-0125."
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "O modelo QVQ é um modelo de pesquisa experimental desenvolvido pela equipe Qwen, focado em melhorar a capacidade de raciocínio visual, especialmente na área de raciocínio matemático."
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "O modelo de raciocínio visual QVQ, da Tongyi Qianwen, suporta entrada visual e saída de cadeia de pensamento, demonstrando habilidades superiores em matemática, programação, análise visual, criação e tarefas gerais."
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "Modelo de código Qwen."
|
1597
1603
|
},
|
@@ -15,6 +15,10 @@
|
|
15
15
|
"desc": "Просмотреть инструкции по использованию всех горячих клавиш",
|
16
16
|
"title": "Открыть справку по горячим клавишам"
|
17
17
|
},
|
18
|
+
"openSettings": {
|
19
|
+
"desc": "Открыть страницу настроек приложения",
|
20
|
+
"title": "Настройки приложения"
|
21
|
+
},
|
18
22
|
"regenerateMessage": {
|
19
23
|
"desc": "Сгенерировать последнее сообщение заново",
|
20
24
|
"title": "Перегенерировать сообщение"
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B) предлагает базовые возможности обработки команд, подходящие для легковесных приложений."
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B — это открытая языковая модель от Google, которая установила новые стандарты в области эффективности и производительности."
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo подходит для различных задач генерации и понимания текста, в настоящее время ссылается на gpt-3.5-turbo-0125."
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "Модель QVQ, разработанная командой Qwen, является экспериментальной исследовательской моделью, сосредоточенной на повышении визуальных способностей рассуждения, особенно в области математического рассуждения."
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "Модель визуального вывода QVQ от Tongyi Qianwen поддерживает визуальный ввод и вывод цепочек мышления, демонстрируя более высокие способности в математике, программировании, визуальном анализе, творчестве и общих задачах."
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "Модель кода Tongyi Qianwen."
|
1597
1603
|
},
|
@@ -15,6 +15,10 @@
|
|
15
15
|
"desc": "Tüm kısayol tuşlarının kullanım talimatlarını görüntüle",
|
16
16
|
"title": "Kısayol Yardımını Aç"
|
17
17
|
},
|
18
|
+
"openSettings": {
|
19
|
+
"desc": "Uygulama ayarları sayfasını aç",
|
20
|
+
"title": "Uygulama Ayarları"
|
21
|
+
},
|
18
22
|
"regenerateMessage": {
|
19
23
|
"desc": "Son mesajı yeniden oluştur",
|
20
24
|
"title": "Mesajı yeniden oluştur"
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B), temel talimat işleme yetenekleri sunar ve hafif uygulamalar için uygundur."
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B, Google'ın verimlilik ve performans açısından yeni standartlar belirleyen açık kaynaklı bir dil modelidir."
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo, çeşitli metin üretimi ve anlama görevleri için uygundur, şu anda gpt-3.5-turbo-0125'e işaret ediyor."
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "QVQ modeli, Qwen ekibi tarafından geliştirilen deneysel bir araştırma modelidir; görsel akıl yürütme yeteneğini artırmaya odaklanır, özellikle matematik akıl yürütme alanında."
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "Tongyi Qianwen QVQ görsel akıl yürütme modeli, görsel girdi ve düşünce zinciri çıktısını destekler; matematik, programlama, görsel analiz, yaratıcılık ve genel görevlerde daha güçlü yetenekler sergilemektedir."
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "Tongyi Qianwen kod modeli."
|
1597
1603
|
},
|
@@ -15,6 +15,10 @@
|
|
15
15
|
"desc": "Xem hướng dẫn sử dụng tất cả các phím tắt",
|
16
16
|
"title": "Mở trợ giúp phím tắt"
|
17
17
|
},
|
18
|
+
"openSettings": {
|
19
|
+
"desc": "Mở trang cài đặt ứng dụng",
|
20
|
+
"title": "Cài đặt ứng dụng"
|
21
|
+
},
|
18
22
|
"regenerateMessage": {
|
19
23
|
"desc": "Tạo lại tin nhắn cuối cùng",
|
20
24
|
"title": "Tạo lại tin nhắn"
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B) cung cấp khả năng xử lý chỉ dẫn cơ bản, phù hợp cho các ứng dụng nhẹ."
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B là một mô hình ngôn ngữ mã nguồn mở của Google, thiết lập tiêu chuẩn mới về hiệu suất và hiệu quả."
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo, phù hợp cho nhiều nhiệm vụ sinh và hiểu văn bản, hiện tại trỏ đến gpt-3.5-turbo-0125."
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "Mô hình QVQ là mô hình nghiên cứu thử nghiệm do đội ngũ Qwen phát triển, tập trung vào việc nâng cao khả năng suy luận hình ảnh, đặc biệt trong lĩnh vực suy luận toán học."
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "Mô hình suy luận thị giác QVQ của Tongyi Qianwen, hỗ trợ đầu vào thị giác và đầu ra chuỗi tư duy, thể hiện khả năng mạnh mẽ hơn trong toán học, lập trình, phân tích thị giác, sáng tạo và các nhiệm vụ chung."
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "Mô hình mã Qwen."
|
1597
1603
|
},
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B) 提供基本的指令处理能力,适合轻量级应用。"
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B 是谷歌的一款开源语言模型,以其在效率和性能方面设立了新的标准。"
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo,适用于各种文本生成和理解任务,Currently points to gpt-3.5-turbo-0125"
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "QVQ-72B-Preview 是由 Qwen 团队开发的实验性研究模型,专注于提升视觉推理能力。"
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "通义千问QVQ视觉推理模型,支持视觉输入及思维链输出,在数学、编程、视觉分析、创作以及通用任务上都表现了更强的能力。"
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "通义千问代码模型。"
|
1597
1603
|
},
|
@@ -1722,7 +1728,7 @@
|
|
1722
1728
|
"description": "Qwen-Omni 系列模型支持输入多种模态的数据,包括视频、音频、图片、文本,并输出音频与文本。"
|
1723
1729
|
},
|
1724
1730
|
"qwen2.5-vl-32b-instruct": {
|
1725
|
-
"description": "Qwen2.
|
1731
|
+
"description": "Qwen2.5VL系列模型,在math和学科问题解答达到了接近Qwen2.5VL-72B的水平,回复风格面向人类偏好进行大幅调整,尤其是数学、逻辑推理、知识问答等客观类query,模型回复详实程度和格式清晰度明显改善。此版本为32B版本。"
|
1726
1732
|
},
|
1727
1733
|
"qwen2.5-vl-72b-instruct": {
|
1728
1734
|
"description": "指令跟随、数学、解题、代码整体提升,万物识别能力提升,支持多样格式直接精准定位视觉元素,支持对长视频文件(最长10分钟)进行理解和秒级别的事件时刻定位,能理解时间先后和快慢,基于解析和定位能力支持操控OS或Mobile的Agent,关键信息抽取能力和Json格式输出能力强,此版本为72B版本,本系列能力最强的版本。"
|
@@ -1010,6 +1010,9 @@
|
|
1010
1010
|
"google/gemma-2b-it": {
|
1011
1011
|
"description": "Gemma Instruct (2B) 提供基本的指令處理能力,適合輕量級應用。"
|
1012
1012
|
},
|
1013
|
+
"google/gemma-3-27b-it": {
|
1014
|
+
"description": "Gemma 3 27B 是谷歌的一款開源語言模型,以其在效率和性能方面設立了新的標準。"
|
1015
|
+
},
|
1013
1016
|
"gpt-3.5-turbo": {
|
1014
1017
|
"description": "GPT 3.5 Turbo,適用於各種文本生成和理解任務,Currently points to gpt-3.5-turbo-0125"
|
1015
1018
|
},
|
@@ -1592,6 +1595,9 @@
|
|
1592
1595
|
"qvq-72b-preview": {
|
1593
1596
|
"description": "QVQ模型是由 Qwen 團隊開發的實驗性研究模型,專注於提升視覺推理能力,尤其在數學推理領域。"
|
1594
1597
|
},
|
1598
|
+
"qvq-max-latest": {
|
1599
|
+
"description": "通義千問QVQ視覺推理模型,支持視覺輸入及思維鏈輸出,在數學、程式設計、視覺分析、創作以及通用任務上都表現了更強的能力。"
|
1600
|
+
},
|
1595
1601
|
"qwen-coder-plus-latest": {
|
1596
1602
|
"description": "通義千問代碼模型。"
|
1597
1603
|
},
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lobehub/chat",
|
3
|
-
"version": "1.77.
|
3
|
+
"version": "1.77.12",
|
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",
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { DispatchInvoke } from './types';
|
2
|
+
|
3
|
+
interface IElectronAPI {
|
4
|
+
invoke: DispatchInvoke;
|
5
|
+
}
|
6
|
+
|
7
|
+
declare global {
|
8
|
+
interface Window {
|
9
|
+
electronAPI: IElectronAPI;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
/**
|
14
|
+
* client 端请求 sketch 端 event 数据的方法
|
15
|
+
*/
|
16
|
+
export const dispatch: DispatchInvoke = async (event, ...data) => {
|
17
|
+
if (!window.electronAPI || !window.electronAPI.invoke)
|
18
|
+
throw new Error(`electronAPI.invoke not found. Please expose \`ipcRenderer.invoke\` to \`window.electronAPI.invoke\` in the preload:
|
19
|
+
|
20
|
+
import { contextBridge, ipcRenderer } from 'electron';
|
21
|
+
|
22
|
+
const invoke = async (event, ...data) =>
|
23
|
+
ipcRenderer.invoke(event, ...data);
|
24
|
+
|
25
|
+
contextBridge.exposeInMainWorld('electronAPI', { invoke });
|
26
|
+
`);
|
27
|
+
|
28
|
+
return window.electronAPI.invoke(event, ...data);
|
29
|
+
};
|
@@ -1,10 +1,17 @@
|
|
1
|
-
import {
|
1
|
+
import { MenuDispatchEvents } from './menu';
|
2
|
+
import { FilesSearchDispatchEvents } from './search';
|
3
|
+
import { SystemDispatchEvents } from './system';
|
4
|
+
import { WindowsDispatchEvents } from './windows';
|
2
5
|
|
3
6
|
/**
|
4
7
|
* renderer -> main dispatch events
|
5
8
|
*/
|
6
9
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
7
|
-
export interface ClientDispatchEvents
|
10
|
+
export interface ClientDispatchEvents
|
11
|
+
extends WindowsDispatchEvents,
|
12
|
+
FilesSearchDispatchEvents,
|
13
|
+
SystemDispatchEvents,
|
14
|
+
MenuDispatchEvents {}
|
8
15
|
|
9
16
|
export type ClientDispatchEventKey = keyof ClientDispatchEvents;
|
10
17
|
|
@@ -12,6 +12,7 @@ dotenv.config();
|
|
12
12
|
|
13
13
|
const migrationsFolder = join(__dirname, '../../src/database/migrations');
|
14
14
|
|
15
|
+
const isDesktop = process.env.NEXT_PUBLIC_IS_DESKTOP_APP === '1';
|
15
16
|
const runMigrations = async () => {
|
16
17
|
if (process.env.DATABASE_DRIVER === 'node') {
|
17
18
|
await nodeMigrate(serverDB, { migrationsFolder });
|
@@ -27,7 +28,7 @@ const runMigrations = async () => {
|
|
27
28
|
let connectionString = process.env.DATABASE_URL;
|
28
29
|
|
29
30
|
// only migrate database if the connection string is available
|
30
|
-
if (connectionString) {
|
31
|
+
if (!isDesktop && connectionString) {
|
31
32
|
// eslint-disable-next-line unicorn/prefer-top-level-await
|
32
33
|
runMigrations().catch((err) => {
|
33
34
|
console.error('❌ Database migrate failed:', err);
|
@@ -44,5 +45,5 @@ if (connectionString) {
|
|
44
45
|
process.exit(1);
|
45
46
|
});
|
46
47
|
} else {
|
47
|
-
console.log('🟢 not find database env, migration skipped');
|
48
|
+
console.log('🟢 not find database env or in desktop mode, migration skipped');
|
48
49
|
}
|
@@ -3,6 +3,7 @@ import { Compass, FolderClosed, MessageSquare } from 'lucide-react';
|
|
3
3
|
import Link from 'next/link';
|
4
4
|
import { memo } from 'react';
|
5
5
|
import { useTranslation } from 'react-i18next';
|
6
|
+
import { Flexbox } from 'react-layout-kit';
|
6
7
|
|
7
8
|
import { useGlobalStore } from '@/store/global';
|
8
9
|
import { SidebarTabKey } from '@/store/global/initialState';
|
@@ -20,7 +21,7 @@ const TopActions = memo<TopActionProps>(({ tab, isPinned }) => {
|
|
20
21
|
const { showMarket, enableKnowledgeBase } = useServerConfigStore(featureFlagsSelectors);
|
21
22
|
|
22
23
|
return (
|
23
|
-
|
24
|
+
<Flexbox gap={8}>
|
24
25
|
<Link
|
25
26
|
aria-label={t('tab.chat')}
|
26
27
|
href={'/chat'}
|
@@ -59,7 +60,7 @@ const TopActions = memo<TopActionProps>(({ tab, isPinned }) => {
|
|
59
60
|
/>
|
60
61
|
</Link>
|
61
62
|
)}
|
62
|
-
|
63
|
+
</Flexbox>
|
63
64
|
);
|
64
65
|
});
|
65
66
|
|
@@ -4,10 +4,12 @@ import { SideNav } from '@lobehub/ui';
|
|
4
4
|
import { parseAsBoolean, useQueryState } from 'nuqs';
|
5
5
|
import { Suspense, memo } from 'react';
|
6
6
|
|
7
|
+
import { isDesktop } from '@/const/version';
|
7
8
|
import { useActiveTabKey } from '@/hooks/useActiveTabKey';
|
8
9
|
import { useGlobalStore } from '@/store/global';
|
9
10
|
import { systemStatusSelectors } from '@/store/global/selectors';
|
10
11
|
import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfig';
|
12
|
+
import { electronStylish } from '@/styles/electron';
|
11
13
|
|
12
14
|
import Avatar from './Avatar';
|
13
15
|
import BottomActions from './BottomActions';
|
@@ -28,13 +30,30 @@ const Nav = memo(() => {
|
|
28
30
|
return (
|
29
31
|
!inZenMode && (
|
30
32
|
<SideNav
|
31
|
-
avatar={
|
32
|
-
|
33
|
-
|
33
|
+
avatar={
|
34
|
+
<div className={electronStylish.nodrag}>
|
35
|
+
<Avatar />
|
36
|
+
</div>
|
37
|
+
}
|
38
|
+
bottomActions={
|
39
|
+
<div className={electronStylish.nodrag}>
|
40
|
+
<BottomActions />
|
41
|
+
</div>
|
42
|
+
}
|
43
|
+
className={electronStylish.draggable}
|
44
|
+
style={{
|
45
|
+
height: '100%',
|
46
|
+
zIndex: 100,
|
47
|
+
...(isDesktop
|
48
|
+
? { background: 'transparent', borderInlineEnd: 0, paddingBlockStart: 8 }
|
49
|
+
: {}),
|
50
|
+
}}
|
34
51
|
topActions={
|
35
52
|
<Suspense>
|
36
|
-
<
|
37
|
-
|
53
|
+
<div className={electronStylish.nodrag}>
|
54
|
+
<Top />
|
55
|
+
{showPinList && <PinList />}
|
56
|
+
</div>
|
38
57
|
</Suspense>
|
39
58
|
}
|
40
59
|
/>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { memo } from 'react';
|
2
|
+
import { Flexbox } from 'react-layout-kit';
|
3
|
+
|
4
|
+
import { electronStylish } from '@/styles/electron';
|
5
|
+
|
6
|
+
export const TITLE_BAR_HEIGHT = 36;
|
7
|
+
|
8
|
+
const TitleBar = memo(() => {
|
9
|
+
return (
|
10
|
+
<Flexbox
|
11
|
+
align={'center'}
|
12
|
+
className={electronStylish.draggable}
|
13
|
+
height={TITLE_BAR_HEIGHT}
|
14
|
+
horizontal
|
15
|
+
justify={'space-between'}
|
16
|
+
paddingInline={12}
|
17
|
+
style={{ minHeight: TITLE_BAR_HEIGHT }}
|
18
|
+
width={'100%'}
|
19
|
+
>
|
20
|
+
<div />
|
21
|
+
<div>{/* TODO */}</div>
|
22
|
+
<div>{/* TODO */}</div>
|
23
|
+
</Flexbox>
|
24
|
+
);
|
25
|
+
});
|
26
|
+
|
27
|
+
export default TitleBar;
|
@@ -2,10 +2,12 @@
|
|
2
2
|
|
3
3
|
import { useTheme } from 'antd-style';
|
4
4
|
import dynamic from 'next/dynamic';
|
5
|
+
import { usePathname } from 'next/navigation';
|
5
6
|
import { PropsWithChildren, Suspense, memo } from 'react';
|
6
7
|
import { HotkeysProvider } from 'react-hotkeys-hook';
|
7
8
|
import { Flexbox } from 'react-layout-kit';
|
8
9
|
|
10
|
+
import { isDesktop } from '@/const/version';
|
9
11
|
import { BANNER_HEIGHT } from '@/features/AlertBanner/CloudBanner';
|
10
12
|
import HotkeyHelperPanel from '@/features/HotkeyHelperPanel';
|
11
13
|
import { usePlatform } from '@/hooks/usePlatform';
|
@@ -14,19 +16,31 @@ import { HotkeyScopeEnum } from '@/types/hotkey';
|
|
14
16
|
|
15
17
|
import RegisterHotkeys from './RegisterHotkeys';
|
16
18
|
import SideBar from './SideBar';
|
19
|
+
import TitleBar, { TITLE_BAR_HEIGHT } from './Titlebar';
|
17
20
|
|
18
21
|
const CloudBanner = dynamic(() => import('@/features/AlertBanner/CloudBanner'));
|
19
22
|
|
20
23
|
const Layout = memo<PropsWithChildren>(({ children }) => {
|
21
24
|
const { isPWA } = usePlatform();
|
22
25
|
const theme = useTheme();
|
26
|
+
|
27
|
+
const pathname = usePathname();
|
23
28
|
const { showCloudPromotion } = useServerConfigStore(featureFlagsSelectors);
|
24
29
|
|
30
|
+
// setting page not show sidebar
|
31
|
+
const hideSideBar = isDesktop && pathname.startsWith('/settings');
|
25
32
|
return (
|
26
33
|
<HotkeysProvider initiallyActiveScopes={[HotkeyScopeEnum.Global]}>
|
34
|
+
{isDesktop && <TitleBar />}
|
27
35
|
{showCloudPromotion && <CloudBanner />}
|
28
36
|
<Flexbox
|
29
|
-
height={
|
37
|
+
height={
|
38
|
+
isDesktop
|
39
|
+
? `calc(100% - ${TITLE_BAR_HEIGHT}px)`
|
40
|
+
: showCloudPromotion
|
41
|
+
? `calc(100% - ${BANNER_HEIGHT}px)`
|
42
|
+
: '100%'
|
43
|
+
}
|
30
44
|
horizontal
|
31
45
|
style={{
|
32
46
|
borderTop: isPWA ? `1px solid ${theme.colorBorder}` : undefined,
|
@@ -34,8 +48,23 @@ const Layout = memo<PropsWithChildren>(({ children }) => {
|
|
34
48
|
}}
|
35
49
|
width={'100%'}
|
36
50
|
>
|
37
|
-
<SideBar />
|
38
|
-
{
|
51
|
+
{!hideSideBar && <SideBar />}
|
52
|
+
{isDesktop ? (
|
53
|
+
<Flexbox
|
54
|
+
style={{
|
55
|
+
background: theme.colorBgLayout,
|
56
|
+
borderInlineStart: `1px solid ${theme.colorBorderSecondary}`,
|
57
|
+
borderStartStartRadius: !hideSideBar ? 12 : undefined,
|
58
|
+
borderTop: `1px solid ${theme.colorBorderSecondary}`,
|
59
|
+
overflow: 'hidden',
|
60
|
+
}}
|
61
|
+
width={'100%'}
|
62
|
+
>
|
63
|
+
{children}
|
64
|
+
</Flexbox>
|
65
|
+
) : (
|
66
|
+
children
|
67
|
+
)}
|
39
68
|
</Flexbox>
|
40
69
|
<HotkeyHelperPanel />
|
41
70
|
<Suspense>
|