项目介绍:ChatPilot
ChatPilot 是一个功能强大且灵活的聊天代理(Chat Agent)Web用户界面。它能够模拟多种对话功能,如通过Google搜索、文件和网址对话(RAG)以及代码解释器功能,可以说是Kimi Chat功能的再现。此外,该项目支持使用OpenAI和Azure API,是一个极具扩展性的聊天平台。
项目特点
ChatPilot 依赖于 Agentica 实现了一系列丰富的功能:
-
工具调用:支持聊天代理调用外部工具,包括:
- 联网搜索工具:支持 Google Search API(Serper/DuckDuckGo)。
- URL自动解析工具:提供类似Kimi Chat的链接处理功能。
- Python代码解释器:支持E2B虚拟环境与本地Python编译器环境的代码运行。
-
多模型接入:ChatPilot支持多种大型语言模型(LLM)接入方式,包括:
- 使用 Ollama Api 连接本地开源模型。
- 使用 litellm Api 连接各类云服务模型。
- 使用 OpenAI Api 连接 GPT 系列模型。
-
文档问答 (RAG):支持调用RAG进行文件问答,实现与文件数据的自然沟通。
-
前后端分离架构:前端采用Svelte框架,后端使用FastAPI,提升了项目的扩展性与可维护性。
-
多媒体支持:支持语音输入输出及图像生成。
-
用户权限管理:提供全面的用户管理功能以及聊天记录的导入导出。
使用演示
用户可以通过官方网站 Demo: https://chat.mulanai.com 进行体验。
快速开始
使用Docker运行ChatPilot
可以通过以下命令快速在Docker中运行ChatPilot:
export OPENAI_API_KEY=sk-xxx
export OPENAI_BASE_URL=https://xxx/v1
docker run -it \
-e OPENAI_API_KEY=$WORKSPACE_BASE \
-e OPENAI_BASE_URL=$OPENAI_BASE_URL \
-e RAG_EMBEDDING_MODEL="text-embedding-ada-002" \
-p 8080:8080 --name chatpilot-$(date +%Y%m%d%H%M%S) shibing624/chatpilot:0.0.1
访问 http://0.0.0.0:8080,即可享受ChatPilot的所有功能。
在本地启动服务
若需要本地部署,以下步骤可以帮助完成:
git clone https://github.com/shibing624/ChatPilot.git
cd ChatPilot
pip install -r requirements.txt
# 复制并配置必要的 .env 文件
cp .env.example .env
bash start.sh
启用服务后,通过 http://0.0.0.0:8080 访问应用程序。
构建前端Web
有两种方式来构建前端:
- 下载并解压 已编译前端 至项目web目录。
- 自行构建前端:
git clone https://github.com/shibing624/ChatPilot.git
cd ChatPilot/
# 使用Node.js编译构建前端
cd web
npm install
npm run build
多种LLM接入方式
使用OpenAI API
配置环境变量以连接OpenAI的GPT模型:
export OPENAI_API_KEY=xxx
export OPENAI_BASE_URL=https://api.openai.com/v1
export MODEL_TYPE="openai"
使用Azure OpenAI API
同样,可以通过以下配置用于连接Azure的模型:
export AZURE_OPENAI_API_KEY=
export AZURE_OPENAI_API_VERSION=
export AZURE_OPENAI_ENDPOINT=
export MODEL_TYPE="azure"
通过Ollama与Litellm API
可以通过配置Ollama和Litellm来接入不同的模型并调整其设置。
联系方式与贡献
对于任何问题或建议,可以在 GitHub issue 中反馈,也可以通过邮件(xuming624@qq.com)或微信(微信号xuming624)与项目维护者联系。
ChatPilot 采用 Apache 2.0 许可协议,欢迎大家共同参与建设,如果对代码有改进建议,也欢迎提交PR!
参考资料
诚挚欢迎每一个希望改进ChatPilot的开发者加入我们的开源社区!