JIAP/README.md
2024-12-19 10:15:23 +08:00

225 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)。