使用Python调用Coze API实现智能对话

前言

Coze是一个强大的AI平台,允许开发者创建和部署智能体。通过其API,我们可以程序化地与这些智能体进行交互。本文将展示如何使用Python来实现这一过程。

准备工作

在开始之前,请确保您已经:

  1. 在Coze平台上创建了一个智能体
  2. 获取了您的BOT_ID和API_TOKEN
  3. 安装了Python和requests库

代码实现

以下是完整的Python脚本,用于与Coze API进行交互:

python 复制代码
import requests
import json
import time

# API 配置
BOT_ID = "YOUR_BOT_ID"
API_TOKEN = "YOUR_API_TOKEN"
BASE_URL = "https://api.coze.cn/v3"

# 发送聊天请求
def send_chat_request(question):
    url = f"{BASE_URL}/chat"
    headers = {
        "Authorization": f"Bearer {API_TOKEN}",
        "Content-Type": "application/json"
    }
    data = {
        "bot_id": BOT_ID,
        "user_id": "123456789",  # 可以使用任意用户ID
        "stream": False,
        "auto_save_history": True,
        "additional_messages": [
            {
                "role": "user",
                "content": question,
                "content_type": "text"
            }
        ]
    }
    
    response = requests.post(url, headers=headers, json=data)
    return response.json()

# 获取聊天消息
def get_chat_messages(chat_id, conversation_id):
    url = f"{BASE_URL}/chat/message/list?chat_id={chat_id}&conversation_id={conversation_id}"
    headers = {
        "Authorization": f"Bearer {API_TOKEN}",
        "Content-Type": "application/json"
    }
    
    response = requests.get(url, headers=headers)
    return response.json()

# 主程序
def main():
    question = "今天成都天气如何?"
    
    # 发送聊天请求
    chat_response = send_chat_request(question)
    print("Chat response:", json.dumps(chat_response, indent=2, ensure_ascii=False))
    
    if "code" in chat_response and chat_response["code"] == 0 and "data" in chat_response:
        chat_id = chat_response["data"].get("id")
        conversation_id = chat_response["data"].get("conversation_id")
        
        if chat_id and conversation_id:
            # 尝试获取聊天消息,最多重试5次
            for attempt in range(5):
                print(f"尝试获取消息,第 {attempt + 1} 次")
                messages = get_chat_messages(chat_id, conversation_id)
                print("Messages response:", json.dumps(messages, indent=2, ensure_ascii=False))
                
                if "code" in messages and messages["code"] == 0 and "data" in messages and messages["data"]:
                    for message in messages["data"]:
                        if message["role"] == "assistant" and message["type"] == "answer":
                            print("智能体的回答:", message["content"])
                            return
                    print("未找到智能体的回答,等待5秒后重试")
                else:
                    print("获取聊天消息失败或返回格式不正确,等待5秒后重试")
                
                time.sleep(5)  # 等待5秒后重试
            
            print("所有重试都失败,无法获取智能体的回答")
        else:
            print("chat_id 或 conversation_id 未在响应中找到")
    else:
        print("发送聊天请求失败或返回格式不正确")

if __name__ == "__main__":
    main()

代码解析

  1. 配置: 首先,我们设置了必要的API配置,包括BOT_ID和API_TOKEN。

  2. 发送聊天请求 : send_chat_request函数负责向Coze API发送包含用户问题的请求。

  3. 获取聊天消息 : get_chat_messages函数用于获取智能体的回答。

  4. 主程序:

    • 发送聊天请求
    • 从响应中提取chat_id和conversation_id
    • 使用这些ID尝试获取智能体的回答
    • 如果没有立即获得回答,会进行多次重试
  5. 重试机制: 考虑到API的异步特性,我们实现了一个重试机制。脚本最多尝试5次,每次间隔5秒,以给智能体足够的时间处理问题。

注意事项

  • 请确保将YOUR_BOT_IDYOUR_API_TOKEN替换为您实际的BOT ID和API令牌。
  • 这个脚本使用了requests库,请确保已经安装(pip install requests)。
  • 处理敏感信息时要小心,避免将API令牌等信息公开分享。

结论

通过这个Python脚本,我们成功实现了与Coze平台智能体的交互。这为开发更复杂的应用程序提供了基础,例如聊天机器人、自动问答系统等。

随着AI技术的不断发展,像Coze这样的平台为开发者提供了强大的工具来创建智能应用。希望这篇文章能够帮助您开始探索AI应用开发的exciting世界!

相关推荐
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工1 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz1 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤1 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭1 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~1 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码1 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng11331 小时前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike1 小时前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇1 小时前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow