@lobehub/chat 1.36.19 → 1.36.21

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.
Files changed (53) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/changelog/v1.json +14 -0
  3. package/locales/ar/models.json +3 -0
  4. package/locales/ar/welcome.json +0 -5
  5. package/locales/bg-BG/models.json +3 -0
  6. package/locales/bg-BG/welcome.json +0 -5
  7. package/locales/de-DE/models.json +3 -0
  8. package/locales/de-DE/welcome.json +0 -5
  9. package/locales/en-US/models.json +3 -0
  10. package/locales/en-US/welcome.json +0 -5
  11. package/locales/es-ES/models.json +3 -0
  12. package/locales/es-ES/welcome.json +0 -5
  13. package/locales/fa-IR/models.json +3 -0
  14. package/locales/fa-IR/welcome.json +0 -5
  15. package/locales/fr-FR/models.json +3 -0
  16. package/locales/fr-FR/welcome.json +0 -5
  17. package/locales/it-IT/models.json +3 -0
  18. package/locales/it-IT/welcome.json +0 -5
  19. package/locales/ja-JP/models.json +3 -0
  20. package/locales/ja-JP/welcome.json +0 -5
  21. package/locales/ko-KR/models.json +3 -0
  22. package/locales/ko-KR/welcome.json +0 -5
  23. package/locales/nl-NL/models.json +3 -0
  24. package/locales/nl-NL/welcome.json +0 -5
  25. package/locales/pl-PL/models.json +3 -0
  26. package/locales/pl-PL/welcome.json +0 -5
  27. package/locales/pt-BR/models.json +3 -0
  28. package/locales/pt-BR/welcome.json +0 -5
  29. package/locales/ru-RU/models.json +3 -0
  30. package/locales/ru-RU/welcome.json +0 -5
  31. package/locales/tr-TR/models.json +3 -0
  32. package/locales/tr-TR/welcome.json +0 -5
  33. package/locales/vi-VN/models.json +3 -0
  34. package/locales/vi-VN/welcome.json +0 -5
  35. package/locales/zh-CN/models.json +3 -0
  36. package/locales/zh-CN/welcome.json +0 -5
  37. package/locales/zh-TW/models.json +3 -0
  38. package/locales/zh-TW/welcome.json +0 -5
  39. package/package.json +1 -1
  40. package/src/app/loading/Redirect.tsx +4 -9
  41. package/src/components/Branding/index.ts +0 -1
  42. package/src/locales/default/welcome.ts +0 -5
  43. package/src/server/sitemap.ts +0 -1
  44. package/src/app/(main)/welcome/_layout/Desktop.tsx +0 -42
  45. package/src/app/(main)/welcome/_layout/Mobile.tsx +0 -12
  46. package/src/app/(main)/welcome/features/Actions.test.tsx +0 -77
  47. package/src/app/(main)/welcome/features/Actions.tsx +0 -44
  48. package/src/app/(main)/welcome/features/Hero.tsx +0 -65
  49. package/src/app/(main)/welcome/layout.tsx +0 -10
  50. package/src/app/(main)/welcome/page.tsx +0 -42
  51. package/src/components/Branding/WelcomeLogo/Custom.tsx +0 -41
  52. package/src/components/Branding/WelcomeLogo/LobeChat.tsx +0 -32
  53. package/src/components/Branding/WelcomeLogo/index.tsx +0 -16
package/CHANGELOG.md CHANGED
@@ -2,6 +2,48 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.36.21](https://github.com/lobehub/lobe-chat/compare/v1.36.20...v1.36.21)
6
+
7
+ <sup>Released on **2024-12-13**</sup>
8
+
9
+ <br/>
10
+
11
+ <details>
12
+ <summary><kbd>Improvements and Fixes</kbd></summary>
13
+
14
+ </details>
15
+
16
+ <div align="right">
17
+
18
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
19
+
20
+ </div>
21
+
22
+ ### [Version 1.36.20](https://github.com/lobehub/lobe-chat/compare/v1.36.19...v1.36.20)
23
+
24
+ <sup>Released on **2024-12-13**</sup>
25
+
26
+ #### 💄 Styles
27
+
28
+ - **misc**: Update locale.
29
+
30
+ <br/>
31
+
32
+ <details>
33
+ <summary><kbd>Improvements and Fixes</kbd></summary>
34
+
35
+ #### Styles
36
+
37
+ - **misc**: Update locale, closes [#5008](https://github.com/lobehub/lobe-chat/issues/5008) ([6d42d30](https://github.com/lobehub/lobe-chat/commit/6d42d30))
38
+
39
+ </details>
40
+
41
+ <div align="right">
42
+
43
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
44
+
45
+ </div>
46
+
5
47
  ### [Version 1.36.19](https://github.com/lobehub/lobe-chat/compare/v1.36.18...v1.36.19)
6
48
 
7
49
  <sup>Released on **2024-12-13**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,18 @@
1
1
  [
2
+ {
3
+ "children": {},
4
+ "date": "2024-12-13",
5
+ "version": "1.36.21"
6
+ },
7
+ {
8
+ "children": {
9
+ "improvements": [
10
+ "Update locale."
11
+ ]
12
+ },
13
+ "date": "2024-12-13",
14
+ "version": "1.36.20"
15
+ },
2
16
  {
3
17
  "children": {
4
18
  "fixes": [
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro يدعم ما يصل إلى 2 مليون توكن، وهو الخيار المثالي للنماذج المتوسطة الحجم متعددة الوسائط، مناسب لدعم المهام المعقدة من جوانب متعددة."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "جيميناي 2.0 فلاش إكسب هو أحدث نموذج ذكاء اصطناعي متعدد الوسائط من جوجل، يتمتع بميزات الجيل القادم، وسرعة فائقة، واستدعاء أدوات أصلية، وتوليد متعدد الوسائط."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "جيمني إكسب 1114 هو أحدث نموذج ذكاء اصطناعي متعدد الوسائط تجريبي من Google، يتميز بقدرة معالجة سريعة، ويدعم إدخالات النصوص والصور والفيديو، مما يجعله مناسبًا للتوسع الفعال في مهام متعددة."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "استيراد التكوين",
4
- "market": "تسوق في السوق",
5
- "start": "ابدأ الآن"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "تغيير",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro поддържа до 2 милиона токена и е идеален избор за среден многомодален модел, подходящ за многостранна поддръжка на сложни задачи."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp е най-новият експериментален мултимодален AI модел на Google, предлагащ следващо поколение функции, изключителна скорост, нативно извикване на инструменти и мултимодално генериране."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 е най-новият експериментален многомодален AI модел на Google, който предлага бърза обработка и поддържа вход от текст, изображения и видео, подходящ за ефективно разширение на множество задачи."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Импортирай конфигурация",
4
- "market": "Пазар",
5
- "start": "Започни сега"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Смени",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro unterstützt bis zu 2 Millionen Tokens und ist die ideale Wahl für mittelgroße multimodale Modelle, die umfassende Unterstützung für komplexe Aufgaben bieten."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp ist Googles neuestes experimentelles multimodales KI-Modell mit Next-Gen-Funktionen, herausragender Geschwindigkeit, nativer Werkzeuganwendung und multimodaler Generierung."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 ist Googles neuestes experimentelles multimodales KI-Modell, das über eine schnelle Verarbeitungskapazität verfügt und Texte, Bilder und Videoeingaben unterstützt, um eine effiziente Skalierung für verschiedene Aufgaben zu ermöglichen."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Konfiguration importieren",
4
- "market": "Markt durchstöbern",
5
- "start": "Jetzt starten"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Ersetzen",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro supports up to 2 million tokens, making it an ideal choice for medium-sized multimodal models, providing multifaceted support for complex tasks."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp is Google's latest experimental multimodal AI model, featuring next-generation capabilities, exceptional speed, native tool integration, and multimodal generation."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 is Google's latest experimental multimodal AI model, featuring rapid processing capabilities and supporting text, image, and video inputs, making it suitable for efficient scaling across various tasks."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Import Configuration",
4
- "market": "Visit Market",
5
- "start": "Start Now"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Replace Batch",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro admite hasta 2 millones de tokens, siendo una opción ideal para modelos multimodales de tamaño medio, adecuados para un soporte multifacético en tareas complejas."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp es el último modelo experimental de inteligencia artificial multimodal de Google, que cuenta con características de próxima generación, velocidad superior, llamadas nativas a herramientas y generación multimodal."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 es el modelo de IA multimodal experimental más reciente de Google, que cuenta con una capacidad de procesamiento rápido y admite entradas de texto, imagen y video, adecuado para una amplia gama de tareas de manera eficiente."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Importar configuración",
4
- "market": "Explorar el mercado",
5
- "start": "Comenzar ahora"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Cambiar grupo",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro از حداکثر ۲ میلیون توکن پشتیبانی می‌کند و انتخابی ایده‌آل برای مدل‌های چندوجهی متوسط است که برای پشتیبانی از وظایف پیچیده مناسب می‌باشد."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp یک مدل هوش مصنوعی چندمدلی آزمایشی از گوگل است که دارای ویژگی‌های نسل بعدی، سرعت فوق‌العاده، فراخوانی ابزارهای بومی و تولید چندمدلی است."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 جدیدترین مدل AI چند وجهی تجربی Google است که دارای قابلیت پردازش سریع می‌باشد و از ورودی‌های متنی، تصویری و ویدیویی پشتیبانی می‌کند و برای گسترش مؤثر در چندین وظیفه مناسب است."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "وارد کردن تنظیمات",
4
- "market": "بازدید از بازار",
5
- "start": "شروع کن"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "تغییر دسته",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro prend en charge jusqu'à 2 millions de tokens, ce qui en fait un choix idéal pour un modèle multimodal de taille moyenne, adapté à un soutien polyvalent pour des tâches complexes."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp est le dernier modèle d'IA multimodal expérimental de Google, avec des caractéristiques de nouvelle génération, une vitesse exceptionnelle, des appels d'outils natifs et une génération multimodale."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 est le dernier modèle d'IA multimodale expérimental de Google, offrant une capacité de traitement rapide, prenant en charge les entrées de texte, d'image et de vidéo, et permettant une extension efficace pour une variété de tâches."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Importer la configuration",
4
- "market": "Parcourir le marché",
5
- "start": "Démarrer maintenant"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Remplacer",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro supporta fino a 2 milioni di token, è la scelta ideale per modelli multimodali di medie dimensioni, adatta a un supporto multifunzionale per compiti complessi."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp è il nuovo modello AI multimodale sperimentale di Google, dotato di funzionalità di nuova generazione, velocità straordinaria, chiamate di strumenti native e generazione multimodale."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 è il modello AI multimodale sperimentale più recente di Google, dotato di capacità di elaborazione rapida, supporta input testuali, visivi e video, ed è adatto per un'ampia gamma di compiti con un'efficiente scalabilità."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Importa configurazione",
4
- "market": "Esplora il mercato",
5
- "start": "Inizia subito"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Cambia gruppo",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Proは、最大200万トークンをサポートする中型マルチモーダルモデルの理想的な選択肢であり、複雑なタスクに対する多面的なサポートを提供します。"
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp は、Google の最新の実験的なマルチモーダル AI モデルで、次世代の機能、卓越した速度、ネイティブツールの呼び出し、マルチモーダル生成を備えています。"
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114は、Googleの最新の実験的なマルチモーダルAIモデルで、迅速な処理能力を備え、テキスト、画像、動画の入力をサポートし、様々なタスクに効率的に対応できます。"
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "設定をインポート",
4
- "market": "市場を見る",
5
- "start": "すぐに開始"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "別のグループ",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro는 최대 200만 개의 토큰을 지원하며, 중형 다중 모달 모델의 이상적인 선택으로 복잡한 작업에 대한 다각적인 지원을 제공합니다."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp는 Google의 최신 실험적 다중 모달 AI 모델로, 차세대 기능, 뛰어난 속도, 네이티브 도구 호출 및 다중 모달 생성을 갖추고 있습니다."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114는 Google의 최신 실험적 다중 모달 AI 모델로, 빠른 처리 능력을 갖추고 있으며, 텍스트, 이미지 및 비디오 입력을 지원하여 다양한 작업에 효율적으로 확장할 수 있습니다."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "구성 가져오기",
4
- "market": "시장 구경하기",
5
- "start": "지금 시작"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "다른 것으로 바꾸기",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro ondersteunt tot 2 miljoen tokens en is de ideale keuze voor middelgrote multimodale modellen, geschikt voor veelzijdige ondersteuning van complexe taken."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp is Google's nieuwste experimentele multimodale AI-model, met de volgende generatie functies, uitstekende snelheid, ingebouwde tool-aanroepen en multimodale generatie."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 is Google's nieuwste experimentele multimodale AI-model, met een snelle verwerkingscapaciteit, ondersteunt tekst-, beeld- en video-invoer, geschikt voor efficiënte schaling van diverse taken."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Importeer configuratie",
4
- "market": "Verken de markt",
5
- "start": "Nu beginnen"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Vervang een groep",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro obsługuje do 2 milionów tokenów, co czyni go idealnym wyborem dla średniej wielkości modeli multimodalnych, odpowiednim do wszechstronnej obsługi złożonych zadań."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp to najnowszy eksperymentalny model AI o wielu modalnościach od Google, który oferuje cechy nowej generacji, doskonałą prędkość, natywne wywołania narzędzi oraz generowanie multimodalne."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 to najnowszy eksperymentalny model AI o wielu modalnościach od Google, który charakteryzuje się szybkim przetwarzaniem i obsługuje wejścia tekstowe, obrazowe oraz wideo, co umożliwia wydajne rozszerzanie go na różne zadania."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Importuj konfigurację",
4
- "market": "Przeglądaj rynek",
5
- "start": "Rozpocznij teraz"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Zmień",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro suporta até 2 milhões de tokens, sendo a escolha ideal para modelos multimodais de médio porte, adequados para suporte multifacetado em tarefas complexas."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "O Gemini 2.0 Flash Exp é o mais recente modelo de IA multiodal experimental do Google, com recursos de próxima geração, velocidade extraordinária, chamadas nativas de ferramentas e geração multimodal."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "O Gemini Exp 1114 é o mais recente modelo experimental de IA multimodal da Google, com capacidade de processamento rápido, suportando entradas de texto, imagem e vídeo, adequado para a expansão eficiente de várias tarefas."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Importar configuração",
4
- "market": "Explorar o mercado",
5
- "start": "Começar agora"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Trocar",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro поддерживает до 2 миллионов токенов и является идеальным выбором для средних многомодальных моделей, обеспечивая многостороннюю поддержку для сложных задач."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp — это новейшая экспериментальная мультимодальная AI-модель от Google, обладающая функциями следующего поколения, выдающейся скоростью, нативными инструментами и мультимодальной генерацией."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 — это новейшая экспериментальная многомодальная ИИ модель от Google, обладающая высокой скоростью обработки и поддерживающая текстовые, изображенческие и видеовходы, что позволяет эффективно расширять применение для различных задач."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Импорт конфига",
4
- "market": "Посетить рынок",
5
- "start": "Начать"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Заменить",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro, 2 milyon token'a kadar destekler, orta ölçekli çok modlu modeller için ideal bir seçimdir ve karmaşık görevler için çok yönlü destek sunar."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp, Google'ın en yeni deneysel çok modlu yapay zeka modelidir. Gelecek nesil özellikleri, olağanüstü hızı, yerel araç çağrısı ve çok modlu üretim ile donatılmıştır."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114, Google'ın en son deneysel çok modlu AI modeli olup, hızlı işleme yeteneğine sahip, metin, görüntü ve video girişlerini desteklemekte ve çeşitli görevlerde verimli bir şekilde ölçeklenmektedir."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "İçe Aktar",
4
- "market": "Pazara Göz At",
5
- "start": "Başla"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Başka bir grup",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro hỗ trợ lên đến 2 triệu tokens, là lựa chọn lý tưởng cho mô hình đa phương thức trung bình, phù hợp cho hỗ trợ đa diện cho các nhiệm vụ phức tạp."
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp là mô hình AI đa phương thức thử nghiệm mới nhất của Google, có các tính năng thế hệ tiếp theo, tốc độ vượt trội, khả năng gọi công cụ nguyên bản và tạo ra đa phương thức."
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 là mô hình AI đa phương thức thử nghiệm mới nhất của Google, có khả năng xử lý nhanh, hỗ trợ đầu vào văn bản, hình ảnh và video, phù hợp với việc mở rộng hiệu quả cho nhiều nhiệm vụ."
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "Nhập Cấu Hình",
4
- "market": "Thăm Thị trường",
5
- "start": "Bắt Đầu Ngay"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "Thay đổi",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro 支持高达200万个tokens,是中型多模态模型的理想选择,适用于复杂任务的多方面支持。"
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp 是 Google 最新的实验性多模态AI模型,拥有下一代特性,卓越的速度,原生工具调用以及多模态生成。"
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 是 Google 的实验性多模态AI模型,对输出质量有一定改进。"
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "导入配置",
4
- "market": "逛逛市场",
5
- "start": "立即开始"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "换一批",
@@ -596,6 +596,9 @@
596
596
  "gemini-1.5-pro-latest": {
597
597
  "description": "Gemini 1.5 Pro 支持高達 200 萬個 tokens,是中型多模態模型的理想選擇,適用於複雜任務的多方面支持。"
598
598
  },
599
+ "gemini-2.0-flash-exp": {
600
+ "description": "Gemini 2.0 Flash Exp 是 Google 最新的實驗性多模態AI模型,擁有下一代特性,卓越的速度,原生工具調用以及多模態生成。"
601
+ },
599
602
  "gemini-exp-1114": {
600
603
  "description": "Gemini Exp 1114 是 Google 最新的實驗性多模態 AI 模型,具備快速處理能力,支持文本、影像和影片輸入,適用於多種任務的高效擴展。"
601
604
  },
@@ -1,9 +1,4 @@
1
1
  {
2
- "button": {
3
- "import": "匯入設定檔",
4
- "market": "逛逛市場",
5
- "start": "馬上開始"
6
- },
7
2
  "guide": {
8
3
  "agents": {
9
4
  "replaceBtn": "換一批",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.36.19",
3
+ "version": "1.36.21",
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",
@@ -8,12 +8,11 @@ import { authSelectors } from '@/store/user/selectors';
8
8
 
9
9
  const Redirect = memo(() => {
10
10
  const router = useRouter();
11
- const [isLogin, isLoaded, isUserStateInit, isUserHasConversation, isOnboard] = useUserStore(
11
+ const [isLogin, isLoaded, isUserStateInit, isOnboard] = useUserStore(
12
12
  (s) => [
13
13
  authSelectors.isLogin(s),
14
14
  authSelectors.isLoaded(s),
15
15
  s.isUserStateInit,
16
- s.isUserHasConversation,
17
16
  s.isOnboard,
18
17
  ],
19
18
  );
@@ -24,7 +23,7 @@ const Redirect = memo(() => {
24
23
 
25
24
  // this mean user is definitely not login
26
25
  if (!isLogin) {
27
- router.replace('/welcome');
26
+ router.replace('/chat');
28
27
  return;
29
28
  }
30
29
 
@@ -38,12 +37,8 @@ const Redirect = memo(() => {
38
37
  }
39
38
 
40
39
  // finally check the conversation status
41
- if (isUserHasConversation) {
42
- router.replace('/chat');
43
- } else {
44
- router.replace('/welcome');
45
- }
46
- }, [isUserStateInit, isLoaded, isUserHasConversation, isOnboard, isLogin]);
40
+ router.replace('/chat');
41
+ }, [isUserStateInit, isLoaded, isOnboard, isLogin]);
47
42
 
48
43
  return null;
49
44
  });
@@ -1,3 +1,2 @@
1
1
  export { OrgBrand } from './OrgBrand';
2
2
  export { ProductLogo } from './ProductLogo';
3
- export { WelcomeLogo } from './WelcomeLogo';
@@ -1,9 +1,4 @@
1
1
  export default {
2
- button: {
3
- import: '导入配置',
4
- market: '逛逛市场',
5
- start: '立即开始',
6
- },
7
2
  guide: {
8
3
  agents: {
9
4
  replaceBtn: '换一批',
@@ -201,7 +201,6 @@ export class Sitemap {
201
201
  return [
202
202
  ...this._genSitemap('/', { noLocales: true }),
203
203
  ...this._genSitemap('/chat', { noLocales: true }),
204
- ...this._genSitemap('/welcome', { noLocales: true }),
205
204
  /* ↓ cloud slot ↓ */
206
205
 
207
206
  /* ↑ cloud slot ↑ */
@@ -1,42 +0,0 @@
1
- import { GridShowcase } from '@lobehub/ui';
2
- import { PropsWithChildren } from 'react';
3
- import { Flexbox } from 'react-layout-kit';
4
-
5
- import { ORG_NAME } from '@/const/branding';
6
- import { isCustomORG } from '@/const/version';
7
- import Follow from '@/features/Follow';
8
-
9
- const COPYRIGHT = `© ${new Date().getFullYear()} ${ORG_NAME}`;
10
-
11
- const DesktopLayout = ({ children }: PropsWithChildren) => {
12
- return (
13
- <>
14
- <Flexbox
15
- align={'center'}
16
- height={'100%'}
17
- justify={'space-between'}
18
- padding={16}
19
- style={{ overflow: 'hidden', position: 'relative' }}
20
- width={'100%'}
21
- >
22
- <div />
23
- <GridShowcase
24
- innerProps={{ gap: 24 }}
25
- style={{ maxHeight: 'calc(100% - 104px)', maxWidth: 1024 }}
26
- width={'100%'}
27
- >
28
- {children}
29
- </GridShowcase>
30
- <Flexbox align={'center'} horizontal justify={'space-between'}>
31
- <span style={{ opacity: 0.5 }}>{COPYRIGHT}</span>
32
- {isCustomORG ? <div /> : <Follow />}
33
- </Flexbox>
34
- </Flexbox>
35
- {/* ↓ cloud slot ↓ */}
36
-
37
- {/* ↑ cloud slot ↑ */}
38
- </>
39
- );
40
- };
41
-
42
- export default DesktopLayout;
@@ -1,12 +0,0 @@
1
- import { PropsWithChildren } from 'react';
2
- import { Center } from 'react-layout-kit';
3
-
4
- const MobileLayout = ({ children }: PropsWithChildren) => {
5
- return (
6
- <Center gap={16} style={{ height: '100%', paddingInline: 16 }}>
7
- {children}
8
- </Center>
9
- );
10
- };
11
-
12
- export default MobileLayout;
@@ -1,77 +0,0 @@
1
- import { act, cleanup, fireEvent, render, renderHook, screen } from '@testing-library/react';
2
- import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest';
3
-
4
- import {
5
- Provider,
6
- createServerConfigStore,
7
- initServerConfigStore,
8
- } from '@/store/serverConfig/store';
9
-
10
- import Actions from './Actions';
11
-
12
- beforeAll(() => {
13
- initServerConfigStore({ featureFlags: { market: true } });
14
- });
15
-
16
- beforeEach(() => {
17
- vi.clearAllMocks();
18
- });
19
-
20
- afterEach(() => {
21
- createServerConfigStore().setState({ featureFlags: { market: true } });
22
- cleanup();
23
- });
24
-
25
- vi.mock('next/link', () => ({
26
- default: vi.fn(({ children }: { children: React.ReactNode }) => <div>{children}</div>),
27
- }));
28
-
29
- vi.mock('react-i18next', () => ({
30
- useTranslation: vi.fn(() => ({
31
- t: vi.fn((key) => key),
32
- })),
33
- }));
34
-
35
- const push = vi.fn();
36
-
37
- vi.mock('next/navigation', () => ({
38
- useRouter: vi.fn(() => ({
39
- push,
40
- })),
41
- }));
42
-
43
- const renderActions = (props: { mobile?: boolean }) => {
44
- render(
45
- <Provider createStore={createServerConfigStore}>
46
- <Actions {...props} />
47
- </Provider>,
48
- );
49
- };
50
-
51
- describe('Welcome Actions', () => {
52
- it('should render Start and Market button', () => {
53
- renderActions({});
54
-
55
- expect(screen.getByText('button.start')).toBeInTheDocument();
56
- expect(screen.getByText('button.market')).toBeInTheDocument();
57
- });
58
-
59
- it('should render Start when `-market` is set', () => {
60
- act(() => {
61
- createServerConfigStore().setState({ featureFlags: { market: false } });
62
- });
63
-
64
- renderActions({});
65
-
66
- expect(screen.getByText('button.start')).toBeInTheDocument();
67
- expect(screen.queryByText('button.market')).not.toBeInTheDocument();
68
- });
69
-
70
- it('Clicking start button should push to `/chat`', () => {
71
- renderActions({});
72
-
73
- fireEvent.click(screen.getByText('button.start'));
74
-
75
- expect(push).toHaveBeenCalledWith('/chat');
76
- });
77
- });
@@ -1,44 +0,0 @@
1
- 'use client';
2
-
3
- import { Icon } from '@lobehub/ui';
4
- import { Button } from 'antd';
5
- import { SendHorizonal } from 'lucide-react';
6
- import Link from 'next/link';
7
- import { useRouter } from 'next/navigation';
8
- import { memo } from 'react';
9
- import { useTranslation } from 'react-i18next';
10
- import { Flexbox } from 'react-layout-kit';
11
-
12
- import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfig';
13
-
14
- const Actions = memo<{ mobile?: boolean }>(({ mobile }) => {
15
- const { t } = useTranslation('welcome');
16
- const router = useRouter();
17
- const { showMarket } = useServerConfigStore(featureFlagsSelectors);
18
-
19
- return (
20
- <Flexbox gap={16} horizontal={!mobile} justify={'center'} width={'100%'} wrap={'wrap'}>
21
- {showMarket && (
22
- <Link href={'/discover'}>
23
- <Button block={mobile} size={'large'} style={{ minWidth: 160 }} type={'default'}>
24
- {t('button.market')}
25
- </Button>
26
- </Link>
27
- )}
28
- <Button
29
- block={mobile}
30
- onClick={() => router.push('/chat')}
31
- size={'large'}
32
- style={{ minWidth: 160 }}
33
- type={'primary'}
34
- >
35
- <Flexbox align={'center'} gap={4} horizontal justify={'center'}>
36
- {t('button.start')}
37
- <Icon icon={SendHorizonal} />
38
- </Flexbox>
39
- </Button>
40
- </Flexbox>
41
- );
42
- });
43
-
44
- export default Actions;
@@ -1,65 +0,0 @@
1
- 'use client';
2
-
3
- import { createStyles } from 'antd-style';
4
- import { rgba } from 'polished';
5
- import { memo } from 'react';
6
- import { useTranslation } from 'react-i18next';
7
- import { Flexbox } from 'react-layout-kit';
8
-
9
- import { BRANDING_NAME } from '@/const/branding';
10
-
11
- const useStyles = createStyles(({ css, token }) => {
12
- return {
13
- desc: css`
14
- font-size: min(24px, 4vw);
15
- font-weight: 400;
16
- color: ${rgba(token.colorText, 0.8)};
17
- text-align: center;
18
- text-wrap: balance;
19
- `,
20
- title: css`
21
- margin-block-end: 0;
22
-
23
- font-size: min(56px, 7vw);
24
- font-weight: 800;
25
- line-height: 1;
26
- text-align: center;
27
- text-wrap: balance;
28
- `,
29
- };
30
- });
31
-
32
- const Hero = memo(() => {
33
- const { styles } = useStyles();
34
-
35
- const { t } = useTranslation('welcome');
36
-
37
- return (
38
- <>
39
- <Flexbox
40
- align={'center'}
41
- as={'h1'}
42
- className={styles.title}
43
- gap={16}
44
- horizontal
45
- justify={'center'}
46
- wrap={'wrap'}
47
- >
48
- <strong style={{ fontSize: 'min(56px, 8vw)' }}>{BRANDING_NAME}</strong>
49
- <span>{t('slogan.title')}</span>
50
- </Flexbox>
51
- <Flexbox
52
- align={'center'}
53
- as={'h2'}
54
- className={styles.desc}
55
- horizontal
56
- justify={'center'}
57
- wrap={'wrap'}
58
- >
59
- {t('slogan.desc1')}
60
- </Flexbox>
61
- </>
62
- );
63
- });
64
-
65
- export default Hero;
@@ -1,10 +0,0 @@
1
- import ServerLayout from '@/components/server/ServerLayout';
2
-
3
- import Desktop from './_layout/Desktop';
4
- import Mobile from './_layout/Mobile';
5
-
6
- const WelcomeLayout = ServerLayout({ Desktop, Mobile });
7
-
8
- WelcomeLayout.displayName = 'WelcomeLayout';
9
-
10
- export default WelcomeLayout;
@@ -1,42 +0,0 @@
1
- import { WelcomeLogo } from '@/components/Branding';
2
- import StructuredData from '@/components/StructuredData';
3
- import { BRANDING_NAME } from '@/const/branding';
4
- import { ldModule } from '@/server/ld';
5
- import { metadataModule } from '@/server/metadata';
6
- import { translation } from '@/server/translation';
7
- import { isMobileDevice } from '@/utils/server/responsive';
8
-
9
- import Actions from './features/Actions';
10
- import Hero from './features/Hero';
11
-
12
- export const generateMetadata = async () => {
13
- const { t } = await translation('metadata');
14
- return metadataModule.generate({
15
- description: t('welcome.description', { appName: BRANDING_NAME }),
16
- title: t('welcome.title', { appName: BRANDING_NAME }),
17
- url: '/welcome',
18
- });
19
- };
20
-
21
- const Page = async () => {
22
- const mobile = isMobileDevice();
23
- const { t } = await translation('metadata');
24
- const ld = ldModule.generate({
25
- description: t('welcome.description', { appName: BRANDING_NAME }),
26
- title: t('welcome.title', { appName: BRANDING_NAME }),
27
- url: '/welcome',
28
- });
29
-
30
- return (
31
- <>
32
- <StructuredData ld={ld} />
33
- <WelcomeLogo mobile={mobile} />
34
- <Hero />
35
- <Actions mobile={mobile} />
36
- </>
37
- );
38
- };
39
-
40
- Page.displayName = 'Welcome';
41
-
42
- export default Page;
@@ -1,41 +0,0 @@
1
- 'use client';
2
-
3
- import Image from 'next/image';
4
- import { memo } from 'react';
5
- import { Center } from 'react-layout-kit';
6
-
7
- import { BRANDING_LOGO_URL, BRANDING_NAME } from '@/const/branding';
8
-
9
- const WelcomeLogo = memo<{ mobile?: boolean }>(({ mobile }) => {
10
- return mobile ? (
11
- <Center height={240} width={240}>
12
- <Image
13
- alt={BRANDING_NAME}
14
- height={240}
15
- src={BRANDING_LOGO_URL}
16
- unoptimized={true}
17
- width={240}
18
- />
19
- </Center>
20
- ) : (
21
- <Center
22
- style={{
23
- height: `min(482px, 40vw)`,
24
- marginBottom: '-10%',
25
- marginTop: '-20%',
26
- position: 'relative',
27
- width: `min(976px, 80vw)`,
28
- }}
29
- >
30
- <Image
31
- alt={BRANDING_NAME}
32
- height={240}
33
- src={BRANDING_LOGO_URL}
34
- unoptimized={true}
35
- width={240}
36
- />
37
- </Center>
38
- );
39
- });
40
-
41
- export default WelcomeLogo;
@@ -1,32 +0,0 @@
1
- 'use client';
2
-
3
- import dynamic from 'next/dynamic';
4
- import { memo } from 'react';
5
- import { Center } from 'react-layout-kit';
6
-
7
- const LogoThree = dynamic(() => import('@lobehub/ui/es/brand/LogoThree'), { ssr: false });
8
- const LogoSpline = dynamic(() => import('@lobehub/ui/es/brand/LogoThree/LogoSpline'), {
9
- ssr: false,
10
- });
11
-
12
- const WelcomeLogo = memo<{ mobile?: boolean }>(({ mobile }) => {
13
- return mobile ? (
14
- <Center height={240} width={240}>
15
- <LogoThree size={240} />
16
- </Center>
17
- ) : (
18
- <Center
19
- style={{
20
- height: `min(482px, 40vw)`,
21
- marginBottom: '-10%',
22
- marginTop: '-20%',
23
- position: 'relative',
24
- width: `min(976px, 80vw)`,
25
- }}
26
- >
27
- <LogoSpline height={'min(482px, 40vw)'} width={'min(976px, 80vw)'} />
28
- </Center>
29
- );
30
- });
31
-
32
- export default WelcomeLogo;
@@ -1,16 +0,0 @@
1
- 'use client';
2
-
3
- import { memo } from 'react';
4
-
5
- import { isCustomBranding } from '@/const/version';
6
-
7
- import CustomLogo from './Custom';
8
- import LobeChat from './LobeChat';
9
-
10
- export const WelcomeLogo = memo<{ mobile?: boolean }>(({ mobile }) => {
11
- if (isCustomBranding) {
12
- return <CustomLogo mobile={mobile} />;
13
- }
14
-
15
- return <LobeChat mobile={mobile} />;
16
- });