225 lines
5.3 KiB
Markdown
225 lines
5.3 KiB
Markdown
# 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)。 |