项目简介
这是一个基于Python的聊天应用项目,具备基本的聊天会话功能,包含用户身份验证、聊天消息收发、会话管理等。项目采用模块化设计,结构清晰,各部分功能独立,方便开发与维护,同时还提供命令行脚本和工具,便于日常操作。
项目的主要特性和功能
- 用户身份验证:使用JWT(JSON Web Tokens)确保只有授权用户能参与聊天。
- 聊天会话管理:支持创建、更新、删除聊天会话,允许用户加入和离开会话。
- 聊天消息处理:支持消息的发送、接收、创建、更新和删除。
- 数据库查询:利用SQL查询管理聊天会话和消息,保证数据持久化和查询效率。
- 错误处理:借助ERIS库处理错误,提供统一的错误响应和日志记录。
- 本地化:支持多语言,通过JSON文件存储和加载本地化字符串。
- 工具脚本:提供检查缺失本地化键、合并JSON文件、替换
docker-compose.yaml
文件标签等脚本工具。 - 静态文件嵌入:使用Python的
embed
包嵌入HTML、CSS和JavaScript等静态文件,让应用更紧凑高效。 - 差异文件处理:采用
difflib
库处理差异文件,支持在版本控制系统中应用特定代码更改集。
安装使用步骤
开发环境
- Golang环境
bash cd chat; cd api go mod tidy export PG_HOST=192.168.0.135 export PG_DB=hwu export PG_USER=hwu export PG_PASS=pass export PG_PORT=5432 make serve
- Node环境
bash cd ..; cd web npm install npm run dev
- 端到端测试
bash cd ..; cd e2e export PG_HOST=192.168.0.135 export PG_DB=hwu export PG_USER=hwu export PG_PASS=pass export PG_PORT=5432 npm install npx playwright test # --ui
部署
参考 docker-compose.yaml
进行部署。
点击 部署到 Railway。
配置环境变量:
PORT=8080
OPENAI_RATELIMIT=0
若有其他两个API key则填写。
部署后,注册用户,第一个用户为管理员,访问 https://$hostname/static/#/admin/user 设置速率限制。公网部署时,仅对信任的邮箱添加速率限制,确保只有授权用户可使用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】