RPA与Coze API的结合使用

news/2025/2/22 16:22:55/文章来源:https://www.cnblogs.com/flyhgx/p/18727975

网上找了些资料,但是发现好多都是用的 Coze 的历史接口,现在新的 V3 接口处理方式包括字段和处理方式都不一样了,所以现在这个教程是基于最新版 V3 接口的。配置好 API 后,在影刀 RPA 中使用。

一、API 介绍
开发文档 : https://www.coze.cn/docs/developer_guides/coze_api_overview

目前 API 的调用是免费供开发者使用的,但是有一定的限制,包括频率和次数:

发起对话 API 的请求频率限制

QPS(每秒发送的请求数):2
QPM(每分钟发送的请求数):60
QPD(每天发送的请求数):3000
扣子基础版和专业版账号的 API 使用限额存在差异。

基础版:2024年8月15日之后,基础版为每个账号免费提供 100 次 API 调用,累计用量超出额度后无法使用扣子 API。
专业版:不限制调用 API 的频率和次数。调用发起对话 API, 按Token 消耗收取费用,其他接口免费。
二、准备工作
要使用 API 服务 ,在开始之前需要准备 3 个步骤:

1,将智能体发布为 API 服务。

2,添加访问令牌。

3,获取 bot_id

2.1) 发布 API 服务

在单个 Bot 的编排页面,点击「发布」按钮。

在发布页面,选择「Bot as API」

image

发布后,等平台审核通过,具体审核状态可以通过发布历史查看,具体为点击「发布记录」查看。

2.2 ) 添加访问令牌

登录 Coze 后,左侧菜单找到「扣子 API」

点击链接后,点击「授权」标签,个人访问信息,再添加新令牌。

勾选 Bot 管理的权限,注意添加时,令牌只会显示 1 次,所以一旦显示及时复制保存。

2.3 ) 获取 bot_id

从个人空间中,点击某个bot进去,在浏览器链接里面找到具体的id
image

经过上面几步准备工作,API 的准备工作就算完成了,如果想测试一下可以使用 CURL 命令,更改如下命令的

import requests
import timeAPI_URL = "https://api.coze.cn/v3/chat"
RETRIEVE_URL = "https://api.coze.cn/v3/chat/retrieve"
MESSAGE_LIST_URL = "https://api.coze.cn/v3/chat/message/list"
PAT_TOKEN = ""  # 替换为你的 Personal Access Token
BOT_ID = ""  # 替换为你的 bot_id
USER_ID = "123"  # 替换为你的 user_id
POLLING_INTERVAL = 2
MAX_RETRIES = 30# 函数:发送消息
def send_message_to_coze(message):headers = {"Authorization": f"Bearer {PAT_TOKEN}","Content-Type": "application/json"}data = {"bot_id": BOT_ID,"user_id": USER_ID,"stream": False,"auto_save_history": True,"additional_messages": [{"role": "user", "content": message, "content_type": "text"}]}response = requests.post(API_URL, json=data, headers=headers)return response.json() if response.status_code == 200 else None# 函数:轮询获取对话状态
def poll_conversation_status(conversation_id, chat_id):headers = {"Authorization": f"Bearer {PAT_TOKEN}","Content-Type": "application/json"}params = {"conversation_id": conversation_id, "chat_id": chat_id}for _ in range(MAX_RETRIES):response = requests.get(RETRIEVE_URL, headers=headers, params=params)if response.status_code == 200:conversation_data = response.json()if conversation_data.get("code") == 0:status = conversation_data["data"].get("status")if status == "completed":return conversation_data["data"]elif status == "failed":print("对话失败,无法获取最终结果。")return Nonetime.sleep(POLLING_INTERVAL)else:print("API调用失败,错误信息:", conversation_data.get("msg"))else:print(f"Error: HTTP {response.status_code}")return Noneprint("达到最大轮询次数,对话可能仍在进行中。")return None# 函数:获取对话的详细信息
def get_conversation_details(conversation_id, chat_id):headers = {"Authorization": f"Bearer {PAT_TOKEN}","Content-Type": "application/json"}params = {"conversation_id": conversation_id, "chat_id": chat_id}response = requests.get(MESSAGE_LIST_URL, headers=headers, params=params)return response.json() if response.status_code == 200 else None# 主程序:与 Coze 智能体进行对话
def main(message):print("正在与 Coze 智能体对话...")initial_response = send_message_to_coze(message)if not initial_response:return "无法获取初始响应。"conversation_id = initial_response.get("data", {}).get("conversation_id")chat_id = initial_response.get("data", {}).get("id")if not conversation_id or not chat_id:return "未获取到 conversation_id 或 chat_id,无法进行轮询。"final_status = poll_conversation_status(conversation_id, chat_id)if not final_status:return "无法获取对话的最终状态。"conversation_details = get_conversation_details(conversation_id, chat_id)if conversation_details:for message in details_data.get('data', []):if message.get('role') == 'assistant' and message.get('type') == 'answer':content = message.get('content', '没有回复内容')return contentreturn "无法获取对话的详细信息。"`
`
`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/887379.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑感觉速度比以前慢,清理了还是慢怎么办?你需要检查下CPU频率,看看是不是被锁频/降频了

0 问题 电脑总是感觉速度慢,清理了电脑,去掉了不必要的程序,还是感觉没有以前快。 我的是笔记本电脑,电脑外壳各个地方摸起来也不热,风扇转动正常。也没有灰尘,清理过。 1. 原因 一直也不知道咋回事,看系统进程时,无意中看到CPU频率仅有0.4GHz,且长期都是这样,这肯定不…

【模拟电子技术】45-信号转换电路

【模拟电子技术】45-信号转换电路 串联电流负反馈,下面的电路起到的作用是使得Io与RL无关,下面也是负反馈定性分析:RL增大,Io增大,Ro右侧电压下降,A1的同相输入端减小,Uo1减小,Io减小 定量分析:(R1=R2=R3=R4)电压并联负反馈最后是全波精密整流电路,老师说这种电路对…

2025.02.20

pjudge 太坏了密码的 pjudge 怎么这么坏,怎么交题不显示代码的。 vp,第一次打 pjudge,最后看到没显示代码慌了,然后乱交代码,把 t1 整 0 了。真的流汗了,我为什么这么唐。我 t2 又是怎么 75 的呢?🤓省流:没遍历 id 为 0 的边。 以后再也不写成 tot = -1 了😡。

ViT, Transformer架构出圈到cv

Vision Transformer(ViT)通过采用自注意力机制处理图像块,革新了图像识别方法,展现了在大规模数据集上超越传统卷积神经网络的潜力。一、技术背景 视觉识别的挑战与机遇 在Vision Transformer(ViT)提出之前,卷积神经网络(CNNs),如ResNet和VGG,主导了视觉识别领域。然…

k8s面

题1:Kubernetes Service 都有哪些类型? 通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。其主要类型有: ClusterIP:虚拟的服务IP地址,该地址用于Kubernetes集群内部的Pod访问,在Node上kube-proxy通…

DP优化

# DP优化 动态状态 一个转移只用到很小的一部分状态,则不断刷新状态,使得其只与我需要的同阶。 例题:P3188 [HNOI2007] 梦幻岛宝珠 前缀和优化 就是枚举的值存下来,以防止重复的枚举。 例题:2024.10.3T3 Kanade的水杯60分 路径化DP 将一个二维的、仅仅是在相邻位置进行转移…

DelayQueue的take方法底层原理

一、DelayQueue的take()方法底层原理 DelayQueue 的 take 方法是其核心方法之一,用于从队列中获取并移除延迟时间到期的元素。如果队列为空或没有延迟到期的元素,调用 take 方法的线程会阻塞,直到有元素到期 1、take 方法的核心逻辑 take 方法的主要逻辑可以分为以下几个步骤…

【模拟电子技术】43-44-波形发生和转换电路

【模拟电子技术】43-44-波形发生和转换电路 利用正弦波和单限比较器,可以做出占空比可调的方波。但在这里老师用另一种思路来产生方波,利用滞回比较器,但是滞回比较器充放电的速度是很快的,我们需要利用电容来控制充放电速度,才可以控制时间周期T。波形中的T利用基础电路中…

tcp 串口并存客户端

需要用的包:把之前的tcp修改成控件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using Syst…

使用streamlit创建一个产品指标与排名看板【2】创建一个使用sidebar+exec管理的多页面应用

1. Streamlit常见的多页面管理形式pages文件夹形式的多页面应用 switch_page或者page_link跳转 sidebar+exec形式开始时使用的方法1,使用文件结构和文件名称管理多页面,页面内容可以不需要为导航专门再写东西,非常便捷。随着使用,缺点也很明显,无法再定义导航栏中的页面名…

基于FOC控制器的BLDC无刷直流电机控制系统matlab编程与仿真

1.课题概述基于FOC控制器的BLDC无刷直流电机控制系统matlab编程与仿真,使用MATLAB编程实现,包括FOC控制器,clark,park等,不使用simulink建模。仿真输出三相电流,电机转速以及转子角度。2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a%矢场定向控制 function [A,B,C…