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