@lobehub/lobehub 2.0.0-next.89 → 2.0.0-next.90
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/chat.json +4 -0
- package/locales/ar/models.json +3 -6
- package/locales/bg-BG/chat.json +4 -0
- package/locales/bg-BG/models.json +3 -6
- package/locales/de-DE/chat.json +4 -0
- package/locales/de-DE/models.json +3 -6
- package/locales/en-US/chat.json +4 -0
- package/locales/en-US/common.json +1 -0
- package/locales/en-US/models.json +3 -6
- package/locales/es-ES/chat.json +4 -0
- package/locales/es-ES/models.json +3 -6
- package/locales/fa-IR/chat.json +4 -0
- package/locales/fa-IR/models.json +3 -6
- package/locales/fr-FR/chat.json +4 -0
- package/locales/fr-FR/models.json +3 -6
- package/locales/it-IT/chat.json +4 -0
- package/locales/it-IT/models.json +3 -6
- package/locales/ja-JP/chat.json +4 -0
- package/locales/ja-JP/models.json +3 -6
- package/locales/ko-KR/chat.json +4 -0
- package/locales/ko-KR/models.json +3 -6
- package/locales/nl-NL/chat.json +4 -0
- package/locales/nl-NL/models.json +3 -6
- package/locales/pl-PL/chat.json +4 -0
- package/locales/pl-PL/models.json +3 -6
- package/locales/pt-BR/chat.json +4 -0
- package/locales/pt-BR/models.json +3 -6
- package/locales/ru-RU/chat.json +4 -0
- package/locales/ru-RU/models.json +3 -6
- package/locales/tr-TR/chat.json +4 -0
- package/locales/tr-TR/models.json +3 -6
- package/locales/vi-VN/chat.json +4 -0
- package/locales/vi-VN/models.json +3 -6
- package/locales/zh-CN/chat.json +4 -0
- package/locales/zh-CN/common.json +1 -0
- package/locales/zh-CN/models.json +3 -6
- package/locales/zh-TW/chat.json +4 -0
- package/locales/zh-TW/models.json +3 -6
- package/package.json +1 -1
- package/packages/model-bank/src/types/aiModel.ts +1 -0
- package/packages/types/src/message/common/metadata.ts +6 -0
- package/packages/utils/src/time.ts +4 -0
- package/src/app/(backend)/middleware/auth/index.ts +1 -2
- package/src/app/(backend)/webapi/chat/[provider]/route.ts +1 -1
- package/src/app/(backend)/webapi/models/[provider]/pull/route.ts +1 -1
- package/src/app/(backend)/webapi/models/[provider]/route.ts +1 -1
- package/src/app/(backend)/webapi/text-to-image/[provider]/route.ts +1 -1
- package/src/app/[variants]/(main)/settings/provider/features/ModelList/ModelItem.tsx +74 -97
- package/src/features/Conversation/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +22 -11
- package/src/features/Conversation/Messages/Group/Tool/Inspector/StatusIndicator.tsx +41 -0
- package/src/features/Conversation/Messages/Group/Tool/Inspector/ToolTitle.tsx +13 -3
- package/src/features/Conversation/Messages/Group/Tool/Inspector/index.tsx +28 -34
- package/src/features/Conversation/Messages/Group/Tool/Render/AbortResponse.tsx +37 -0
- package/src/features/Conversation/Messages/Group/Tool/Render/index.tsx +6 -0
- package/src/features/Conversation/Messages/Group/Tool/index.tsx +1 -0
- package/src/locales/default/chat.ts +1 -0
- package/src/locales/default/common.ts +1 -0
- package/src/server/routers/lambda/file.ts +0 -6
- package/src/store/chat/slices/message/actions/publicApi.ts +15 -0
|
@@ -1481,9 +1481,6 @@
|
|
|
1481
1481
|
"gemini-2.0-flash-lite-001": {
|
|
1482
1482
|
"description": "Gemini 2.0 Flash to wariant modelu, zoptymalizowany pod kątem efektywności kosztowej i niskiego opóźnienia."
|
|
1483
1483
|
},
|
|
1484
|
-
"gemini-2.0-flash-preview-image-generation": {
|
|
1485
|
-
"description": "Model Gemini 2.0 Flash do generowania obrazów, wspierający generację obrazów"
|
|
1486
|
-
},
|
|
1487
1484
|
"gemini-2.5-flash": {
|
|
1488
1485
|
"description": "Gemini 2.5 Flash to najbardziej opłacalny model Google, oferujący wszechstronne funkcje."
|
|
1489
1486
|
},
|
|
@@ -1511,9 +1508,6 @@
|
|
|
1511
1508
|
"gemini-2.5-flash-preview-04-17": {
|
|
1512
1509
|
"description": "Gemini 2.5 Flash Preview to najbardziej opłacalny model Google, oferujący wszechstronne funkcje."
|
|
1513
1510
|
},
|
|
1514
|
-
"gemini-2.5-flash-preview-05-20": {
|
|
1515
|
-
"description": "Gemini 2.5 Flash Preview to najbardziej opłacalny model Google, oferujący wszechstronne funkcje."
|
|
1516
|
-
},
|
|
1517
1511
|
"gemini-2.5-flash-preview-09-2025": {
|
|
1518
1512
|
"description": "Wersja podglądowa (25 września 2025) Gemini 2.5 Flash"
|
|
1519
1513
|
},
|
|
@@ -1529,6 +1523,9 @@
|
|
|
1529
1523
|
"gemini-2.5-pro-preview-06-05": {
|
|
1530
1524
|
"description": "Gemini 2.5 Pro Preview to najnowocześniejszy model myślowy Google, zdolny do rozumowania nad złożonymi problemami w dziedzinach kodowania, matematyki i STEM oraz do analizy dużych zbiorów danych, repozytoriów kodu i dokumentów z wykorzystaniem długich kontekstów."
|
|
1531
1525
|
},
|
|
1526
|
+
"gemini-3-pro-preview": {
|
|
1527
|
+
"description": "Gemini 3 Pro to najinteligentniejszy model Google, oferujący najnowocześniejsze wnioskowanie i rozumienie multimodalne, a także zaawansowane funkcje agenta i kodowania kontekstu."
|
|
1528
|
+
},
|
|
1532
1529
|
"gemini-flash-latest": {
|
|
1533
1530
|
"description": "Najnowsze wydanie Gemini Flash"
|
|
1534
1531
|
},
|
package/locales/pt-BR/chat.json
CHANGED
|
@@ -65,6 +65,9 @@
|
|
|
65
65
|
"thinking": {
|
|
66
66
|
"title": "Interruptor de Pensamento Profundo"
|
|
67
67
|
},
|
|
68
|
+
"thinkingLevel": {
|
|
69
|
+
"title": "Nível de raciocínio"
|
|
70
|
+
},
|
|
68
71
|
"title": "Funcionalidade de Extensão do Modelo",
|
|
69
72
|
"urlContext": {
|
|
70
73
|
"desc": "Ao ativar, os links da web serão automaticamente analisados para obter o conteúdo real do contexto da página",
|
|
@@ -396,6 +399,7 @@
|
|
|
396
399
|
"rejectReasonPlaceholder": "Inserir o motivo da rejeição ajudará o Agente a entender e melhorar ações futuras",
|
|
397
400
|
"rejectTitle": "Rejeitar esta chamada de ferramenta",
|
|
398
401
|
"rejectedWithReason": "Esta chamada de ferramenta foi rejeitada: {{reason}}",
|
|
402
|
+
"toolAbort": "Esta chamada de ferramenta foi cancelada pelo usuário",
|
|
399
403
|
"toolRejected": "Esta chamada de ferramenta foi rejeitada"
|
|
400
404
|
}
|
|
401
405
|
},
|
|
@@ -1481,9 +1481,6 @@
|
|
|
1481
1481
|
"gemini-2.0-flash-lite-001": {
|
|
1482
1482
|
"description": "Variante do modelo Gemini 2.0 Flash, otimizada para custo-benefício e baixa latência."
|
|
1483
1483
|
},
|
|
1484
|
-
"gemini-2.0-flash-preview-image-generation": {
|
|
1485
|
-
"description": "Modelo de pré-visualização Gemini 2.0 Flash, suporta geração de imagens"
|
|
1486
|
-
},
|
|
1487
1484
|
"gemini-2.5-flash": {
|
|
1488
1485
|
"description": "Gemini 2.5 Flash é o modelo com melhor custo-benefício do Google, oferecendo funcionalidades abrangentes."
|
|
1489
1486
|
},
|
|
@@ -1511,9 +1508,6 @@
|
|
|
1511
1508
|
"gemini-2.5-flash-preview-04-17": {
|
|
1512
1509
|
"description": "O Gemini 2.5 Flash Preview é o modelo mais acessível do Google, oferecendo uma gama completa de funcionalidades."
|
|
1513
1510
|
},
|
|
1514
|
-
"gemini-2.5-flash-preview-05-20": {
|
|
1515
|
-
"description": "Gemini 2.5 Flash Preview é o modelo com melhor custo-benefício do Google, oferecendo funcionalidades abrangentes."
|
|
1516
|
-
},
|
|
1517
1511
|
"gemini-2.5-flash-preview-09-2025": {
|
|
1518
1512
|
"description": "Versão prévia (25 de setembro de 2025) do Gemini 2.5 Flash"
|
|
1519
1513
|
},
|
|
@@ -1529,6 +1523,9 @@
|
|
|
1529
1523
|
"gemini-2.5-pro-preview-06-05": {
|
|
1530
1524
|
"description": "Gemini 2.5 Pro Preview é o modelo de pensamento mais avançado do Google, capaz de raciocinar sobre problemas complexos em código, matemática e áreas STEM, além de analisar grandes conjuntos de dados, bibliotecas de código e documentos usando contexto extenso."
|
|
1531
1525
|
},
|
|
1526
|
+
"gemini-3-pro-preview": {
|
|
1527
|
+
"description": "O Gemini 3 Pro é o modelo mais inteligente do Google, com raciocínio de última geração, compreensão multimodal e poderosos recursos de agente e codificação de contexto."
|
|
1528
|
+
},
|
|
1532
1529
|
"gemini-flash-latest": {
|
|
1533
1530
|
"description": "Última versão do Gemini Flash"
|
|
1534
1531
|
},
|
package/locales/ru-RU/chat.json
CHANGED
|
@@ -65,6 +65,9 @@
|
|
|
65
65
|
"thinking": {
|
|
66
66
|
"title": "Переключатель глубокого мышления"
|
|
67
67
|
},
|
|
68
|
+
"thinkingLevel": {
|
|
69
|
+
"title": "Уровень мышления"
|
|
70
|
+
},
|
|
68
71
|
"title": "Расширенные функции модели",
|
|
69
72
|
"urlContext": {
|
|
70
73
|
"desc": "При включении автоматически будет анализироваться ссылка на веб-страницу для получения фактического содержимого контекста страницы",
|
|
@@ -396,6 +399,7 @@
|
|
|
396
399
|
"rejectReasonPlaceholder": "Указание причины отклонения поможет агенту лучше понять и улучшить последующие действия",
|
|
397
400
|
"rejectTitle": "Отклонить вызов инструмента",
|
|
398
401
|
"rejectedWithReason": "Вызов инструмента был отклонён по следующей причине: {{reason}}",
|
|
402
|
+
"toolAbort": "Вызов инструмента был отменён пользователем",
|
|
399
403
|
"toolRejected": "Вызов инструмента был отклонён"
|
|
400
404
|
}
|
|
401
405
|
},
|
|
@@ -1481,9 +1481,6 @@
|
|
|
1481
1481
|
"gemini-2.0-flash-lite-001": {
|
|
1482
1482
|
"description": "Модельный вариант Gemini 2.0 Flash, оптимизированный для достижения таких целей, как экономическая эффективность и низкая задержка."
|
|
1483
1483
|
},
|
|
1484
|
-
"gemini-2.0-flash-preview-image-generation": {
|
|
1485
|
-
"description": "Модель предварительного просмотра Gemini 2.0 Flash, поддерживающая генерацию изображений"
|
|
1486
|
-
},
|
|
1487
1484
|
"gemini-2.5-flash": {
|
|
1488
1485
|
"description": "Gemini 2.5 Flash — самая экономичная модель Google, предоставляющая полный набор функций."
|
|
1489
1486
|
},
|
|
@@ -1511,9 +1508,6 @@
|
|
|
1511
1508
|
"gemini-2.5-flash-preview-04-17": {
|
|
1512
1509
|
"description": "Gemini 2.5 Flash Preview — это наиболее выгодная модель от Google, предлагающая широкий спектр возможностей."
|
|
1513
1510
|
},
|
|
1514
|
-
"gemini-2.5-flash-preview-05-20": {
|
|
1515
|
-
"description": "Gemini 2.5 Flash Preview — самая экономичная модель Google с полным набором функций."
|
|
1516
|
-
},
|
|
1517
1511
|
"gemini-2.5-flash-preview-09-2025": {
|
|
1518
1512
|
"description": "Предварительный релиз Gemini 2.5 Flash (25 сентября 2025 года)"
|
|
1519
1513
|
},
|
|
@@ -1529,6 +1523,9 @@
|
|
|
1529
1523
|
"gemini-2.5-pro-preview-06-05": {
|
|
1530
1524
|
"description": "Gemini 2.5 Pro Preview — передовая модель мышления от Google, способная рассуждать над сложными задачами в области кода, математики и STEM, а также анализировать большие наборы данных, кодовые базы и документы с использованием длинного контекста."
|
|
1531
1525
|
},
|
|
1526
|
+
"gemini-3-pro-preview": {
|
|
1527
|
+
"description": "Gemini 3 Pro — самая интеллектуальная модель от Google с передовыми возможностями рассуждения, мультимодального понимания, а также мощными функциями агента и кодирования контекста."
|
|
1528
|
+
},
|
|
1532
1529
|
"gemini-flash-latest": {
|
|
1533
1530
|
"description": "Последний релиз Gemini Flash"
|
|
1534
1531
|
},
|
package/locales/tr-TR/chat.json
CHANGED
|
@@ -65,6 +65,9 @@
|
|
|
65
65
|
"thinking": {
|
|
66
66
|
"title": "Derin Düşünme Anahtarı"
|
|
67
67
|
},
|
|
68
|
+
"thinkingLevel": {
|
|
69
|
+
"title": "Düşünme Seviyesi"
|
|
70
|
+
},
|
|
68
71
|
"title": "Model Genişletme Özellikleri",
|
|
69
72
|
"urlContext": {
|
|
70
73
|
"desc": "Etkinleştirildiğinde, gerçek web sayfası bağlam içeriğini almak için web bağlantıları otomatik olarak çözümlenir",
|
|
@@ -396,6 +399,7 @@
|
|
|
396
399
|
"rejectReasonPlaceholder": "Reddetme nedenini girmek, Agent'ın anlamasına ve sonraki eylemleri iyileştirmesine yardımcı olur",
|
|
397
400
|
"rejectTitle": "Bu Araç Çağrısını Reddet",
|
|
398
401
|
"rejectedWithReason": "Bu araç çağrısı şu nedenle reddedildi: {{reason}}",
|
|
402
|
+
"toolAbort": "Bu araç çağrısı kullanıcı tarafından iptal edildi",
|
|
399
403
|
"toolRejected": "Bu araç çağrısı kullanıcı tarafından reddedildi"
|
|
400
404
|
}
|
|
401
405
|
},
|
|
@@ -1481,9 +1481,6 @@
|
|
|
1481
1481
|
"gemini-2.0-flash-lite-001": {
|
|
1482
1482
|
"description": "Gemini 2.0 Flash model varyantı, maliyet etkinliği ve düşük gecikme gibi hedefler için optimize edilmiştir."
|
|
1483
1483
|
},
|
|
1484
|
-
"gemini-2.0-flash-preview-image-generation": {
|
|
1485
|
-
"description": "Gemini 2.0 Flash önizleme modeli, görüntü üretimini destekler."
|
|
1486
|
-
},
|
|
1487
1484
|
"gemini-2.5-flash": {
|
|
1488
1485
|
"description": "Gemini 2.5 Flash, Google'ın en yüksek maliyet-performans modelidir ve kapsamlı özellikler sunar."
|
|
1489
1486
|
},
|
|
@@ -1511,9 +1508,6 @@
|
|
|
1511
1508
|
"gemini-2.5-flash-preview-04-17": {
|
|
1512
1509
|
"description": "Gemini 2.5 Flash Önizleme, Google'ın en iyi fiyat-performans oranına sahip modelidir ve kapsamlı özellikler sunar."
|
|
1513
1510
|
},
|
|
1514
|
-
"gemini-2.5-flash-preview-05-20": {
|
|
1515
|
-
"description": "Gemini 2.5 Flash Önizleme, Google'ın en yüksek maliyet-performans modelidir ve kapsamlı özellikler sunar."
|
|
1516
|
-
},
|
|
1517
1511
|
"gemini-2.5-flash-preview-09-2025": {
|
|
1518
1512
|
"description": "Gemini 2.5 Flash'ın önizleme sürümü (25 Eylül 2025)"
|
|
1519
1513
|
},
|
|
@@ -1529,6 +1523,9 @@
|
|
|
1529
1523
|
"gemini-2.5-pro-preview-06-05": {
|
|
1530
1524
|
"description": "Gemini 2.5 Pro Önizlemesi, Google'ın en gelişmiş düşünce modelidir; kodlama, matematik ve STEM alanlarındaki karmaşık problemleri çözebilir ve uzun bağlam kullanarak büyük veri setleri, kod kütüphaneleri ve belgeleri analiz edebilir."
|
|
1531
1525
|
},
|
|
1526
|
+
"gemini-3-pro-preview": {
|
|
1527
|
+
"description": "Gemini 3 Pro, Google'ın en akıllı modeli olup, en son teknoloji çıkarım ve çok modlu anlama yeteneklerinin yanı sıra güçlü aracı ve bağlam kodlama özelliklerine sahiptir."
|
|
1528
|
+
},
|
|
1532
1529
|
"gemini-flash-latest": {
|
|
1533
1530
|
"description": "Gemini Flash'ın en son sürümü"
|
|
1534
1531
|
},
|
package/locales/vi-VN/chat.json
CHANGED
|
@@ -65,6 +65,9 @@
|
|
|
65
65
|
"thinking": {
|
|
66
66
|
"title": "Công tắc suy nghĩ sâu"
|
|
67
67
|
},
|
|
68
|
+
"thinkingLevel": {
|
|
69
|
+
"title": "Mức độ tư duy"
|
|
70
|
+
},
|
|
68
71
|
"title": "Chức năng mở rộng mô hình",
|
|
69
72
|
"urlContext": {
|
|
70
73
|
"desc": "Bật tính năng này sẽ tự động phân tích liên kết trang web để lấy nội dung ngữ cảnh thực tế của trang web",
|
|
@@ -396,6 +399,7 @@
|
|
|
396
399
|
"rejectReasonPlaceholder": "Nhập lý do từ chối sẽ giúp Agent hiểu và cải thiện hành động sau này",
|
|
397
400
|
"rejectTitle": "Từ chối lần gọi công cụ này",
|
|
398
401
|
"rejectedWithReason": "Lần gọi công cụ này đã bị từ chối: {{reason}}",
|
|
402
|
+
"toolAbort": "Lần gọi công cụ này đã bị người dùng hủy",
|
|
399
403
|
"toolRejected": "Lần gọi công cụ này đã bị từ chối"
|
|
400
404
|
}
|
|
401
405
|
},
|
|
@@ -1481,9 +1481,6 @@
|
|
|
1481
1481
|
"gemini-2.0-flash-lite-001": {
|
|
1482
1482
|
"description": "Biến thể mô hình Gemini 2.0 Flash được tối ưu hóa cho hiệu quả chi phí và độ trễ thấp."
|
|
1483
1483
|
},
|
|
1484
|
-
"gemini-2.0-flash-preview-image-generation": {
|
|
1485
|
-
"description": "Mô hình xem trước Gemini 2.0 Flash, hỗ trợ tạo hình ảnh"
|
|
1486
|
-
},
|
|
1487
1484
|
"gemini-2.5-flash": {
|
|
1488
1485
|
"description": "Gemini 2.5 Flash là mô hình có hiệu suất chi phí tốt nhất của Google, cung cấp đầy đủ các chức năng."
|
|
1489
1486
|
},
|
|
@@ -1511,9 +1508,6 @@
|
|
|
1511
1508
|
"gemini-2.5-flash-preview-04-17": {
|
|
1512
1509
|
"description": "Gemini 2.5 Flash Preview là mô hình có giá trị tốt nhất của Google, cung cấp đầy đủ các tính năng."
|
|
1513
1510
|
},
|
|
1514
|
-
"gemini-2.5-flash-preview-05-20": {
|
|
1515
|
-
"description": "Gemini 2.5 Flash Preview là mô hình có hiệu suất chi phí tốt nhất của Google, cung cấp các tính năng toàn diện."
|
|
1516
|
-
},
|
|
1517
1511
|
"gemini-2.5-flash-preview-09-2025": {
|
|
1518
1512
|
"description": "Phiên bản xem trước (25 tháng 9 năm 2025) của Gemini 2.5 Flash"
|
|
1519
1513
|
},
|
|
@@ -1529,6 +1523,9 @@
|
|
|
1529
1523
|
"gemini-2.5-pro-preview-06-05": {
|
|
1530
1524
|
"description": "Gemini 2.5 Pro Preview là mô hình tư duy tiên tiến nhất của Google, có khả năng suy luận các vấn đề phức tạp trong lĩnh vực mã nguồn, toán học và STEM, cũng như phân tích dữ liệu lớn, kho mã và tài liệu với ngữ cảnh dài."
|
|
1531
1525
|
},
|
|
1526
|
+
"gemini-3-pro-preview": {
|
|
1527
|
+
"description": "Gemini 3 Pro là mô hình thông minh nhất của Google, với khả năng suy luận tiên tiến hàng đầu và hiểu đa phương thức, cùng với các tính năng đại lý mạnh mẽ và mã hóa ngữ cảnh vượt trội."
|
|
1528
|
+
},
|
|
1532
1529
|
"gemini-flash-latest": {
|
|
1533
1530
|
"description": "Phiên bản mới nhất của Gemini Flash"
|
|
1534
1531
|
},
|
package/locales/zh-CN/chat.json
CHANGED
|
@@ -65,6 +65,9 @@
|
|
|
65
65
|
"thinking": {
|
|
66
66
|
"title": "深度思考开关"
|
|
67
67
|
},
|
|
68
|
+
"thinkingLevel": {
|
|
69
|
+
"title": "思考水平"
|
|
70
|
+
},
|
|
68
71
|
"title": "模型扩展功能",
|
|
69
72
|
"urlContext": {
|
|
70
73
|
"desc": "开启后将自动解析网页链接,以获取实际网页上下文内容",
|
|
@@ -396,6 +399,7 @@
|
|
|
396
399
|
"rejectReasonPlaceholder": "输入拒绝原因将帮助 Agent 理解并优化后续行动",
|
|
397
400
|
"rejectTitle": "拒绝本次工具调用",
|
|
398
401
|
"rejectedWithReason": "本次工具调用被主动拒绝:{{reason}}",
|
|
402
|
+
"toolAbort": "本次工具调用被用户取消",
|
|
399
403
|
"toolRejected": "本次工具调用被主动拒绝"
|
|
400
404
|
}
|
|
401
405
|
},
|
|
@@ -1481,9 +1481,6 @@
|
|
|
1481
1481
|
"gemini-2.0-flash-lite-001": {
|
|
1482
1482
|
"description": "Gemini 2.0 Flash 模型变体,针对成本效益和低延迟等目标进行了优化。"
|
|
1483
1483
|
},
|
|
1484
|
-
"gemini-2.0-flash-preview-image-generation": {
|
|
1485
|
-
"description": "Gemini 2.0 Flash 预览模型,支持图像生成"
|
|
1486
|
-
},
|
|
1487
1484
|
"gemini-2.5-flash": {
|
|
1488
1485
|
"description": "Gemini 2.5 Flash 是 Google 性价比最高的模型,提供全面的功能。"
|
|
1489
1486
|
},
|
|
@@ -1511,9 +1508,6 @@
|
|
|
1511
1508
|
"gemini-2.5-flash-preview-04-17": {
|
|
1512
1509
|
"description": "Gemini 2.5 Flash Preview 是 Google 性价比最高的模型,提供全面的功能。"
|
|
1513
1510
|
},
|
|
1514
|
-
"gemini-2.5-flash-preview-05-20": {
|
|
1515
|
-
"description": "Gemini 2.5 Flash Preview 是 Google 性价比最高的模型,提供全面的功能。"
|
|
1516
|
-
},
|
|
1517
1511
|
"gemini-2.5-flash-preview-09-2025": {
|
|
1518
1512
|
"description": "Preview release (Septempber 25th, 2025) of Gemini 2.5 Flash"
|
|
1519
1513
|
},
|
|
@@ -1529,6 +1523,9 @@
|
|
|
1529
1523
|
"gemini-2.5-pro-preview-06-05": {
|
|
1530
1524
|
"description": "Gemini 2.5 Pro Preview 是 Google 最先进的思维模型,能够对代码、数学和STEM领域的复杂问题进行推理,以及使用长上下文分析大型数据集、代码库和文档。"
|
|
1531
1525
|
},
|
|
1526
|
+
"gemini-3-pro-preview": {
|
|
1527
|
+
"description": "Gemini 3 Pro 是 Google 最智能的模型,具有 SOTA 推理和多模式理解,以及强大的代理和氛围编码功能。"
|
|
1528
|
+
},
|
|
1532
1529
|
"gemini-flash-latest": {
|
|
1533
1530
|
"description": "Latest release of Gemini Flash"
|
|
1534
1531
|
},
|
package/locales/zh-TW/chat.json
CHANGED
|
@@ -65,6 +65,9 @@
|
|
|
65
65
|
"thinking": {
|
|
66
66
|
"title": "深度思考開關"
|
|
67
67
|
},
|
|
68
|
+
"thinkingLevel": {
|
|
69
|
+
"title": "思考層級"
|
|
70
|
+
},
|
|
68
71
|
"title": "模型擴展功能",
|
|
69
72
|
"urlContext": {
|
|
70
73
|
"desc": "開啟後將自動解析網頁連結,以取得實際網頁上下文內容",
|
|
@@ -396,6 +399,7 @@
|
|
|
396
399
|
"rejectReasonPlaceholder": "輸入拒絕原因將幫助 Agent 理解並優化後續行動",
|
|
397
400
|
"rejectTitle": "拒絕本次工具調用",
|
|
398
401
|
"rejectedWithReason": "本次工具調用被主動拒絕:{{reason}}",
|
|
402
|
+
"toolAbort": "本次工具呼叫已被使用者取消",
|
|
399
403
|
"toolRejected": "本次工具調用被主動拒絕"
|
|
400
404
|
}
|
|
401
405
|
},
|
|
@@ -1481,9 +1481,6 @@
|
|
|
1481
1481
|
"gemini-2.0-flash-lite-001": {
|
|
1482
1482
|
"description": "Gemini 2.0 Flash 模型變體,針對成本效益和低延遲等目標進行了優化。"
|
|
1483
1483
|
},
|
|
1484
|
-
"gemini-2.0-flash-preview-image-generation": {
|
|
1485
|
-
"description": "Gemini 2.0 Flash 預覽模型,支持圖像生成"
|
|
1486
|
-
},
|
|
1487
1484
|
"gemini-2.5-flash": {
|
|
1488
1485
|
"description": "Gemini 2.5 Flash 是 Google 性價比最高的模型,提供全面的功能。"
|
|
1489
1486
|
},
|
|
@@ -1511,9 +1508,6 @@
|
|
|
1511
1508
|
"gemini-2.5-flash-preview-04-17": {
|
|
1512
1509
|
"description": "Gemini 2.5 Flash Preview 是 Google 性價比最高的模型,提供全面的功能。"
|
|
1513
1510
|
},
|
|
1514
|
-
"gemini-2.5-flash-preview-05-20": {
|
|
1515
|
-
"description": "Gemini 2.5 Flash Preview 是 Google 性價比最高的模型,提供全面的功能。"
|
|
1516
|
-
},
|
|
1517
1511
|
"gemini-2.5-flash-preview-09-2025": {
|
|
1518
1512
|
"description": "預覽版本(2025年9月25日)之 Gemini 2.5 Flash"
|
|
1519
1513
|
},
|
|
@@ -1529,6 +1523,9 @@
|
|
|
1529
1523
|
"gemini-2.5-pro-preview-06-05": {
|
|
1530
1524
|
"description": "Gemini 2.5 Pro Preview 是 Google 最先進的思維模型,能夠對程式碼、數學和STEM領域的複雜問題進行推理,以及使用長上下文分析大型資料集、程式碼庫和文件。"
|
|
1531
1525
|
},
|
|
1526
|
+
"gemini-3-pro-preview": {
|
|
1527
|
+
"description": "Gemini 3 Pro 是 Google 最智慧的模型,具備最先進的推理與多模態理解能力,以及強大的代理與情境編碼功能。"
|
|
1528
|
+
},
|
|
1532
1529
|
"gemini-flash-latest": {
|
|
1533
1530
|
"description": "Gemini Flash 最新版本"
|
|
1534
1531
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobehub/lobehub",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.90",
|
|
4
4
|
"description": "LobeHub - an open-source,comprehensive AI Agent 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",
|
|
@@ -77,6 +77,7 @@ export const ModelPerformanceSchema = z.object({
|
|
|
77
77
|
|
|
78
78
|
export const MessageMetadataSchema = ModelUsageSchema.merge(ModelPerformanceSchema).extend({
|
|
79
79
|
collapsed: z.boolean().optional(),
|
|
80
|
+
inspectExpanded: z.boolean().optional(),
|
|
80
81
|
});
|
|
81
82
|
|
|
82
83
|
export interface ModelUsage extends ModelTokensUsage {
|
|
@@ -114,6 +115,11 @@ export interface MessageMetadata extends ModelUsage, ModelPerformance {
|
|
|
114
115
|
* true: collapsed, false/undefined: expanded
|
|
115
116
|
*/
|
|
116
117
|
collapsed?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Tool inspect expanded state
|
|
120
|
+
* true: expanded, false/undefined: collapsed
|
|
121
|
+
*/
|
|
122
|
+
inspectExpanded?: boolean;
|
|
117
123
|
compare?: boolean;
|
|
118
124
|
usage?: ModelUsage;
|
|
119
125
|
performance?: ModelPerformance;
|
|
@@ -39,3 +39,7 @@ export const lastMonth = () => monthsAgo(1).endOf('month');
|
|
|
39
39
|
export function getYYYYmmddHHMMss(date: Date) {
|
|
40
40
|
return dayjs(date).format('YYYYMMDD_HHmmss');
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
export const isNewReleaseDate = (date: string, days = 14) => {
|
|
44
|
+
return dayjs().diff(dayjs(date), 'day') < days;
|
|
45
|
+
};
|
|
@@ -21,12 +21,11 @@ import { createErrorResponse } from '@/utils/errorResponse';
|
|
|
21
21
|
import { checkAuthMethod } from './utils';
|
|
22
22
|
|
|
23
23
|
type CreateRuntime = (jwtPayload: ClientSecretPayload) => ModelRuntime;
|
|
24
|
-
type RequestOptions = { createRuntime?: CreateRuntime; params: Promise<{ provider
|
|
24
|
+
type RequestOptions = { createRuntime?: CreateRuntime; params: Promise<{ provider?: string }> };
|
|
25
25
|
|
|
26
26
|
export type RequestHandler = (
|
|
27
27
|
req: Request,
|
|
28
28
|
options: RequestOptions & {
|
|
29
|
-
createRuntime?: CreateRuntime;
|
|
30
29
|
jwtPayload: ClientSecretPayload;
|
|
31
30
|
},
|
|
32
31
|
) => Promise<Response>;
|
|
@@ -14,7 +14,7 @@ import { getTracePayload } from '@/utils/trace';
|
|
|
14
14
|
export const maxDuration = 300;
|
|
15
15
|
|
|
16
16
|
export const POST = checkAuth(async (req: Request, { params, jwtPayload, createRuntime }) => {
|
|
17
|
-
const
|
|
17
|
+
const provider = (await params)!.provider!;
|
|
18
18
|
|
|
19
19
|
try {
|
|
20
20
|
// ============ 1. init chat model ============ //
|
|
@@ -6,7 +6,7 @@ import { initModelRuntimeWithUserPayload } from '@/server/modules/ModelRuntime';
|
|
|
6
6
|
import { createErrorResponse } from '@/utils/errorResponse';
|
|
7
7
|
|
|
8
8
|
export const POST = checkAuth(async (req, { params, jwtPayload }) => {
|
|
9
|
-
const
|
|
9
|
+
const provider = (await params)!.provider!;
|
|
10
10
|
|
|
11
11
|
try {
|
|
12
12
|
const agentRuntime = await initModelRuntimeWithUserPayload(provider, jwtPayload);
|
|
@@ -10,7 +10,7 @@ import { createErrorResponse } from '@/utils/errorResponse';
|
|
|
10
10
|
const noNeedAPIKey = (provider: string) => [ModelProvider.OpenRouter].includes(provider as any);
|
|
11
11
|
|
|
12
12
|
export const GET = checkAuth(async (req, { params, jwtPayload }) => {
|
|
13
|
-
const
|
|
13
|
+
const provider = (await params)!.provider!;
|
|
14
14
|
|
|
15
15
|
try {
|
|
16
16
|
const hasDefaultApiKey = jwtPayload.apiKey || 'dont-need-api-key-for-model-list';
|
|
@@ -45,7 +45,7 @@ export const preferredRegion = [
|
|
|
45
45
|
// );
|
|
46
46
|
|
|
47
47
|
export const POST = checkAuth(async (req: Request, { params, jwtPayload }) => {
|
|
48
|
-
const
|
|
48
|
+
const provider = (await params)!.provider!;
|
|
49
49
|
|
|
50
50
|
try {
|
|
51
51
|
// ============ 1. init chat model ============ //
|
|
@@ -4,7 +4,7 @@ import { App, Switch } from 'antd';
|
|
|
4
4
|
import { createStyles, useTheme } from 'antd-style';
|
|
5
5
|
import { LucidePencil, TrashIcon } from 'lucide-react';
|
|
6
6
|
import { AiModelSourceEnum, AiProviderModelListItem } from 'model-bank';
|
|
7
|
-
import { memo, use, useState } from 'react';
|
|
7
|
+
import React, { memo, use, useState } from 'react';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
9
|
import { Flexbox } from 'react-layout-kit';
|
|
10
10
|
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
getTextInputUnitRate,
|
|
18
18
|
getTextOutputUnitRate,
|
|
19
19
|
} from '@/utils/pricing';
|
|
20
|
+
import { isNewReleaseDate } from '@/utils/time';
|
|
20
21
|
|
|
21
22
|
import ModelConfigModal from './ModelConfigModal';
|
|
22
23
|
import { ProviderSettingsContext } from './ProviderSettingsContext';
|
|
@@ -162,6 +163,70 @@ const ModelItem = memo<ModelItemProps>(
|
|
|
162
163
|
|
|
163
164
|
const isMobile = useIsMobile();
|
|
164
165
|
|
|
166
|
+
const NewTag =
|
|
167
|
+
releasedAt && isNewReleaseDate(releasedAt) ? (
|
|
168
|
+
<Tag color="blue" style={{ marginLeft: 8 }}>
|
|
169
|
+
{t('new', { ns: 'common' })}
|
|
170
|
+
</Tag>
|
|
171
|
+
) : null;
|
|
172
|
+
|
|
173
|
+
const ModelIdTag = (
|
|
174
|
+
<Tag onClick={copyModelId} style={{ cursor: 'pointer', marginRight: 0 }}>
|
|
175
|
+
{id}
|
|
176
|
+
</Tag>
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
const EnableSwitch = (
|
|
180
|
+
<Switch
|
|
181
|
+
checked={checked}
|
|
182
|
+
loading={isModelLoading}
|
|
183
|
+
onChange={async (e) => {
|
|
184
|
+
setChecked(e);
|
|
185
|
+
await toggleModelEnabled({ enabled: e, id, source, type });
|
|
186
|
+
}}
|
|
187
|
+
size={'small'}
|
|
188
|
+
/>
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
const Actions =
|
|
192
|
+
modelEditable &&
|
|
193
|
+
((style?: React.CSSProperties) => (
|
|
194
|
+
<Flexbox className={styles.config} horizontal style={style}>
|
|
195
|
+
<ActionIcon
|
|
196
|
+
icon={LucidePencil}
|
|
197
|
+
onClick={(e) => {
|
|
198
|
+
e.stopPropagation();
|
|
199
|
+
setShowConfig(true);
|
|
200
|
+
}}
|
|
201
|
+
size={'small'}
|
|
202
|
+
title={t('providerModels.item.config')}
|
|
203
|
+
/>
|
|
204
|
+
{source !== AiModelSourceEnum.Builtin && (
|
|
205
|
+
<ActionIcon
|
|
206
|
+
icon={TrashIcon}
|
|
207
|
+
onClick={() => {
|
|
208
|
+
modal.confirm({
|
|
209
|
+
centered: true,
|
|
210
|
+
okButtonProps: {
|
|
211
|
+
danger: true,
|
|
212
|
+
type: 'primary',
|
|
213
|
+
},
|
|
214
|
+
onOk: async () => {
|
|
215
|
+
await removeAiModel(id, activeAiProvider!);
|
|
216
|
+
message.success(t('providerModels.item.delete.success'));
|
|
217
|
+
},
|
|
218
|
+
title: t('providerModels.item.delete.confirm', {
|
|
219
|
+
displayName: displayName || id,
|
|
220
|
+
}),
|
|
221
|
+
});
|
|
222
|
+
}}
|
|
223
|
+
size={'small'}
|
|
224
|
+
title={t('providerModels.item.delete.title')}
|
|
225
|
+
/>
|
|
226
|
+
)}
|
|
227
|
+
</Flexbox>
|
|
228
|
+
));
|
|
229
|
+
|
|
165
230
|
const dom = isMobile ? (
|
|
166
231
|
<Flexbox
|
|
167
232
|
align={'center'}
|
|
@@ -195,58 +260,14 @@ const ModelItem = memo<ModelItemProps>(
|
|
|
195
260
|
</Flexbox>
|
|
196
261
|
</Flexbox>
|
|
197
262
|
<div>
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
</Tag>
|
|
263
|
+
{ModelIdTag}
|
|
264
|
+
{NewTag}
|
|
201
265
|
</div>
|
|
202
266
|
</Flexbox>
|
|
203
267
|
</Flexbox>
|
|
204
268
|
<Flexbox align={'center'} gap={4} horizontal>
|
|
205
|
-
{
|
|
206
|
-
|
|
207
|
-
<ActionIcon
|
|
208
|
-
icon={LucidePencil}
|
|
209
|
-
onClick={(e) => {
|
|
210
|
-
e.stopPropagation();
|
|
211
|
-
setShowConfig(true);
|
|
212
|
-
}}
|
|
213
|
-
size={'small'}
|
|
214
|
-
title={t('providerModels.item.config')}
|
|
215
|
-
/>
|
|
216
|
-
{source !== AiModelSourceEnum.Builtin && (
|
|
217
|
-
<ActionIcon
|
|
218
|
-
icon={TrashIcon}
|
|
219
|
-
onClick={() => {
|
|
220
|
-
modal.confirm({
|
|
221
|
-
centered: true,
|
|
222
|
-
okButtonProps: {
|
|
223
|
-
danger: true,
|
|
224
|
-
type: 'primary',
|
|
225
|
-
},
|
|
226
|
-
onOk: async () => {
|
|
227
|
-
await removeAiModel(id, activeAiProvider!);
|
|
228
|
-
message.success(t('providerModels.item.delete.success'));
|
|
229
|
-
},
|
|
230
|
-
title: t('providerModels.item.delete.confirm', {
|
|
231
|
-
displayName: displayName || id,
|
|
232
|
-
}),
|
|
233
|
-
});
|
|
234
|
-
}}
|
|
235
|
-
size={'small'}
|
|
236
|
-
title={t('providerModels.item.delete.title')}
|
|
237
|
-
/>
|
|
238
|
-
)}
|
|
239
|
-
</Flexbox>
|
|
240
|
-
)}
|
|
241
|
-
<Switch
|
|
242
|
-
checked={checked}
|
|
243
|
-
loading={isModelLoading}
|
|
244
|
-
onChange={async (e) => {
|
|
245
|
-
setChecked(e);
|
|
246
|
-
await toggleModelEnabled({ enabled: e, id, source, type });
|
|
247
|
-
}}
|
|
248
|
-
size={'small'}
|
|
249
|
-
/>
|
|
269
|
+
{Actions && Actions({ opacity: 1 })}
|
|
270
|
+
{EnableSwitch}
|
|
250
271
|
</Flexbox>
|
|
251
272
|
</Flexbox>
|
|
252
273
|
) : (
|
|
@@ -264,45 +285,9 @@ const ModelItem = memo<ModelItemProps>(
|
|
|
264
285
|
<Flexbox flex={1} gap={2} style={{ minWidth: 0 }}>
|
|
265
286
|
<Flexbox align={'center'} gap={8} horizontal>
|
|
266
287
|
{displayName || id}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
{modelEditable && (
|
|
271
|
-
<Flexbox className={styles.config} horizontal>
|
|
272
|
-
<ActionIcon
|
|
273
|
-
icon={LucidePencil}
|
|
274
|
-
onClick={(e) => {
|
|
275
|
-
e.stopPropagation();
|
|
276
|
-
setShowConfig(true);
|
|
277
|
-
}}
|
|
278
|
-
size={'small'}
|
|
279
|
-
title={t('providerModels.item.config')}
|
|
280
|
-
/>
|
|
281
|
-
{source !== AiModelSourceEnum.Builtin && (
|
|
282
|
-
<ActionIcon
|
|
283
|
-
icon={TrashIcon}
|
|
284
|
-
onClick={() => {
|
|
285
|
-
modal.confirm({
|
|
286
|
-
centered: true,
|
|
287
|
-
okButtonProps: {
|
|
288
|
-
danger: true,
|
|
289
|
-
type: 'primary',
|
|
290
|
-
},
|
|
291
|
-
onOk: async () => {
|
|
292
|
-
await removeAiModel(id, activeAiProvider!);
|
|
293
|
-
message.success(t('providerModels.item.delete.success'));
|
|
294
|
-
},
|
|
295
|
-
title: t('providerModels.item.delete.confirm', {
|
|
296
|
-
displayName: displayName || id,
|
|
297
|
-
}),
|
|
298
|
-
});
|
|
299
|
-
}}
|
|
300
|
-
size={'small'}
|
|
301
|
-
title={t('providerModels.item.delete.title')}
|
|
302
|
-
/>
|
|
303
|
-
)}
|
|
304
|
-
</Flexbox>
|
|
305
|
-
)}
|
|
288
|
+
{ModelIdTag}
|
|
289
|
+
{NewTag}
|
|
290
|
+
{Actions && Actions()}
|
|
306
291
|
</Flexbox>
|
|
307
292
|
<Flexbox align={'baseline'} gap={8} horizontal>
|
|
308
293
|
{content.length > 0 && (
|
|
@@ -329,15 +314,7 @@ const ModelItem = memo<ModelItemProps>(
|
|
|
329
314
|
{/* <ActionIcon icon={Recycle} style={{ color: theme.colorWarning }} />*/}
|
|
330
315
|
{/* </Tooltip>*/}
|
|
331
316
|
{/*)}*/}
|
|
332
|
-
|
|
333
|
-
checked={checked}
|
|
334
|
-
loading={isModelLoading}
|
|
335
|
-
onChange={async (e) => {
|
|
336
|
-
setChecked(e);
|
|
337
|
-
await toggleModelEnabled({ enabled: e, id, source, type });
|
|
338
|
-
}}
|
|
339
|
-
size={'small'}
|
|
340
|
-
/>
|
|
317
|
+
{EnableSwitch}
|
|
341
318
|
</Flexbox>
|
|
342
319
|
</Flexbox>
|
|
343
320
|
);
|