Files
api_database-api/README.md
jeremygan2021 4467d5211e sms
2026-02-16 19:14:45 +08:00

5.2 KiB
Raw Blame History

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 账号
  • 阿里云短信服务账号

本地开发

  1. 克隆仓库
git clone <repository-url>
cd API_database
  1. 安装依赖
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
  1. 配置环境变量 创建 .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
  1. 启动应用
uvicorn main:app --reload --host 0.0.0.0 --port 9090

Docker 部署

  1. 使用 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
  1. 或者直接使用 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 文档:

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 - 发送验证码
  • POST /api/send-sms/diy - 发送定制短信
  • 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: 消息顺序

贡献指南

  1. Fork 本仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

联系方式

如有问题或建议,请联系项目维护者。