豆包 API 调用示例代码详解-Python版

embedded/2024/9/24 11:56:12/

文章目录

  • 豆包 API 调用示例代码详解-Python版
    • 一、事前准备
    • 二、所需 Python 包
    • 三、代码详解
    • 五、源码下载
    • 四、总结
    • 豆包官方API文档

豆包 API 调用示例代码详解-Python版

在本文中,我们将详细介绍如何使用 Python 调用豆包 API,并提供相关的事前准备和代码执行步骤。

一、事前准备

  1. 密钥申请
    • 要使用豆包 API,首先需要申请一个授权密钥。在上述代码中,密钥存储在 headers 字典的 Authorization 值中,格式为 Bearer pat_DhYQxAFQpXLeH8uyu0i1K7PSOvTXkQI****。具体的申请流程可能因豆包 API 的提供商而异,需要根据相关文档进行操作。
  2. Bot创建
    • 确保已经创建了Bot,并发布以 bot as api方式发布。这个机器人将用于处理用户的请求并返回响应。

二、所需 Python 包

执行上述 demo 代码需要安装以下 Python 包:

  1. requests:用于发送 HTTP 请求与 API 进行交互。
  2. json:用于处理 JSON 数据。

可以使用以下命令通过 pip 安装这些包:

pip install requests

三、代码详解

  1. do_chat 函数:
    • 该函数用于发起与豆包的对话。它向 https://api.coze.cn/v3/chat 发送 POST 请求,传递对话相关的数据,包括机器人 ID、用户 ID、是否流式响应、是否自动保存历史会话以及用户的消息。
    • 请求头中包含了授权信息和内容类型。
    • 函数返回响应中的数据。
  2. do_retrieve 函数:
    • 此函数用于查询会话是否输出完毕。它向 https://api.coze.cn/v3/chat/retrieve 发送 GET 请求,通过传递会话 ID 和聊天 ID 来获取会话的状态。
    • 函数返回会话的状态。
  3. get_msg 函数:
    • 该函数用于获取豆包输出的消息。它向 https://api.coze.cn/v3/chat/message/list 发送 GET 请求,同样通过会话 ID 和聊天 ID 来获取消息列表。
    • 函数返回最近的一条消息内容。
  4. call_doubao 函数:
    • 这是主要的调用函数。它首先调用 do_chat 发起对话,获取会话 ID 和聊天 ID。
    • 然后使用 do_retrieve 不断查询会话状态,直到状态变为 completed,表示豆包说完话。
    • 最后,使用 get_msg 获取豆包的回复消息。
  5. if __name__ == '__main__' 部分:
    • 这是主程序入口,示例了如何调用 call_doubao 函数与豆包进行交互,并打印出用户的输入和豆包的回复。

五、源码下载

Python源码

四、总结

通过以上步骤,我们可以成功地使用 Python 调用豆包 API 进行对话。在实际应用中,可以根据需要进一步扩展和优化代码,以满足具体的业务需求。

希望这篇文章对您理解和使用豆包 API 有所帮助。如果您在实践过程中遇到任何问题,欢迎随时提问。

豆包官方API文档

https://www.coze.cn/docs/developer_guides/coze_api_overview


http://www.ppmy.cn/embedded/102746.html

相关文章

[C++]深入理解C++中的泛型编程、函数模板与类模板

C 以其强大的模板功能和泛型编程(Generic Programming)特性而闻名。模板不仅提高了代码的重用性,还大大增强了编程的灵活性。本文将详细介绍C中的泛型编程,以及与之密切相关的函数模板和类模板。 1. 泛型编程概述 泛型编程是一种…

AMBA协议中的AXI-Stream:协议信号与设计实践

在高性能嵌入式系统设计中,AMBA(Advanced Microcontroller Bus Architecture)协议扮演着重要角色。其中,AXI-Stream协议是AMBA 4.x规范的一部分,专为高吞吐量数据传输而设计,广泛应用于视频处理、音频处理、…

【Spring Boot进阶】掌握Spring Boot框架核心注解:从入门到精通(实战指南)

文章目录 Spring Boot 注解大全:深入理解与实践引言第一部分:基础知识1. Spring Boot 和 Java 注解简介2. Spring Boot 项目搭建 第二部分:核心注解详解3. SpringBootApplication4. Component, Service, Repository, Controller, RestControl…

黑马JavaWeb开发笔记05——JavaScript介绍、基本语法、函数、对象(Array, String, json, BOM, DOM)、事件监听

文章目录 前言一、JavaScript介绍和引入方式1. 介绍2. 引入方式3. VScode引入演示 二、JavaScript基础语法1. 书写语法2. 变量2.1 var2.2 let2.3 const 3. 数据类型、运算符、流程控制语句3.1 数据类型3.2 运算符3.3 流程控制语句 三、JavaScript函数1. 第一种定义方式2. 第二种…

MySQL 数据库自动分区

MySQL 数据库自动分区 MySQL自动分区(Automatic Partitioning)是指数据库管理系统自动将数据分布到预先定义好的分区表结构中,而无需显式地对每个插入操作进行分区。它通常基于特定的策略,如范围、列表、哈希或螺旋分区&#xff…

Android Compose 下拉选择框 ExposedDropdownMenu下拉选择

/*** author 创建人&#xff1a;蒙石瑞* date 创建时间&#xff1a;2024/8/23 10:57* Description 创建内容&#xff1a;下拉选择框*/ OptIn(ExperimentalMaterial3Api::class) Composable fun CustomExposedDropdownMenu(options: List<out DropdownMenuDes>,l…

Marked: 一款高效、轻量级且全功能的Markdown解析器

在Web开发中&#xff0c;Markdown已成为一种流行的轻量级标记语言&#xff0c;它允许人们使用简单的文本格式编写文档&#xff0c;并可轻松转换为HTML。为了满足这一需求&#xff0c;出现了许多Markdown解析器&#xff0c;而Marked无疑是其中的佼佼者。Marked以其速度、轻量级和…

c++实现mysql关系型数据库连接与增删改查操作

最近老师让我实现这个功能&#xff0c;顺便发个东西&#xff0c;我感觉mysql从入门到精通这本书写的蛮好的&#xff0c;其实连接数据库就是调用mysql-c-api库里面的函数mysql_real_connect,下来的增删改查&#xff0c;也无非就是cmd命令台里面的语句&#xff0c;插入&#xff1…