- 重构目录结构,将配置和日志模块分离到独立目录 - 创建 config/ 目录,统一管理平台配置和 API 密钥 - 创建 core/ 目录,集中管理日志系统功能 - 创建 database/ 目录,添加 SQLite 数据库初始化和管理 - 删除不必要的文件:测试文件、缓存文件、重复代码文件 - 更新所有导入路径,确保模块引用正确 主要变更: - config.py → config/settings.py - utils/logger.py → core/logger.py - init_logging.py → core/init.py - 删除 logging.conf(配置已整合到代码中) - 新增 database/__init__.py 提供数据库连接管理 改进点: - 更清晰的模块划分,便于维护和扩展 - 避免命名冲突(logging 模块与 Python 标准库冲突) - 统一的配置和日志管理接口 |
||
|---|---|---|
| .. | ||
| adapters | ||
| api | ||
| config | ||
| core | ||
| database | ||
| models | ||
| utils | ||
| README.md | ||
| __init__.py | ||
| main.py | ||
| requirements.txt | ||
README.md
Python AI Chat Server
这是原有Node.js服务器的Python替代版本,使用FastAPI和DashScope Python SDK连接阿里云百炼平台API。
特性
- 基于FastAPI的高性能异步服务器
- 支持流式和非流式对话
- 完全兼容前端API端点
- 支持多模态输入(文本+图像)
- 集成阿里云百炼API
- 文件上传功能
- 对话历史管理
安装要求
- Python 3.8+
- pip包管理器
安装步骤
-
克隆或复制代码
-
安装Python依赖:
cd server pip install -r requirements.txt -
配置环境变量:
cp .env.example .env编辑
.env文件,填入您的阿里云百炼API密钥:ALIYUN_API_KEY=your_actual_api_key_here
启动服务器
方法一:直接运行
python run_server.py
方法二:使用uvicorn
uvicorn app:app --host 0.0.0.0 --port 8000 --reload
API端点
服务器提供了与原Node.js版本完全相同的API端点:
POST /api/chat-ui/chat- 聊天接口(支持流式和非流式)GET /api/chat-ui/models- 获取模型列表GET /api/chat-ui/conversations- 获取所有对话GET /api/chat-ui/conversations/{id}- 获取特定对话POST /api/chat-ui/conversations- 保存/更新对话DELETE /api/chat-ui/conversations/{id}- 删除对话POST /api/chat-ui/upload- 文件上传POST /api/chat-ui/stop- 停止生成POST /api/chat-ui/stop/{id}- 按ID停止生成GET /health- 健康检查
前端配置
修改Vite配置(vite.config.ts)中的代理目标:
server: {
proxy: {
"/api/chat-ui": {
target: "http://localhost:8000", // 修改为Python服务器端口
changeOrigin: true,
},
},
},
环境变量
ALIYUN_API_KEY: 阿里云百炼API密钥(必填)PORT: 服务器端口(默认8000)
依赖说明
fastapi: 现代高性能web框架uvicorn: ASGI服务器dashscope: 阿里云百炼SDKpython-multipart: 处理文件上传python-dotenv: 环境变量管理
错误排查
- API密钥错误: 确保在
.env文件中正确设置了ALIYUN_API_KEY - 端口冲突: 检查8000端口是否被占用,可以修改
.env中的PORT变量 - 依赖问题: 确保已正确安装所有依赖
注意事项
- Python服务器提供了与Node.js服务器相同的功能和API接口
- 保留了原有的日志记录机制
- 对话数据仍存储在内存中,生产环境建议使用数据库
- 支持与原前端应用无缝集成