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

5.3 KiB
Raw Blame History

RPA Chat API 文档

项目简介

本项目是一个基于 FastAPIOpenAI GPT 模型 的聊天接口服务。该服务实现了一个 RPA机器人流程自动化助手,根据用户的输入生成标准化的 RPA 操作命令,并通过 JSON 格式返回响应。


功能概述

  1. 与 OpenAI GPT 模型交互

    • 用户输入文本,服务会通过 OpenAI API 与 GPT 模型交互,生成相应的 RPA 命令。
  2. 标准化 RPA 命令输出

    • 支持生成多种 RPA 命令如文件操作、Excel 操作、二维码生成等),并以标准的 JSON 格式返回。
  3. 会话管理

    • 支持维护对话历史记录,通过日志文件保存用户与 AI 的交互内容。
  4. 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"
}

响应参数

  • responseGPT 的自然语言回复。
  • 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 命令包括:

  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. 字符串转 ASCIILan.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"}}]

测试示例

使用工具如 Postmancurl 测试 API

测试 /chat

curl -X POST "http://0.0.0.0:11089/chat" \
-H "Content-Type: application/json" \
-d '{"message": "请复制文件A到路径B。"}'

依赖库

  • FastAPIWeb 框架。
  • OpenAI:与 GPT 模型交互的库。
  • Pydantic:数据验证。
  • UvicornASGI 服务器。

安装依赖:

pip install fastapi uvicorn pydantic openai

注意事项

  1. API 密钥保护:请确保 API 密钥安全,不要在公共环境中泄露。
  2. 系统提示更新rpa_client.py 中的 rpa_prompt 可以根据具体 RPA 需求进行调整。
  3. 路径访问安全allowed_paths 参数可用于限制文件操作的访问路径。

许可证

本项目基于 MIT License