* feat: add new model provider: Novita AI * feat: finished novita AI * fix: code lint * remove unneeded logging * add back log for novita stream not self closing * Clarify ENV vars for LLM/embedder seperation for future Patch ENV check for workspace/agent provider --------- Co-authored-by: Jason <ggbbddjm@gmail.com> Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
13 KiB
AnythingLLM: 您一直在寻找的全方位AI应用程序。
与您的文档聊天,使用AI代理,高度可配置,多用户,无需繁琐的设置。
👉 适用于桌面(Mac、Windows和Linux)的AnythingLLM!立即下载
这是一个全栈应用程序,可以将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便任何大语言模型(LLM)在聊天期间作为参考使用。此应用程序允许您选择使用哪个LLM或向量数据库,同时支持多用户管理并设置不同权限。
产品概览
AnythingLLM是一个全栈应用程序,您可以使用现成的商业大语言模型或流行的开源大语言模型,再结合向量数据库解决方案构建一个私有ChatGPT,不再受制于人:您可以本地运行,也可以远程托管,并能够与您提供的任何文档智能聊天。
AnythingLLM将您的文档划分为称为workspaces
(工作区)的对象。工作区的功能类似于线程,同时增加了文档的容器化,。工作区可以共享文档,但工作区之间的内容不会互相干扰或污染,因此您可以保持每个工作区的上下文清晰。
AnythingLLM的一些酷炫特性
- 多用户实例支持和权限管理
- 工作区内的智能体Agent(浏览网页、运行代码等)
- 为您的网站定制的可嵌入聊天窗口
- 支持多种文档类型(PDF、TXT、DOCX等)
- 通过简单的用户界面管理向量数据库中的文档
- 两种对话模式:
聊天
和查询
。聊天模式保留先前的对话记录。查询模式则是是针对您的文档做简单问答 - 聊天中会提供所引用的相应文档内容
- 100%云部署就绪。
- “部署你自己的LLM模型”。
- 管理超大文档时高效、低耗。只需要一次就可以嵌入(Embedding)一个庞大的文档或文字记录。比其他文档聊天机器人解决方案节省90%的成本。
- 全套的开发人员API,用于自定义集成!
支持的LLM、嵌入模型、转录模型和向量数据库
支持的LLM:
- 任何与llama.cpp兼容的开源模型
- OpenAI
- OpenAI (通用)
- Azure OpenAI
- Anthropic
- Google Gemini Pro
- Hugging Face (聊天模型)
- Ollama (聊天模型)
- LM Studio (所有模型)
- LocalAi (所有模型)
- Together AI (聊天模型)
- Fireworks AI (聊天模型)
- Perplexity (聊天模型)
- OpenRouter (聊天模型)
- Novita AI (聊天模型)
- Mistral
- Groq
- Cohere
- KoboldCPP
支持的嵌入模型:
支持的转录模型:
- AnythingLLM内置 (默认)
- OpenAI
支持的向量数据库:
技术概览
这个单库由三个主要部分组成:
frontend
: 一个 viteJS + React 前端,您可以运行它来轻松创建和管理LLM可以使用的所有内容。server
: 一个 NodeJS express 服务器,用于处理所有交互并进行所有向量数据库管理和 LLM 交互。docker
: Docker 指令和构建过程 + 从源代码构建的信息。collector
: NodeJS express 服务器,用于从UI处理和解析文档。
🛳 自托管
Mintplex Labs和社区维护了许多部署方法、脚本和模板,您可以使用它们在本地运行AnythingLLM。请参阅下面的表格,了解如何在您喜欢的环境上部署,或自动部署。
Docker | AWS | GCP | Digital Ocean | Render.com |
---|---|---|---|---|
Railway |
---|
其他方案:不使用Docker配置AnythingLLM实例 →
如何设置开发环境
yarn setup
填充每个应用程序部分所需的.env
文件(从仓库的根目录)。- 在开始下一步之前,先填写这些信息
server/.env.development
,不然代码无法正常执行。
- 在开始下一步之前,先填写这些信息
yarn dev:server
在本地启动服务器(从仓库的根目录)。yarn dev:frontend
在本地启动前端(从仓库的根目录)。yarn dev:collector
然后运行文档收集器(从仓库的根目录)。
如何贡献
- 创建 issue
- 创建 PR,分支名称格式为
<issue number>-<short name>
- 合并
远程信息收集与隐私保护
由 Mintplex Labs Inc 开发的 AnythingLLM 包含一个收集匿名使用信息的 Telemetry 功能。
有关 AnythingLLM 的远程信息收集与隐私保护更多信息
为什么收集信息?
我们使用这些信息来帮助我们理解 AnythingLLM 的使用情况,帮助我们确定新功能和错误修复的优先级,并帮助我们提高 AnythingLLM 的性能和稳定性。
怎样关闭
通过在服务器或 docker 的 .env
设置中将 DISABLE_TELEMETRY
设置为 “true” 来选择退出 Telemetry 远程信息收集功能。您也可以进入 AnythingLLM 应用 >>> 侧边栏最下方 >>> 隐私和数据
(Privacy&Data) >>> 找到最下方的 Anonymous Telemetry Enabled,点击绿色按钮让它变灰色,从而禁用信息收集功能。
你们跟踪收集哪些信息?
我们只会跟踪有助于我们做出产品和路线图决策的使用细节,具体包括:
- 您的安装方式(Docker或桌面版)
- 文档被添加或移除的时间。但不包括文档内的具体内容。我们只关注添加或移除文档这个行为。这些信息能让我们了解到文档功能的使用情况。
- 使用中的向量数据库类型。让我们知道哪个向量数据库最受欢迎,并在后续更新中优先考虑相应的数据库。
- 使用中的LLM类型。让我们知道谁才是最受欢迎的LLM模型,并在后续更新中优先考虑相应模型。
- 信息被
发送
出去。这是最常规的“事件/行为/event”,并让我们了解到所有安装了这个项目的每日活动情况。同样,只收集发送
这个行为的信息,我们不会收集关于聊天本身的性质或内容的任何信息。
您可以通过查找所有调用Telemetry.sendTelemetry
的位置来验证这些声明。此外,如果启用,这些事件也会被写入输出日志,因此您也可以看到发送了哪些具体数据。不收集IP或其他识别信息。Telemetry远程信息收集的方案来自PostHog - 一个开源的远程信息收集服务。
🔗 更多产品
- VectorAdmin:一个用于管理向量数据库的全方位GUI和工具套件。
- OpenAI Assistant Swarm:一个智能体Agent就可以管理您所有的OpenAI助手。
版权所有 © 2024 Mintplex Labs。
本项目采用MIT许可证。