基于fastapi + langchain + itchat 搭建的微信聊天机器人,灵感来自于 chatgpt-on-wechat 项目
你的star就是对我最大的鼓励🤩
Note
本项目仅供个人学习交流使用,使用者必须遵循 OpenAI 的使用条款以及 **中国法律法规 ** 使用,不得用于非法用途。
根据《生成式人工智能服务管理暂行办法》 的要求,请勿对中国地区公众提供一切未经备案的生成式人工智能服务。
默认助理模式执行,会配置各种工具,LLM自动选择合适的工具进行调用,例如调用DuCKDuckGo搜索引擎,对搜索后的结果进行总结,返回给用户。
- 接收单人文本消息回复
- 接收群消息@当前用户 文本消息回复
- ...
- openai
- ...
- duckduckgo 搜索
- ...
需要提供一组文档,然后根据用户的问题,返回最相关的文档片段。
-
准备OpenAI账号 项目默认使用OpenAI接口,需前往OpenAI注册页面 创建账号,创建完账号则前往API管理页面创建一个 API Key 并保存下来,接口需要海外网络访问及绑定信用卡支付。
-
将API Key添加到环境变量中
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxx"
-
安装Python 代码通过Python3.10进行开发测试,需要安装python 3.10 ,下载后点击安装傻瓜式下一步。
redis用于存储微信用户聊天记录
docker run -d -p 6379:6379 -p 8001:8001 redis/redis-stack:latest
poetry install
或者
pip install -r requirements.txt
cp config/.env.example config/.env
uvicorn src.main:app
在config/.env文件中配置
# openai 模型
OPENAI_MODEL="gpt-3.5-turbo-1106"
# openai api key
OPENAI_API_KEY="your-openai-api-key"
# 模型 temperature
AI_TEMPERATURE=0.7
# 模型系统角色提示词
AI_SYSTEM_ROLE_PROMPT="系统:"
# 聊天记录保存最大长度
CHAT_MAX_MESSAGE_HISTORY_LENGTH=10
# 触发聊天记录总结的阈值
CHAT_MESSAGE_HISTORY_SUMMARY_THRESHOLD=5
# 微信是否开启热重载
WECHAT_HOT_RELOAD=False
# 微信用户数据保存路径
WECHAT_USER_DATA_STORAGE_PATH="wechat.pkl"