@lobehub/chat 1.45.17 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.env.example +4 -1
  2. package/CHANGELOG.md +26 -0
  3. package/changelog/v1.json +9 -0
  4. package/docs/self-hosting/advanced/knowledge-base.mdx +9 -0
  5. package/docs/self-hosting/advanced/knowledge-base.zh-CN.mdx +9 -0
  6. package/locales/ar/providers.json +3 -0
  7. package/locales/bg-BG/providers.json +3 -0
  8. package/locales/de-DE/providers.json +3 -0
  9. package/locales/en-US/providers.json +3 -0
  10. package/locales/es-ES/providers.json +3 -0
  11. package/locales/fa-IR/providers.json +3 -0
  12. package/locales/fr-FR/providers.json +3 -0
  13. package/locales/it-IT/providers.json +3 -0
  14. package/locales/ja-JP/providers.json +3 -0
  15. package/locales/ko-KR/providers.json +3 -0
  16. package/locales/nl-NL/providers.json +3 -0
  17. package/locales/pl-PL/providers.json +3 -0
  18. package/locales/pt-BR/providers.json +3 -0
  19. package/locales/ru-RU/providers.json +3 -0
  20. package/locales/tr-TR/providers.json +3 -0
  21. package/locales/vi-VN/providers.json +3 -0
  22. package/locales/zh-CN/providers.json +3 -0
  23. package/locales/zh-TW/providers.json +3 -0
  24. package/package.json +1 -1
  25. package/src/app/(main)/settings/provider/(detail)/[id]/index.tsx +0 -1
  26. package/src/config/aiModels/index.ts +3 -0
  27. package/src/config/aiModels/lmstudio.ts +27 -0
  28. package/src/config/knowledge.ts +2 -0
  29. package/src/config/modelProviders/index.ts +6 -3
  30. package/src/config/modelProviders/lmstudio.ts +25 -0
  31. package/src/const/settings/knowledge.ts +25 -0
  32. package/src/const/settings/llm.ts +9 -0
  33. package/src/database/schemas/ragEvals.ts +2 -2
  34. package/src/libs/agent-runtime/AgentRuntime.ts +7 -0
  35. package/src/libs/agent-runtime/bedrock/index.ts +64 -3
  36. package/src/libs/agent-runtime/lmstudio/index.test.ts +255 -0
  37. package/src/libs/agent-runtime/lmstudio/index.ts +11 -0
  38. package/src/libs/agent-runtime/ollama/index.ts +37 -1
  39. package/src/libs/agent-runtime/types/type.ts +1 -0
  40. package/src/server/globalConfig/index.ts +6 -0
  41. package/src/server/globalConfig/parseFilesConfig.test.ts +17 -0
  42. package/src/server/globalConfig/parseFilesConfig.ts +57 -0
  43. package/src/server/routers/async/file.ts +8 -8
  44. package/src/server/routers/lambda/chunk.ts +12 -16
  45. package/src/types/knowledgeBase/index.ts +8 -0
  46. package/src/types/user/settings/filesConfig.ts +9 -0
  47. package/src/types/user/settings/keyVaults.ts +1 -0
package/.env.example CHANGED
@@ -208,4 +208,7 @@ OPENAI_API_KEY=sk-xxxxxxxxx
208
208
 
209
209
  # use `openssl rand -base64 32` to generate a key for the encryption of the database
210
210
  # we use this key to encrypt the user api key
211
- # KEY_VAULTS_SECRET=xxxxx/xxxxxxxxxxxxxx=
211
+ #KEY_VAULTS_SECRET=xxxxx/xxxxxxxxxxxxxx=
212
+
213
+ # Specify the Embedding model and Reranker model(unImplemented)
214
+ # DEFAULT_FILES_CONFIG="embedding_model=openai/embedding-text-3-small,reranker_model=cohere/rerank-english-v3.0,query_mode=full_text"
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 1.46.0](https://github.com/lobehub/lobe-chat/compare/v1.45.17...v1.46.0)
6
+
7
+ <sup>Released on **2025-01-15**</sup>
8
+
9
+ #### ✨ Features
10
+
11
+ - **misc**: Add lm studio provider, support to customize Embedding model with env.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's improved
19
+
20
+ - **misc**: Add lm studio provider, closes [#4483](https://github.com/lobehub/lobe-chat/issues/4483) ([0ac5802](https://github.com/lobehub/lobe-chat/commit/0ac5802))
21
+ - **misc**: Support to customize Embedding model with env, closes [#5177](https://github.com/lobehub/lobe-chat/issues/5177) ([eed9357](https://github.com/lobehub/lobe-chat/commit/eed9357))
22
+
23
+ </details>
24
+
25
+ <div align="right">
26
+
27
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
28
+
29
+ </div>
30
+
5
31
  ### [Version 1.45.17](https://github.com/lobehub/lobe-chat/compare/v1.45.16...v1.45.17)
6
32
 
7
33
  <sup>Released on **2025-01-15**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,13 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "features": [
5
+ "Add lm studio provider, support to customize Embedding model with env."
6
+ ]
7
+ },
8
+ "date": "2025-01-15",
9
+ "version": "1.46.0"
10
+ },
2
11
  {
3
12
  "children": {
4
13
  "improvements": [
@@ -62,3 +62,12 @@ Unstructured.io is a powerful document processing tool.
62
62
  - **Note**: Evaluate processing needs based on document complexity
63
63
 
64
64
  By correctly configuring and integrating these core components, you can build a powerful and efficient knowledge base system for LobeChat. Each component plays a crucial role in the overall architecture, supporting advanced document management and intelligent retrieval functions.
65
+
66
+ ### 5. Custom Embedding
67
+
68
+ - **Purpose**: Use different Embedding generate vector representations for semantic search
69
+ - **Options**: support model provider list: zhipu/github/openai/bedrock/ollama
70
+ - **Deployment Tip**: Used to configure the default Embedding model
71
+ ```
72
+ environment: DEFAULT_FILES_CONFIG=embedding_model=openai/embedding-text-3-small
73
+ ```
@@ -60,3 +60,12 @@ Unstructured.io 是一个强大的文档处理工具。
60
60
  - **注意事项**:评估处理需求,根据文档复杂度决定是否部署
61
61
 
62
62
  通过正确配置和集成这些核心组件,您可以为 LobeChat 构建一个强大、高效的知识库系统。每个组件都在整体架构中扮演着关键角色,共同支持高级的文档管理和智能检索功能。
63
+
64
+ ### 5. 自定义 Embedding(可选)
65
+
66
+ - **用途**: 使用不同的嵌入模型(Embedding)生成文本的向量表示,用于语义搜索
67
+ - **选项**: 支持的模型提供商:zhipu/github/openai/bedrock/ollama
68
+ - **部署建议**: 使用环境变量配置默认嵌入模型
69
+ ```
70
+ environment: DEFAULT_FILES_CONFIG=embedding_model=openai/embedding-text-3-small
71
+ ```
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "منظمة مفتوحة المصدر مكرسة لأبحاث وتطوير أدوات النماذج الكبيرة. توفر منصة مفتوحة المصدر فعالة وسهلة الاستخدام لجميع مطوري الذكاء الاصطناعي، مما يجعل أحدث تقنيات النماذج الكبيرة والخوارزميات في متناول اليد."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio هو تطبيق سطح مكتب لتطوير وتجربة نماذج اللغة الكبيرة (LLMs) على جهاز الكمبيوتر الخاص بك."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax هي شركة تكنولوجيا الذكاء الاصطناعي العامة التي تأسست في عام 2021، تكرس جهودها للتعاون مع المستخدمين في إنشاء الذكاء. طورت MiniMax نماذج كبيرة عامة من أوضاع مختلفة، بما في ذلك نموذج نصي MoE الذي يحتوي على تريليونات من المعلمات، ونموذج صوتي، ونموذج صور. وقد أطلقت تطبيقات مثل Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Отворена организация, посветена на изследването и разработването на инструменти за големи модели. Предоставя на всички AI разработчици ефективна и лесна за използване отворена платформа, която прави най-съвременните технологии и алгоритми за големи модели достъпни."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio е настолно приложение за разработка и експериментиране с LLMs на вашия компютър."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax е компания за универсален изкуствен интелект, основана през 2021 г., която се стреми да създаде интелигентност заедно с потребителите. MiniMax е разработила различни универсални големи модели, включително текстови модели с трилйон параметри, модели за глас и модели за изображения. Също така е пуснала приложения като Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Eine Open-Source-Organisation, die sich der Forschung und Entwicklung von großen Modellen und Werkzeugketten widmet. Sie bietet allen KI-Entwicklern eine effiziente und benutzerfreundliche Open-Source-Plattform, die den Zugang zu den neuesten Technologien und Algorithmen für große Modelle ermöglicht."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio ist eine Desktop-Anwendung zum Entwickeln und Experimentieren mit LLMs auf Ihrem Computer."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax ist ein im Jahr 2021 gegründetes Unternehmen für allgemeine künstliche Intelligenz, das sich der gemeinsamen Schaffung von Intelligenz mit den Nutzern widmet. MiniMax hat verschiedene multimodale allgemeine große Modelle entwickelt, darunter ein Textmodell mit Billionen von Parametern, ein Sprachmodell und ein Bildmodell. Außerdem wurden Anwendungen wie Conch AI eingeführt."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "An open-source organization dedicated to the research and development of large model toolchains. It provides an efficient and user-friendly open-source platform for all AI developers, making cutting-edge large models and algorithm technologies easily accessible."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio is a desktop application for developing and experimenting with LLMs on your computer."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax is a general artificial intelligence technology company established in 2021, dedicated to co-creating intelligence with users. MiniMax has independently developed general large models of different modalities, including trillion-parameter MoE text models, voice models, and image models, and has launched applications such as Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Organización de código abierto dedicada a la investigación y desarrollo de herramientas para modelos grandes. Proporciona a todos los desarrolladores de IA una plataforma de código abierto eficiente y fácil de usar, permitiendo el acceso a las tecnologías y algoritmos más avanzados."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio es una aplicación de escritorio para desarrollar y experimentar con LLMs en su computadora."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax es una empresa de tecnología de inteligencia artificial general fundada en 2021, dedicada a co-crear inteligencia con los usuarios. MiniMax ha desarrollado de forma independiente modelos de gran tamaño de diferentes modalidades, que incluyen un modelo de texto MoE de un billón de parámetros, un modelo de voz y un modelo de imagen. También ha lanzado aplicaciones como Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "سازمان متن باز متعهد به تحقیق و توسعه ابزارهای مدل‌های بزرگ. ارائه یک پلتفرم متن باز کارآمد و آسان برای تمام توسعه‌دهندگان هوش مصنوعی، تا جدیدترین مدل‌ها و تکنیک‌های الگوریتمی در دسترس باشد."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio یک برنامه دسکتاپ برای توسعه و آزمایش LLM ها بر روی رایانه شما است."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax یک شرکت فناوری هوش مصنوعی عمومی است که در سال 2021 تأسیس شد و به همکاری با کاربران برای ایجاد هوش مصنوعی متعهد است. MiniMax به‌طور مستقل مدل‌های بزرگ عمومی چندگانه‌ای را توسعه داده است، از جمله مدل متنی MoE با تریلیون‌ها پارامتر، مدل صوتی و مدل تصویری. همچنین برنامه‌هایی مانند حلزون AI را معرفی کرده است."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Organisation open source dédiée à la recherche et au développement d'outils pour les grands modèles. Fournit à tous les développeurs d'IA une plateforme open source efficace et facile à utiliser, rendant les technologies de pointe en matière de grands modèles et d'algorithmes accessibles."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio est une application de bureau pour développer et expérimenter des LLM sur votre ordinateur."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax est une entreprise de technologie d'intelligence artificielle générale fondée en 2021, dédiée à la co-création d'intelligence avec les utilisateurs. MiniMax a développé de manière autonome différents modèles de grande taille, y compris un modèle de texte MoE à un trillion de paramètres, un modèle vocal et un modèle d'image. Elle a également lancé des applications telles que Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Un'organizzazione open source dedicata alla ricerca e allo sviluppo di strumenti per modelli di grandi dimensioni. Fornisce a tutti gli sviluppatori di AI una piattaforma open source efficiente e facile da usare, rendendo le tecnologie e gli algoritmi all'avanguardia accessibili a tutti."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio è un'applicazione desktop per sviluppare e sperimentare LLM sul tuo computer."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax è un'azienda di tecnologia dell'intelligenza artificiale generale fondata nel 2021, dedicata alla co-creazione di intelligenza con gli utenti. MiniMax ha sviluppato modelli generali di diverse modalità, tra cui un modello di testo MoE con trilioni di parametri, un modello vocale e un modello visivo. Ha anche lanciato applicazioni come Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "大規模モデルの研究と開発ツールチェーンに特化したオープンソース組織です。すべてのAI開発者に対して、高効率で使いやすいオープンプラットフォームを提供し、最先端の大規模モデルとアルゴリズム技術を身近に感じられるようにします。"
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studioは、あなたのコンピュータ上でLLMを開発し、実験するためのデスクトップアプリケーションです。"
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMaxは2021年に設立された汎用人工知能テクノロジー企業であり、ユーザーと共に知能を共創することに取り組んでいます。MiniMaxは、さまざまなモードの汎用大モデルを独自に開発しており、トリリオンパラメータのMoEテキスト大モデル、音声大モデル、画像大モデルを含んでいます。また、海螺AIなどのアプリケーションも展開しています。"
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "대규모 모델 연구 및 개발 도구 체인에 전념하는 오픈 소스 조직입니다. 모든 AI 개발자에게 효율적이고 사용하기 쉬운 오픈 소스 플랫폼을 제공하여 최첨단 대규모 모델 및 알고리즘 기술을 손쉽게 이용할 수 있도록 합니다."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio는 귀하의 컴퓨터에서 LLM을 개발하고 실험하기 위한 데스크탑 애플리케이션입니다."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax는 2021년에 설립된 일반 인공지능 기술 회사로, 사용자와 함께 지능을 공동 창출하는 데 전념하고 있습니다. MiniMax는 다양한 모드의 일반 대형 모델을 독자적으로 개발하였으며, 여기에는 조 단위의 MoE 텍스트 대형 모델, 음성 대형 모델 및 이미지 대형 모델이 포함됩니다. 또한 해마 AI와 같은 응용 프로그램을 출시하였습니다."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Een open-source organisatie die zich richt op onderzoek en ontwikkeling van tools voor grote modellen. Biedt een efficiënt en gebruiksvriendelijk open-source platform voor alle AI-ontwikkelaars, zodat de meest geavanceerde modellen en algoritmische technologieën binnen handbereik zijn."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio is een desktopapplicatie voor het ontwikkelen en experimenteren met LLM's op uw computer."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax is een algemeen kunstmatige intelligentietechnologiebedrijf dat in 2021 is opgericht, en zich richt op co-creatie van intelligentie met gebruikers. MiniMax heeft verschillende multimodale algemene grote modellen ontwikkeld, waaronder een MoE-tekstgrootmodel met triljoenen parameters, een spraakgrootmodel en een afbeeldingsgrootmodel. Ze hebben ook toepassingen zoals Conch AI gelanceerd."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Organizacja open source poświęcona badaniom i rozwojowi narzędzi dla dużych modeli. Oferuje wszystkim deweloperom AI wydajną i łatwą w użyciu platformę open source, umożliwiającą dostęp do najnowocześniejszych technologii modeli i algorytmów."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio to aplikacja desktopowa do rozwijania i eksperymentowania z LLM-ami na Twoim komputerze."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax to firma technologiczna zajmująca się ogólną sztuczną inteligencją, założona w 2021 roku, dążąca do współtworzenia inteligencji z użytkownikami. MiniMax opracowało różne modele dużych modeli o różnych modalnościach, w tym model tekstowy MoE z bilionem parametrów, model głosowy oraz model obrazowy. Wprowadziło również aplikacje takie jak Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Uma organização de código aberto dedicada à pesquisa e desenvolvimento de ferramentas para grandes modelos. Oferece uma plataforma de código aberto eficiente e fácil de usar para todos os desenvolvedores de IA, tornando as tecnologias e algoritmos de ponta acessíveis."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio é um aplicativo de desktop para desenvolver e experimentar LLMs em seu computador."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax é uma empresa de tecnologia de inteligência artificial geral fundada em 2021, dedicada a co-criar inteligência com os usuários. A MiniMax desenvolveu internamente diferentes modelos gerais de grande escala, incluindo um modelo de texto MoE com trilhões de parâmetros, um modelo de voz e um modelo de imagem. Também lançou aplicações como Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Открытая организация, занимающаяся исследованием и разработкой инструментов для больших моделей. Предоставляет всем разработчикам ИИ эффективную и удобную открытую платформу, позволяя получить доступ к самым современным технологиям больших моделей и алгоритмов."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio — это настольное приложение для разработки и экспериментов с LLM на вашем компьютере."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax — это компания по разработке универсального искусственного интеллекта, основанная в 2021 году, стремящаяся к совместному созданию интеллекта с пользователями. MiniMax самостоятельно разработала универсальные большие модели различных модальностей, включая текстовые модели с триллионом параметров, модели речи и модели изображений. Также были запущены приложения, такие как Conch AI."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Büyük model araştırma ve geliştirme araç zincirine adanmış bir açık kaynak organizasyonu. Tüm AI geliştiricilerine verimli ve kullanımı kolay bir açık kaynak platformu sunarak en son büyük model ve algoritma teknolojilerine erişimi kolaylaştırır."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio, bilgisayarınızda LLM'ler geliştirmek ve denemeler yapmak için bir masaüstü uygulamasıdır."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax, 2021 yılında kurulan genel yapay zeka teknolojisi şirketidir ve kullanıcılarla birlikte akıllı çözümler yaratmayı hedeflemektedir. MiniMax, farklı modlarda genel büyük modeller geliştirmiştir. Bunlar arasında trilyon parametreli MoE metin büyük modeli, ses büyük modeli ve görüntü büyük modeli bulunmaktadır. Ayrıca, Conch AI gibi uygulamalar da sunmaktadır."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "Tổ chức mã nguồn mở chuyên nghiên cứu và phát triển công cụ cho mô hình lớn. Cung cấp nền tảng mã nguồn mở hiệu quả, dễ sử dụng cho tất cả các nhà phát triển AI, giúp tiếp cận công nghệ mô hình lớn và thuật toán tiên tiến nhất."
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio là một ứng dụng máy tính để phát triển và thử nghiệm các LLM trên máy tính của bạn."
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax là công ty công nghệ trí tuệ nhân tạo tổng quát được thành lập vào năm 2021, cam kết cùng người dùng sáng tạo trí thông minh. MiniMax đã tự phát triển nhiều mô hình lớn đa phương thức, bao gồm mô hình văn bản MoE với một triệu tham số, mô hình giọng nói và mô hình hình ảnh. Họ cũng đã phát hành các ứng dụng như AI Hải Lý."
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "致力于大模型研究与开发工具链的开源组织。为所有 AI 开发者提供高效、易用的开源平台,让最前沿的大模型与算法技术触手可及"
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio 是一个用于在您的计算机上开发和实验 LLMs 的桌面应用程序。"
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax 是 2021 年成立的通用人工智能科技公司,致力于与用户共创智能。MiniMax 自主研发了不同模态的通用大模型,其中包括万亿参数的 MoE 文本大模型、语音大模型以及图像大模型。并推出了海螺 AI 等应用。"
55
58
  },
@@ -50,6 +50,9 @@
50
50
  "internlm": {
51
51
  "description": "致力於大模型研究與開發工具鏈的開源組織。為所有 AI 開發者提供高效、易用的開源平台,讓最前沿的大模型與算法技術觸手可及"
52
52
  },
53
+ "lmstudio": {
54
+ "description": "LM Studio 是一個用於在您的電腦上開發和實驗 LLMs 的桌面應用程式。"
55
+ },
53
56
  "minimax": {
54
57
  "description": "MiniMax 是 2021 年成立的通用人工智慧科技公司,致力於與用戶共創智能。MiniMax 自主研發了不同模態的通用大模型,其中包括萬億參數的 MoE 文本大模型、語音大模型以及圖像大模型。並推出了海螺 AI 等應用。"
55
58
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.45.17",
3
+ "version": "1.46.0",
4
4
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -3,7 +3,6 @@
3
3
  import { memo } from 'react';
4
4
  import { Flexbox } from 'react-layout-kit';
5
5
 
6
-
7
6
  import ModelList from '../../features/ModelList';
8
7
  import ProviderConfig, { ProviderConfigProps } from '../../features/ProviderConfig';
9
8
 
@@ -17,6 +17,7 @@ import { default as higress } from './higress';
17
17
  import { default as huggingface } from './huggingface';
18
18
  import { default as hunyuan } from './hunyuan';
19
19
  import { default as internlm } from './internlm';
20
+ import { default as lmstudio } from './lmstudio';
20
21
  import { default as minimax } from './minimax';
21
22
  import { default as mistral } from './mistral';
22
23
  import { default as moonshot } from './moonshot';
@@ -75,6 +76,7 @@ export const LOBE_DEFAULT_MODEL_LIST = buildDefaultModelList({
75
76
  huggingface,
76
77
  hunyuan,
77
78
  internlm,
79
+ lmstudio,
78
80
  minimax,
79
81
  mistral,
80
82
  moonshot,
@@ -114,6 +116,7 @@ export { default as higress } from './higress';
114
116
  export { default as huggingface } from './huggingface';
115
117
  export { default as hunyuan } from './hunyuan';
116
118
  export { default as internlm } from './internlm';
119
+ export { default as lmstudio } from './lmstudio';
117
120
  export { default as minimax } from './minimax';
118
121
  export { default as mistral } from './mistral';
119
122
  export { default as moonshot } from './moonshot';
@@ -0,0 +1,27 @@
1
+ import { AIChatModelCard } from '@/types/aiModel';
2
+
3
+ const lmStudioChatModels: AIChatModelCard[] = [
4
+ {
5
+ abilities: {},
6
+ contextWindowTokens: 128_000,
7
+ description:
8
+ 'Llama 3.1 是 Meta 推出的领先模型,支持高达 405B 参数,可应用于复杂对话、多语言翻译和数据分析领域。',
9
+ displayName: 'Llama 3.1 8B',
10
+ enabled: true,
11
+ id: 'llama3.1',
12
+ type: 'chat',
13
+ },
14
+ {
15
+ abilities: {},
16
+ contextWindowTokens: 128_000,
17
+ description: 'Qwen2.5 是阿里巴巴的新一代大规模语言模型,以优异的性能支持多元化的应用需求。',
18
+ displayName: 'Qwen2.5 14B',
19
+ enabled: true,
20
+ id: 'qwen2.5-14b-instruct',
21
+ type: 'chat',
22
+ },
23
+ ];
24
+
25
+ export const allModels = [...lmStudioChatModels];
26
+
27
+ export default allModels;
@@ -4,10 +4,12 @@ import { z } from 'zod';
4
4
  export const getKnowledgeConfig = () => {
5
5
  return createEnv({
6
6
  runtimeEnv: {
7
+ DEFAULT_FILES_CONFIG: process.env.DEFAULT_FILES_CONFIG,
7
8
  UNSTRUCTURED_API_KEY: process.env.UNSTRUCTURED_API_KEY,
8
9
  UNSTRUCTURED_SERVER_URL: process.env.UNSTRUCTURED_SERVER_URL,
9
10
  },
10
11
  server: {
12
+ DEFAULT_FILES_CONFIG: z.string().optional(),
11
13
  UNSTRUCTURED_API_KEY: z.string().optional(),
12
14
  UNSTRUCTURED_SERVER_URL: z.string().optional(),
13
15
  },
@@ -17,6 +17,7 @@ import HigressProvider from './higress';
17
17
  import HuggingFaceProvider from './huggingface';
18
18
  import HunyuanProvider from './hunyuan';
19
19
  import InternLMProvider from './internlm';
20
+ import LMStudioProvider from './lmstudio';
20
21
  import MinimaxProvider from './minimax';
21
22
  import MistralProvider from './mistral';
22
23
  import MoonshotProvider from './moonshot';
@@ -104,20 +105,21 @@ export const DEFAULT_MODEL_PROVIDER_LIST = [
104
105
  QwenProvider,
105
106
  WenxinProvider,
106
107
  HunyuanProvider,
107
- SparkProvider,
108
108
  ZhiPuProvider,
109
+ SiliconCloudProvider,
109
110
  ZeroOneProvider,
111
+ SparkProvider,
110
112
  SenseNovaProvider,
111
113
  StepfunProvider,
112
114
  MoonshotProvider,
113
115
  BaichuanProvider,
114
116
  MinimaxProvider,
115
- Ai360Provider,
116
- SiliconCloudProvider,
117
+ LMStudioProvider,
117
118
  InternLMProvider,
118
119
  HigressProvider,
119
120
  GiteeAIProvider,
120
121
  TaichuProvider,
122
+ Ai360Provider,
121
123
  ];
122
124
 
123
125
  export const filterEnabledModels = (provider: ModelProviderCard) => {
@@ -146,6 +148,7 @@ export { default as HigressProviderCard } from './higress';
146
148
  export { default as HuggingFaceProviderCard } from './huggingface';
147
149
  export { default as HunyuanProviderCard } from './hunyuan';
148
150
  export { default as InternLMProviderCard } from './internlm';
151
+ export { default as LMStudioProviderCard } from './lmstudio';
149
152
  export { default as MinimaxProviderCard } from './minimax';
150
153
  export { default as MistralProviderCard } from './mistral';
151
154
  export { default as MoonshotProviderCard } from './moonshot';
@@ -0,0 +1,25 @@
1
+ import { ModelProviderCard } from '@/types/llm';
2
+
3
+ // ref: https://ollama.com/library
4
+ const LMStudio: ModelProviderCard = {
5
+ chatModels: [],
6
+ description: 'LM Studio 是一个用于在您的计算机上开发和实验 LLMs 的桌面应用程序。',
7
+ id: 'lmstudio',
8
+ modelsUrl: 'https://lmstudio.ai/models',
9
+ name: 'LM Studio',
10
+ settings: {
11
+ defaultShowBrowserRequest: true,
12
+ proxyUrl: {
13
+ placeholder: 'http://127.0.0.1:1234/v1',
14
+ },
15
+ showApiKey: false,
16
+ showModelFetcher: true,
17
+ smoothing: {
18
+ speed: 2,
19
+ text: true,
20
+ },
21
+ },
22
+ url: 'https://lmstudio.ai',
23
+ };
24
+
25
+ export default LMStudio;
@@ -0,0 +1,25 @@
1
+ import { FilesConfig, FilesConfigItem } from '@/types/user/settings/filesConfig';
2
+
3
+ import {
4
+ DEFAULT_EMBEDDING_MODEL,
5
+ DEFAULT_PROVIDER,
6
+ DEFAULT_RERANK_MODEL,
7
+ DEFAULT_RERANK_PROVIDER,
8
+ DEFAULT_RERANK_QUERY_MODE,
9
+ } from './llm';
10
+
11
+ export const DEFAULT_FILE_EMBEDDING_MODEL_ITEM: FilesConfigItem = {
12
+ model: DEFAULT_EMBEDDING_MODEL,
13
+ provider: DEFAULT_PROVIDER,
14
+ };
15
+
16
+ export const DEFAULT_FILE_RERANK_MODEL_ITEM: FilesConfigItem = {
17
+ model: DEFAULT_RERANK_MODEL,
18
+ provider: DEFAULT_RERANK_PROVIDER,
19
+ };
20
+
21
+ export const DEFAULT_FILES_CONFIG: FilesConfig = {
22
+ embeddingModel: DEFAULT_FILE_EMBEDDING_MODEL_ITEM,
23
+ queryModel: DEFAULT_RERANK_QUERY_MODE,
24
+ rerankerModel: DEFAULT_FILE_RERANK_MODEL_ITEM,
25
+ };
@@ -2,6 +2,9 @@ import { ModelProvider } from '@/libs/agent-runtime';
2
2
  import { genUserLLMConfig } from '@/utils/genUserLLMConfig';
3
3
 
4
4
  export const DEFAULT_LLM_CONFIG = genUserLLMConfig({
5
+ lmstudio: {
6
+ fetchOnClient: true,
7
+ },
5
8
  ollama: {
6
9
  enabled: true,
7
10
  fetchOnClient: true,
@@ -12,6 +15,12 @@ export const DEFAULT_LLM_CONFIG = genUserLLMConfig({
12
15
  });
13
16
 
14
17
  export const DEFAULT_MODEL = 'gpt-4o-mini';
18
+
15
19
  export const DEFAULT_EMBEDDING_MODEL = 'text-embedding-3-small';
20
+ export const DEFAULT_EMBEDDING_PROVIDER = ModelProvider.OpenAI;
21
+
22
+ export const DEFAULT_RERANK_MODEL = 'rerank-english-v3.0';
23
+ export const DEFAULT_RERANK_PROVIDER = 'cohere';
24
+ export const DEFAULT_RERANK_QUERY_MODE = 'full_text';
16
25
 
17
26
  export const DEFAULT_PROVIDER = ModelProvider.OpenAI;
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable sort-keys-fix/sort-keys-fix */
2
2
  import { integer, jsonb, pgTable, text, uuid } from 'drizzle-orm/pg-core';
3
3
 
4
- import { DEFAULT_EMBEDDING_MODEL, DEFAULT_MODEL } from '@/const/settings';
4
+ import { DEFAULT_MODEL } from '@/const/settings';
5
5
  import { EvalEvaluationStatus } from '@/types/eval';
6
6
 
7
7
  import { timestamps } from './_helpers';
@@ -60,7 +60,7 @@ export const evalEvaluation = pgTable('rag_eval_evaluations', {
60
60
  onDelete: 'cascade',
61
61
  }),
62
62
  languageModel: text('language_model').$defaultFn(() => DEFAULT_MODEL),
63
- embeddingModel: text('embedding_model').$defaultFn(() => DEFAULT_EMBEDDING_MODEL),
63
+ embeddingModel: text('embedding_model'),
64
64
 
65
65
  userId: text('user_id').references(() => users.id, { onDelete: 'cascade' }),
66
66
  ...timestamps,
@@ -20,6 +20,7 @@ import { LobeHigressAI } from './higress';
20
20
  import { LobeHuggingFaceAI } from './huggingface';
21
21
  import { LobeHunyuanAI } from './hunyuan';
22
22
  import { LobeInternLMAI } from './internlm';
23
+ import { LobeLMStudioAI } from './lmstudio';
23
24
  import { LobeMinimaxAI } from './minimax';
24
25
  import { LobeMistralAI } from './mistral';
25
26
  import { LobeMoonshotAI } from './moonshot';
@@ -147,6 +148,7 @@ class AgentRuntime {
147
148
  huggingface: { apiKey?: string; baseURL?: string };
148
149
  hunyuan: Partial<ClientOptions>;
149
150
  internlm: Partial<ClientOptions>;
151
+ lmstudio: Partial<ClientOptions>;
150
152
  minimax: Partial<ClientOptions>;
151
153
  mistral: Partial<ClientOptions>;
152
154
  moonshot: Partial<ClientOptions>;
@@ -207,6 +209,11 @@ class AgentRuntime {
207
209
  break;
208
210
  }
209
211
 
212
+ case ModelProvider.LMStudio: {
213
+ runtimeModel = new LobeLMStudioAI(params.lmstudio);
214
+ break;
215
+ }
216
+
210
217
  case ModelProvider.Ollama: {
211
218
  runtimeModel = new LobeOllamaAI(params.ollama);
212
219
  break;
@@ -1,12 +1,20 @@
1
1
  import {
2
2
  BedrockRuntimeClient,
3
+ InvokeModelCommand,
3
4
  InvokeModelWithResponseStreamCommand,
4
5
  } from '@aws-sdk/client-bedrock-runtime';
5
6
  import { experimental_buildLlama2Prompt } from 'ai/prompts';
6
7
 
7
8
  import { LobeRuntimeAI } from '../BaseAI';
8
9
  import { AgentRuntimeErrorType } from '../error';
9
- import { ChatCompetitionOptions, ChatStreamPayload, ModelProvider } from '../types';
10
+ import {
11
+ ChatCompetitionOptions,
12
+ ChatStreamPayload,
13
+ Embeddings,
14
+ EmbeddingsOptions,
15
+ EmbeddingsPayload,
16
+ ModelProvider,
17
+ } from '../types';
10
18
  import { buildAnthropicMessages, buildAnthropicTools } from '../utils/anthropicHelpers';
11
19
  import { AgentRuntimeError } from '../utils/createError';
12
20
  import { debugStream } from '../utils/debugStream';
@@ -32,9 +40,7 @@ export class LobeBedrockAI implements LobeRuntimeAI {
32
40
  constructor({ region, accessKeyId, accessKeySecret, sessionToken }: LobeBedrockAIParams = {}) {
33
41
  if (!(accessKeyId && accessKeySecret))
34
42
  throw AgentRuntimeError.createError(AgentRuntimeErrorType.InvalidBedrockCredentials);
35
-
36
43
  this.region = region ?? 'us-east-1';
37
-
38
44
  this.client = new BedrockRuntimeClient({
39
45
  credentials: {
40
46
  accessKeyId: accessKeyId,
@@ -50,6 +56,61 @@ export class LobeBedrockAI implements LobeRuntimeAI {
50
56
 
51
57
  return this.invokeClaudeModel(payload, options);
52
58
  }
59
+ /**
60
+ * Supports the Amazon Titan Text models series.
61
+ * Cohere Embed models are not supported
62
+ * because the current text size per request
63
+ * exceeds the maximum 2048 characters limit
64
+ * for a single request for this series of models.
65
+ * [bedrock embed guide] https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-embed.html
66
+ */
67
+ async embeddings(payload: EmbeddingsPayload, options?: EmbeddingsOptions): Promise<Embeddings[]> {
68
+ const input = Array.isArray(payload.input) ? payload.input : [payload.input];
69
+ const promises = input.map((inputText: string) =>
70
+ this.invokeEmbeddingModel(
71
+ {
72
+ dimensions: payload.dimensions,
73
+ input: inputText,
74
+ model: payload.model,
75
+ },
76
+ options,
77
+ ),
78
+ );
79
+ return Promise.all(promises);
80
+ }
81
+
82
+ private invokeEmbeddingModel = async (
83
+ payload: EmbeddingsPayload,
84
+ options?: EmbeddingsOptions,
85
+ ): Promise<Embeddings> => {
86
+ const command = new InvokeModelCommand({
87
+ accept: 'application/json',
88
+ body: JSON.stringify({
89
+ dimensions: payload.dimensions,
90
+ inputText: payload.input,
91
+ normalize: true,
92
+ }),
93
+ contentType: 'application/json',
94
+ modelId: payload.model,
95
+ });
96
+ try {
97
+ const res = await this.client.send(command, { abortSignal: options?.signal });
98
+ const responseBody = JSON.parse(new TextDecoder().decode(res.body));
99
+ return responseBody.embedding;
100
+ } catch (e) {
101
+ const err = e as Error & { $metadata: any };
102
+ throw AgentRuntimeError.chat({
103
+ error: {
104
+ body: err.$metadata,
105
+ message: err.message,
106
+ type: err.name,
107
+ },
108
+ errorType: AgentRuntimeErrorType.ProviderBizError,
109
+ provider: ModelProvider.Bedrock,
110
+ region: this.region,
111
+ });
112
+ }
113
+ };
53
114
 
54
115
  private invokeClaudeModel = async (
55
116
  payload: ChatStreamPayload,