JIAP/README.md

225 lines
5.3 KiB
Markdown
Raw Permalink Normal View History

2024-12-19 02:15:23 +00:00
# RPA Chat API 文档
## 项目简介
本项目是一个基于 **FastAPI****OpenAI GPT 模型** 的聊天接口服务。该服务实现了一个 **RPA机器人流程自动化助手**,根据用户的输入生成标准化的 RPA 操作命令,并通过 JSON 格式返回响应。
---
## 功能概述
1. **与 OpenAI GPT 模型交互**
- 用户输入文本,服务会通过 OpenAI API 与 GPT 模型交互,生成相应的 RPA 命令。
2. **标准化 RPA 命令输出**
- 支持生成多种 RPA 命令如文件操作、Excel 操作、二维码生成等),并以标准的 JSON 格式返回。
3. **会话管理**
- 支持维护对话历史记录,通过日志文件保存用户与 AI 的交互内容。
4. **API 端点**
- 提供聊天、获取会话历史、清除会话历史的 REST API。
---
## 目录结构
```plaintext
project/
├── rpa_api.py # API 服务器代码
├── rpa_client.py # 客户端配置和 RPA 系统提示
├── rpa_conversation.log # 会话日志文件
├── requirements.txt # 依赖包列表
└── README.md # 项目文档
```
---
## 安装与运行
### 1. 环境准备
确保已安装 **Python 3.8+****pip**
### 2. 安装依赖
执行以下命令安装必要的依赖包:
```bash
pip install -r requirements.txt
```
### 3. 配置 OpenAI API
-`rpa_client.py` 中替换为你的 OpenAI API 密钥和 GPT 服务地址:
```python
api_key = "your-openai-api-key" # 替换为您的 OpenAI API 密钥
base_url = "http://52.90.243.11:8787/v1" # OpenAI 服务地址
```
### 4. 启动 API 服务
运行以下命令启动 FastAPI 服务器:
```bash
python rpa_api.py
```
服务器默认运行在 `http://0.0.0.0:11089`
---
## API 文档
### 1. 聊天接口POST
**路径**`/chat`
**描述**:接收用户消息,与 OpenAI GPT 模型交互,返回 RPA 命令。
#### 请求参数
- **message** *(必填)*:用户输入的消息文本。
- **allowed_paths** *(可选)*:指定文件操作允许的路径。
示例请求:
```json
{
"message": "请复制文件A到路径B。",
"allowed_paths": "/allowed/directory"
}
```
#### 响应参数
- **response**GPT 的自然语言回复。
- **commands**:生成的 RPA 命令列表。
示例响应:
```json
{
"response": "好的,文件已准备复制。",
"commands": [
{
"command": "Lan.Core.Activities.Copy",
"parameters": {
"SourceFilePath": "/path/to/fileA",
"TargetFilePath": "/path/to/destination",
"Overwrite": "是"
}
}
]
}
```
---
### 2. 获取会话历史GET
**路径**`/conversations/{conversation_id}`
**描述**:获取指定会话的历史记录。
#### 请求参数
- **conversation_id** *(必填)*:会话唯一标识符。
#### 示例响应
```json
[
{"role": "system", "content": "您是一名RPA助手..."},
{"role": "user", "content": "请复制文件A到路径B。"},
{"role": "assistant", "content": "好的,文件已准备复制。"}
]
```
---
### 3. 清除会话历史DELETE
**路径**`/conversations/{conversation_id}`
**描述**:清除指定会话的历史记录,保留系统提示。
#### 示例响应
```json
{
"status": "success"
}
```
---
## RPA 命令列表
本项目支持的 RPA 命令包括:
1. **文件复制**`Lan.Core.Activities.Copy`
2. **读取 Excel 单元格**`Lan.Office.Activities.Excel.ReadCell`
3. **写入 Excel 单元格**`Lan.Office.Activities.Excel.WriteCell`
4. **合并/取消合并单元格**`Lan.Office.Activities.Excel.MergeRange`
5. **关闭 Word 文档**`Lan.OfficeCom.Activities.CloseDocument`
6. **读取 Word 文档内容**`Lan.OfficeCom.Activities.ReadDocumentText`
7. **生成二维码**`Lan.Integration.Activities.GenerateQRCode`
8. **解析二维码**`Lan.Integration.Activities.ParsingQRCode`
9. **ASCII 转字符串**`Lan.Core.Activities.ASCIIToString`
10. **字符串转 ASCII**`Lan.Core.Activities.StringToASCII`
---
## 日志记录
- 服务端交互日志会记录在 `rpa_conversation.log` 文件中。
- 日志示例:
```plaintext
2024-04-28 12:00:00 - INFO - User: 请复制文件A到路径B。
2024-04-28 12:00:01 - INFO - Assistant: 好的,文件已准备复制。
2024-04-28 12:00:01 - INFO - Commands: [{"command": "Lan.Core.Activities.Copy", "parameters": {"SourceFilePath": "/path/to/fileA", "TargetFilePath": "/path/to/destination"}}]
```
---
## 测试示例
使用工具如 **Postman**`curl` 测试 API
### 测试 `/chat`
```bash
curl -X POST "http://0.0.0.0:11089/chat" \
-H "Content-Type: application/json" \
-d '{"message": "请复制文件A到路径B。"}'
```
---
## 依赖库
- **FastAPI**Web 框架。
- **OpenAI**:与 GPT 模型交互的库。
- **Pydantic**:数据验证。
- **Uvicorn**ASGI 服务器。
安装依赖:
```bash
pip install fastapi uvicorn pydantic openai
```
---
## 注意事项
1. **API 密钥保护**:请确保 API 密钥安全,不要在公共环境中泄露。
2. **系统提示更新**`rpa_client.py` 中的 `rpa_prompt` 可以根据具体 RPA 需求进行调整。
3. **路径访问安全**`allowed_paths` 参数可用于限制文件操作的访问路径。
---
## 许可证
本项目基于 [MIT License](https://opensource.org/licenses/MIT)。