Home

Awesome

🇨🇳中文 | 🌐English

<div align="center"> <a href="https://github.com/shibing624/ChatPilot"> <img src="https://github.com/shibing624/ChatPilot/blob/main/docs/favicon.png" height="150" alt="Logo"> </a> </div>

ChatPilot: Chat Agent Web UI

PyPI version Downloads Contributions welcome License Apache 2.0 python_version GitHub issues Wechat Group

ChatPilot: Chat Agent WebUI, 实现了AgentChat对话,支持Google搜索、文件网址对话(RAG)、代码解释器功能,复现Kimi Chat(文件,拖进来;网址,发出来),支持OpenAI/Azure API。

Features

Demo

Official Demo: https://chat.mulanai.com

Getting Started

Run ChatPilot in Docker

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

You'll find ChatPilot running at http://0.0.0.0:8080 Enjoy! 😄

本地启动服务

git clone https://github.com/shibing624/ChatPilot.git
cd ChatPilot
pip install -r requirements.txt

# Copying required .env file, and fill in the LLM api key
cp .env.example .env

bash start.sh

好了,现在你的应用正在运行:http://0.0.0.0:8080 Enjoy! 😄

构建前端web

两种方法构建前端:

  1. 下载打包并编译好的前端 buid.zip 解压到项目web目录下。
  2. 如果修改了web前端代码,需要自己使用npm重新构建前端:
git clone https://github.com/shibing624/ChatPilot.git
cd ChatPilot/

# Building Frontend Using Node.js >= 20.10
cd web
npm install
npm run build

输出:项目web目录产出build文件夹,包含了前端编译输出文件。

多种LLM接入

使用OpenAI Api接入GPT系列模型

export OPENAI_API_KEY=xxx
export OPENAI_BASE_URL=https://api.openai.com/v1
export MODEL_TYPE="openai"
export AZURE_OPENAI_API_KEY=
export AZURE_OPENAI_API_VERSION=
export AZURE_OPENAI_ENDPOINT=
export MODEL_TYPE="azure"

使用Ollama Api接入各种本地开源模型

ollama serve启动ollama服务,然后配置OLLAMA_API_URLexport OLLAMA_API_URL=http://localhost:11413

使用litellm Api接入各云服务部署模型

  1. 安装litellm包:
pip install litellm -U
  1. 修改配置文件

chatpilot默认的litellm config文件在~/.cache/chatpilot/data/litellm/config.yaml

修改其内容如下:

model_list:
#  - model_name: moonshot-v1-auto # show model name in the UI
#    litellm_params: # all params accepted by litellm.completion() - https://docs.litellm.ai/docs/completion/input
#      model: openai/moonshot-v1-auto # MODEL NAME sent to `litellm.completion()` #
#      api_base: https://api.moonshot.cn/v1
#      api_key: sk-xx
#      rpm: 500      # [OPTIONAL] Rate limit for this deployment: in requests per minute (rpm)

  - model_name: deepseek-ai/DeepSeek-Coder # show model name in the UI
    litellm_params: # all params accepted by litellm.completion() - https://docs.litellm.ai/docs/completion/input
      model: openai/deepseek-coder # MODEL NAME sent to `litellm.completion()` #
      api_base: https://api.deepseek.com/v1
      api_key: sk-xx
      rpm: 500
  - model_name: openai/o1-mini # show model name in the UI
    litellm_params: # all params accepted by litellm.completion() - https://docs.litellm.ai/docs/completion/input
      model: o1-mini # MODEL NAME sent to `litellm.completion()` #
      api_base: https://api.61798.cn/v1
      api_key: sk-xxx
      rpm: 500
litellm_settings: # module level litellm settings - https://github.com/BerriAI/litellm/blob/main/litellm/__init__.py
  drop_params: True
  set_verbose: False

Contact

<img src="docs/wechat.jpeg" width="200" />

Citation

如果你在研究中使用了ChatPilot,请按如下格式引用:

APA:

Xu, M. ChatPilot: LLM agent toolkit (Version 0.0.2) [Computer software]. https://github.com/shibing624/ChatPilot

BibTeX:

@misc{ChatPilot,
  author = {Ming Xu},
  title = {ChatPilot: llm agent},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/shibing624/ChatPilot}},
}

License

授权协议为 The Apache License 2.0,可免费用做商业用途。请在产品说明中附加ChatPilot的链接和授权协议。

Contribute

项目代码还很粗糙,如果大家对代码有所改进,欢迎提交回本项目,在提交之前,注意以下两点:

之后即可提交PR。

Reference