bda4e92113bd080f2b03eecd8cf67dde04a2849c
TangledupAI API 数据库服务
这是一个基于 FastAPI 构建的后端 API 服务,为 TangledupAI 提供用户管理、Agent 卡片管理、对话管理和文件存储等功能。
功能特性
- 用户管理: 用户注册、查询、更新
- Agent 管理: 创建、查询、更新、删除 Agent 卡片
- 对话管理: 创建对话、保存消息
- 短信服务: 发送验证码短信
- 文件存储: 基于阿里云 OSS 的文件上传、删除、查询
- API 安全: 基于 API Key 的身份验证
技术栈
- 后端框架: FastAPI
- 数据库: PostgreSQL
- 对象存储: 阿里云 OSS
- 短信服务: 阿里云短信服务
- 部署: Docker & Docker Compose
项目结构
API_database/
├── main.py # 主应用程序入口
├── config.py # 配置管理
├── models.py # 数据模型
├── oss_service.py # 阿里云 OSS 服务
├── sms.py # 短信服务
├── utils.py # 工具函数
├── requirements.txt # Python 依赖
├── Dockerfile # Docker 镜像构建文件
├── docker-compose.yml # Docker Compose 配置
└── .env # 环境变量配置
安装与运行
环境要求
- Python 3.12+
- PostgreSQL 数据库
- 阿里云 OSS 账号
- 阿里云短信服务账号
本地开发
- 克隆仓库
git clone <repository-url>
cd API_database
- 安装依赖
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
- 配置环境变量
创建
.env文件并配置以下变量:
API_KEY=your_api_key
DB_HOST=your_db_host
DB_PORT=your_db_port
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_SSLMODE=disable
# 阿里云 OSS 配置
OSS_ACCESS_KEY_ID=your_oss_access_key_id
OSS_ACCESS_KEY_SECRET=your_oss_access_key_secret
OSS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com
OSS_BUCKET_NAME=your_bucket_name
- 启动应用
uvicorn main:app --reload --host 0.0.0.0 --port 9090
Docker 部署
- 使用 Docker Compose
# 设置环境变量
export API_KEY=your_api_key
export DB_HOST=your_db_host
export DB_PORT=your_db_port
export DB_NAME=your_db_name
export DB_USER=your_db_user
export DB_PASSWORD=your_db_password
export DB_SSLMODE=disable
# 启动服务
docker-compose up -d
- 或者直接使用 Docker
docker build -t tangledup-api .
docker run -d -p 9090:9090 \
-e API_KEY=your_api_key \
-e DB_HOST=your_db_host \
-e DB_PORT=your_db_port \
-e DB_NAME=your_db_name \
-e DB_USER=your_db_user \
-e DB_PASSWORD=your_db_password \
-e DB_SSLMODE=disable \
tangledup-api
API 文档
启动服务后,可以通过以下地址访问 API 文档:
- Swagger UI: http://localhost:9090/docs
- ReDoc: http://localhost:9090/redoc
API 端点
用户管理
POST /register/- 用户注册GET /user/{phone}- 获取用户信息PUT /user/{phone}- 更新用户信息
Agent 管理
POST /new_agent/- 创建 Agent 卡片GET /agents/{phone}- 获取用户的所有 Agent 卡片GET /agent_id/{agent_id}- 根据 ID 获取 Agent 卡片PUT /agent/{phone_number}/{agent_name}- 更新 Agent 卡片PUT /agent_id/{agent_id}- 根据 ID 更新 Agent 卡片DELETE /agent/{phone_number}/{agent_name}- 删除 Agent 卡片DELETE /agent_id/{agent_id}- 根据 ID 删除 Agent 卡片
对话管理
POST /conversations/- 创建新对话POST /messages/- 保存消息
文件上传
POST /upload_image/- 上传图片POST /upload- 上传文件到 OSS
短信服务
POST /api/send-sms- 发送短信GET /api/sms-records- 获取短信记录
OSS 服务
POST /test/- 测试 OSS 连接
身份验证
所有 API 端点都需要在请求头中包含有效的 API Key:
x-api-key: 123tangledup-ai
数据库表结构
users 表
- phone_number: 手机号码 (主键)
- user_name: 用户名
- user_details: 用户详情
- avatar: 头像URL
- email: 邮箱
- points: 积分
- create_date: 创建时间
agent_cards 表
- card_id: 卡片ID (主键)
- phone_number: 用户手机号码
- card_info: 卡片信息
- agent_avatar_url: Agent头像URL
- agent_prompt: Agent提示
- agent_name: Agent名称
- is_publish: 是否发布
- create_date: 创建时间
- voice_type: 语音类型
- temperature: 温度参数
conversations 表
- conversation_id: 对话ID (主键)
- user_phone: 用户手机号码
- visitor_key: 访客密钥
- agent_card_id: Agent卡片ID
messages 表
- message_id: 消息ID (主键)
- conversation_id: 对话ID
- sender: 发送者 (user/agent)
- content: 消息内容
- order: 消息顺序
贡献指南
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature) - 提交您的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
联系方式
如有问题或建议,请联系项目维护者。
Description
Languages
Python
87%
Shell
12%
Dockerfile
1%