- 创建一个web版AI大模型聊天机器人,不需要自己实现大模型API,只需要调用传入的API即可
- 支持通过环境变量或配置文件(config.yaml)传入自定义的API_KEY, MODEL_ID, BASE_URL
- 支持配置多个大模型API,在页面中可切换选择
- 每个用户的会话状态完全隔离(模型选择、记忆轮数、系统提示词、思考能力设置)
- 在页面中允许用户修改聊天机器人能够记住的对话轮数
- 如果调用的大模型API返回内容包含思考过程,要能够显示思考内容
- 编写Dockerfile,因为最终要能打包成Docker镜像
- 使用uv进行Python包管理
- 使用Python 3.12
- 使用Gradio6创建聊天机器人
- 使用openai的SDK
- Python代码要使用类型注解
- 使用TypedDict定义配置和状态的数据结构
- 函数要有清晰的docstring
- 配置加载要有验证机制,配置错误时给出友好提示并退出
- 配置系统:优先读取config.yaml,不存在时回退到环境变量
- 多模型支持:config.yaml可配置多个模型,页面下拉框切换
- 用户会话隔离:使用gr.State存储每个用户的独立状态
- 客户端缓存:按model_id缓存OpenAI客户端,避免重复创建
- 并发控制:使用Gradio队列,支持5个并发对话
- 异常处理:细化API错误类型(认证失败、限流、服务异常),提供中文错误提示