sms 更新
This commit is contained in:
216
TangledUp-AI_dataBase_fastAPI-main/README.md
Normal file
216
TangledUp-AI_dataBase_fastAPI-main/README.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# 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. 克隆仓库
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd API_database
|
||||
```
|
||||
|
||||
2. 安装依赖
|
||||
```bash
|
||||
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
|
||||
```
|
||||
|
||||
3. 配置环境变量
|
||||
创建 `.env` 文件并配置以下变量:
|
||||
```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
|
||||
```
|
||||
|
||||
4. 启动应用
|
||||
```bash
|
||||
uvicorn main:app --reload --host 0.0.0.0 --port 9090
|
||||
```
|
||||
|
||||
### Docker 部署
|
||||
|
||||
1. 使用 Docker Compose
|
||||
```bash
|
||||
# 设置环境变量
|
||||
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
|
||||
```
|
||||
|
||||
2. 或者直接使用 Docker
|
||||
```bash
|
||||
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: 消息顺序
|
||||
|
||||
## 贡献指南
|
||||
|
||||
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](LICENSE) 文件了解详情。
|
||||
|
||||
## 联系方式
|
||||
|
||||
如有问题或建议,请联系项目维护者。
|
||||
Reference in New Issue
Block a user