一、 KrillinAI 是什么?
KrillinAI 是一个开源的本地 AI 聊天 Web UI,构建在强大的 Ollama 之上。它提供了一个直观、易用的界面,让你可以在自己的计算机上与各种开放的大型语言模型(如 Llama 3, Mistral, Gemma, Phi-3 等)进行交互。
核心目标: 成为一个功能丰富的本地 AI 工作台,不仅仅局限于简单的文本聊天,还集成了 RAG(检索增强生成)、图像生成、Web 搜索等多种实用功能。
二、 为什么选择 KrillinAI?
使用 KrillinAI 部署本地 AI 应用,可以带来诸多好处:
-
数据隐私与安全: 所有模型运行和数据处理都在本地进行,你的聊天记录、上传的文档等敏感信息不会发送到任何第三方服务器,最大限度地保障了数据隐私。
-
成本效益: 无需支付昂贵的 API 调用费用。一旦模型下载到本地,你可以无限制地使用它们。
-
离线可用: 基本的聊天功能可以在没有互联网连接的情况下运行(前提是模型已下载)。
-
模型多样性: 借助 Ollama,你可以轻松下载和切换使用社区提供的各种优秀开源 LLM。
-
功能集成: 除了基础聊天,KrillinAI 还提供了 RAG、图像生成(需配合 Stable Diffusion Web UI)、Web 搜索等高级功能,提供一站式 AI 体验。
-
学习与探索: 对于 AI 开发者和爱好者来说,这是一个很好的学习平台,可以深入了解 LLM 应用、RAG 实现、前后端交互等技术。
-
可定制性: 开源项目允许你根据自己的需求进行修改和扩展。
三、 KrillinAI 的核心功能
KrillinAI 不断迭代,目前已具备以下核心功能:
-
本地 LLM 聊天: 通过简洁的 Web 界面与本地运行的 Ollama 模型进行流畅对话。
-
模型管理: 在界面中方便地查看、添加(通过 Ollama 拉取)、删除本地模型。
-
多模态支持 (初步): 支持可以处理图像输入的视觉模型 (Vision Models)。
-
聊天管理: 创建、保存、加载和管理多个聊天会话。
-
提示词模板 (Prompt Templates): 创建和使用自定义的提示词模板,优化模型输出。
-
RAG (Retrieval-Augmented Generation):
-
上传本地文档(如 PDF, TXT, Markdown 等)。
-
KrillinAI 会对文档进行处理和向量化(使用 ChromaDB 作为向量数据库)。
-
在聊天时,可以引用这些文档,让模型基于文档内容进行回答,实现知识库问答。
-
-
图像生成:
-
集成 Stable Diffusion Web UI (AUTOMATIC1111)
-
你可以在 KrillinAI 界面中输入提示词,调用本地运行的 Stable Diffusion 服务生成图像。
-
-
Web 搜索集成: 允许 AI 在回答问题时查询互联网获取最新信息。
-
Agent 系统 (实验性): 探索更复杂的任务自动化和多步推理能力。
-
OpenAI API 兼容: 可以配置使用符合 OpenAI API 规范的模型端点。
四、 技术栈
了解 KrillinAI 的技术栈有助于开发者理解其架构和进行二次开发:
-
前端: React, TypeScript, Tailwind CSS
-
后端: Python, FastAPI
-
LLM 服务: Ollama (核心依赖)
-
向量数据库 (RAG): ChromaDB
-
运行环境: Docker, Docker Compose (推荐)
五、 本地部署指南
部署 KrillinAI 非常简单,官方推荐使用 Docker Compose。
前提条件:
-
Git: 用于克隆项目仓库。
-
Docker 和 Docker Compose: 用于构建和运行容器化应用。请确保已正确安装并运行。(Docker Desktop是一个不错的选择)。
-
Ollama: 这是核心依赖! 你需要先在你的机器上安装并运行 Ollama。
-
访问 Ollama 官网下载并安装。
-
重要: 启动 Ollama 服务。安装后通常会自动启动,可以通过命令行检查 (ollama -v) 或查看系统托盘图标。
-
拉取模型: 在部署 KrillinAI 之前或之后,你需要使用 Ollama 命令行拉取至少一个你想使用的模型。例如:
ollama pull llama3 # 拉取 Meta 的 Llama 3 模型 ollama pull mistral # 拉取 Mistral AI 的 Mistral 模型 ollama pull qwen:7b # 拉取通义千问 7B 模型
可以通过 ollama list 查看已下载的模型。
-
-
(可选) Stable Diffusion Web UI (AUTOMATIC1111): 如果你需要使用图像生成功能,你需要单独部署并运行这个项目。确保其 API 服务是开启的。
部署步骤:
-
克隆 KrillinAI 仓库:
git clone https://github.com/krillinai/KrillinAI.git cd KrillinAI
content_copydownload
Use code with caution.Bash -
配置环境变量 (重要):
-
项目根目录下有一个 .env.example 文件。复制它并重命名为 .env:
cp .env.example .env
-
编辑 .env 文件: 这是关键步骤,你需要根据你的本地环境修改配置。最重要的几个配置项:
-
OLLAMA_BASE_URL: 必须配置! 默认是 http://localhost:11434。如果你的 Ollama 运行在不同的地址或端口(例如,运行在 Docker 容器内,需要访问宿主机的 Ollama),你需要修改这里。常见情况: 如果 KrillinAI 和 Ollama 都运行在宿主机,此默认值通常可用。如果 KrillinAI 运行在 Docker 内而 Ollama 运行在宿主机,可能需要将其改为 http://host.docker.internal:11434 (Docker Desktop for Mac/Windows) 或宿主机的实际 IP 地址。请查阅 Docker 网络文档获取具体信息。
-
CHROMA_HOST: 向量数据库的主机名,使用 Docker Compose 部署时通常保持默认 chroma 即可。
-
AUTOMATIC1111_BASE_URL: 如果你要使用图像生成功能,必须配置 为你的 Stable Diffusion Web UI API 地址,例如 http://localhost:7860 或 http://host.docker.internal:7860 (同样注意 Docker 网络)。
-
WEB_SEARCH_ENGINE: 配置网页搜索引擎,例如 duckduckgo。
-
其他配置项(如 JWT 密钥 SECRET_KEY)可以保持默认或根据需要修改。
-
-
-
使用 Docker Compose 构建并启动服务:
-
在项目根目录(包含 docker-compose.yml 文件的目录)下运行:
docker-compose up --build -d
-
--build: 首次运行时或代码更新后需要构建镜像。
-
-d: 在后台(detached mode)运行。
-
-
Docker Compose 会自动拉取所需镜像(如 Python, Node, ChromaDB),构建 KrillinAI 的前端和后端镜像,并启动所有服务(前端、后端、向量数据库)。
-
-
访问 KrillinAI:
-
等待 Docker Compose 启动完成(可以在 Docker Desktop 中查看容器状态)。
-
打开浏览器,访问 http://localhost:3000 (这是前端服务的默认端口,如果端口冲突,你可能需要在 docker-compose.yml 中修改)。
-
-
确认 Ollama 连接:
-
进入 KrillinAI 界面后,通常在设置或模型管理部分,应该能看到你通过 Ollama 拉取的模型列表。如果列表为空或报错,请检查 .env 文件中的 OLLAMA_BASE_URL 配置是否正确,以及 Ollama 服务是否正常运行。
-
六、 如何使用 KrillinAI
成功部署后,使用 KrillinAI 非常直观:
-
选择模型: 在界面左侧或顶部通常有模型选择下拉框,选择一个你已下载的 Ollama 模型。
-
开始聊天: 在输入框中输入你的问题或指令,然后发送。
-
管理聊天: 可以新建聊天会话,或者从历史记录中加载之前的对话。
-
使用 RAG:
-
找到文档上传或知识库管理的功能入口。
-
上传你的 PDF、TXT 等文件。KrillinAI 会在后台进行处理(可能需要一些时间)。
-
在聊天设置中,选择关联你上传的文档(或整个知识库)。
-
现在向模型提问时,它会优先参考你提供的文档内容。
-
-
使用图像生成:
-
确保你的 Stable Diffusion Web UI 正在运行,并且 API 地址已在 .env 中正确配置。
-
在 KrillinAI 中找到图像生成功能(可能是一个特定的模式或指令)。
-
输入图像描述提示词,KrillinAI 会调用 Stable Diffusion API 生成图像并显示。
-
-
探索其他功能: 尝试使用提示词模板、Web 搜索开关、调整模型参数(如 Temperature)等。
七、 注意事项与后续
-
性能: LLM 对计算资源要求较高,尤其是大型模型。流畅运行可能需要较好的 CPU、足够的内存,强烈推荐使用 GPU (NVIDIA) 进行加速(需要正确配置 Ollama 的 GPU 支持)。
-
模型下载: 模型文件通常很大(几 GB 到几十 GB),下载需要时间和存储空间。
-
项目更新: KrillinAI 是一个活跃的开源项目,功能会不断增加和改进。建议关注 GitHub 仓库,定期 git pull 更新代码并重新构建 Docker 镜像 (docker-compose up --build -d)。更新前请注意查看发布说明,了解是否有重大变更或配置调整。
-
社区支持: 如果遇到问题,可以查看 GitHub Issues 或参与社区讨论。
八、 总结
KrillinAI 为希望在本地运行 AI 大模型的用户提供了一个功能强大且易于部署的解决方案。它整合了基础聊天、高级 RAG、图像生成等多种能力,并通过 Ollama 支持丰富的开源模型生态。无论你是注重隐私的用户、希望节省成本的开发者,还是热衷于探索 AI 前沿技术的学习者,KrillinAI 都值得一试。