百宝箱开放平台 ✖️ Python SDK

简介: 百宝箱提供Python SDK,支持开发者集成其开放能力。需先发布应用,安装Python 3.6+环境后,通过pip安装tboxsdk,即可调用对话型、生成型智能体及文件上传等功能。

百宝箱提供 Python SDK,开发者可以通过调用 SDK 将百宝箱提供的各项开放能力集成到自有的应用中。

前提条件

在调用本服务前,请先完成应用的发布,若无,请参见:发布应用,完成相关事项。

环境准备

百宝箱 Python SDK 适用于 Python3.6 及以上版本。安装 Python SDK 前,建议执行以下命令确认你已经安装了 3.6 及以上版本的 Python。

# 查看 Python 版本  
python --version
# 回显信息显示已安装 3.8.2 版本
Python 3.8.2

安装 SDK

开发者可以通过 pip 安装 TboxSDK,命令示例如下。

pip install tboxsdk

调用 SDK

1. 调用对话型智能体

from tboxsdk.tbox import TboxClient
def stream_chat():
    """对话型应用请参考以下调用方式"""
    tbox = TboxClient(authorization="{your_token}")
    response = tbox.chat(app_id="{your_app_id}", query="你好", user_id="{user_id}")
    for chunk in response:
        print(chunk)
if __name__ == "__main__":
    stream_chat()

其中,各参数说明如下。

参数名

必填

类型

说明

示例

app_id

String

应用 ID,需要通过 API 进行集成的应用 ID。获取方式可参见:获取AppID

202506e******00450562

user_id

String

用户 ID,指使用智能体的用户 ID,需开发者自行定义与维护。请尽量使用 OAID 或手机号,百宝箱会根据此信息帮助您构建用户画像。

-

conversation_id

String

会话id,用于用户多轮对话时组装上下文信息。

首次对话时无需传入,

多轮对话时,按照SDK中之前返回的conversationId内容传入。

client_properties

dict

系统及环境变量参数。

如果你在对话型工作流应用中,开启了“系统及环境信息”中的变量开关,操作如下:

你可以将对应的参数传入到 client_properties 中。每个变量对应的key值如下:

  • 用户id:user_id
  • 触发时间:time
  • 坐标:pos
  • 经度:pos_lng
  • 纬度:pos_lat
  • 运行环境:runtime_env
  • UA:user_agent
  • 附加数据:_biz_params


files

List<File>

文件列表,用于在对话中提供多模态(文档、图片、音频及视频)数据。

说明:

使用文件上传能力前,请先为智能体配置具有文件处理能力的大模型或插件。

-

search_engine

Boolean

本次对话是否使用联网搜索。

说明:

使用联网搜索前,需要先开启智能体对话配置中的联网搜索开关。

  • True:使用联网搜索;
  • False:默认值,不使用联网搜索。

False

stream

Boolean

是否流式响应,默认True

True

1.1. 创建会话

from tboxsdk.tbox import TboxClient
def create_conversation():
    tbox_client = TboxClient(authorization="{your_token}")
    create_response = tbox_client.create_conversation(app_id="202411APWG5400162068")
    if create_response.get("errorCode") == "0":
        conversation_id = create_response.get("data")
        print(f"创建会话成功,会话ID: {conversation_id}")
if __name__ == "__main__":
    create_conversation()

其中,各参数说明如下。

参数名

必填

类型

说明

示例

app_id

String

应用 ID,需要通过 API 进行集成的应用 ID。获取方式可参见:获取AppID

202506e******00450562

1.2. 查询会话列表

from tboxsdk.tbox import TboxClient
def get_conversations():
    tbox_client = TboxClient(authorization="{your_token}")
    response = tbox_client.get_conversations(app_id="202411APWG5400162068")
    print(f"--------------------------------------------------------")
    print(f"response: {response}")
    print(f"--------------------------------------------------------")
    
    if response.get("errorCode") == "0":
        conversations = response.get("data", {}).get("conversations", [])
        print(f"找到 {len(conversations)} 个会话")
        
        for conv in conversations:
            print(f"会话ID: {conv['conversationId']}")
            print(f"用户ID: {conv['userId']}")
            print(f"渠道: {conv['source']}")
            print(f"创建时间: {conv['createAt']}")
            print("---")
if __name__ == "__main__":
    get_conversations()

其中,各参数说明如下。

参数名

必填

类型

说明

示例

app_id

String

应用 ID,需要通过 API 进行集成的应用 ID。获取方式可参见:获取AppID

202506e******00450562

user_id

String

用户ID,发起对话时指定,需要在智能体内唯一。不传返回全部用户的会话列表

test_user_zs

source

Enum<String>

对话渠道,用于筛选指定渠道的对话,不传值将返回所有渠道发生的会话动作。

  • AGENT_SDK:SDK 渠道
  • OPENAPI:OpenAPI 渠道
  • IOT_SDK:IOT SDK 渠道

AGENT_SDK

page_num

Integer

分页页码,从 1 开始,默认为 1

1

page_size

Integer

分页条数,默认为 10,最大 50

10

sort_order

String

会话列表排序方式,默认 DESC

  • ASC:按创建时间升序排序,最早创建的会话排在最前返回;
  • DESC:按创建时间降序排序,最近创建的会话排在最前返回

DESC

1.3. 查询会话消息

from tboxsdk.tbox import TboxClient
def get_messages():
    tbox_client = TboxClient(authorization="{your_token}")
    # 使用一个测试用的conversationId,你需要替换为实际可用的conversationId
    response = tbox_client.get_messages(conversation_id="{conversation_id}")
    print(f"--------------------------------------------------------")
    print(f"response: {response}")
    print(f"--------------------------------------------------------")
    
    if response.get("errorCode") == "0":
        messages = response.get("data", {}).get("messages", [])
        print(f"找到 {len(messages)} 条消息")
        
        for msg in messages:
            print(f"消息ID: {msg['messageId']}")
            print(f"会话ID: {msg['conversationId']}")
            print(f"智能体ID: {msg['appId']}")
            print(f"用户问题: {msg['query']}")
            print(f"状态: {msg['status']}")
            print(f"创建时间: {msg['createAt']}")
            print(f"更新时间: {msg['updateAt']}")
            
            # 显示回答
            answers = msg.get('answers', [])
            print(f"回答数量: {len(answers)}")
            for answer in answers:
                print(f"  - 流水线: {answer.get('lane')}")
                print(f"  - 媒体类型: {answer.get('mediaType')}")
                print(f"  - 文本内容: {answer.get('text')}")
                if answer.get('url'):
                    print(f"  - 图片链接: {answer.get('url')}")
            
            # 显示文件
            files = msg.get('files', [])
            print(f"文件数量: {len(files)}")
            for file in files:
                print(f"  - 文件ID: {file.get('fileId')}")
                print(f"  - 文件类型: {file.get('type')}")
                print(f"  - 预览链接: {file.get('url')}")
            
            print("---")
if __name__ == "__main__":
    get_messages()

其中,各参数说明如下。

参数名

必填

类型

说明

示例

conversation_id

String

会话 ID

-

page_num

Integer

分页页码,从 1 开始,默认为 1

1

page_size

Integer

分页条数,默认为 10,最大 50

10

sort_order

String

会话列表排序方式,默认 DESC

  • ASC:按创建时间升序排序,最早创建的会话排在最前返回;
  • DESC:按创建时间降序排序,最近创建的会话排在最前返回

DESC

2. 调用生成型智能体

开发者可以通过下述示例代码,实现生成型智能体的调用。

from tboxsdk.tbox import TboxClient
def stream_completion():
    """内容生成型应用请参考以下调用方式"""
    tbox = TboxClient(authorization="{your_token}")
    response = tbox.completion(app_id="{your_app_id}", inputs={"title": "太阳"}, user_id="{user_id}")
    for chunk in response:
        print(chunk)
if __name__ == "__main__":
    stream_completion()

其中,各参数说明如下。

参数名

必填

类型

说明

示例

app_id

String

应用 ID,需要通过 API 进行集成的应用 ID。获取方式可参见:获取AppID

202506e******00450562

user_id

String

用户 ID,指使用智能体的用户 ID,需开发者自行定义与维护。请尽量使用 OAID 或手机号,百宝箱会根据此信息帮助您构建用户画像。

-

conversation_id

String

会话id,用于用户多轮对话时组装上下文信息。

首次对话时无需传入,

多轮对话时,按照SDK中之前返回的conversationId内容传入。

inputs

dict

如果您的应用中有自定义参数,需要填入对应的key-value值,参考示例。

如上图,key填写为title,value填写为您想要的主题内容。

client_properties

dict

系统及环境变量参数。传入的key值请参考示例。

如果你在对话型工作流应用中,开启了“系统及环境信息”中的变量开关(示例如下)

你可以将对应的参数传入到clientProperties中。每个变量对应的key值如下:

用户id - user_id

触发时间 - time

坐标 - pos

经度 - pos_lng

纬度 - pos_lat

AOI - 待废弃参数,请不要使用

运行环境 - runtime_env

UA - user_agent

附加数据 - _biz_params

files

List<File>

文件列表,用于在对话中提供多模态(文档、图片、音频及视频)数据。

说明:

使用文件上传能力前,请先为智能体配置具有文件处理能力的大模型或插件。

-

with_meta

Boolean

是否接收百宝箱返回的meta信息,默认False

False

stream

Boolean

是否流式响应,默认True

True


3. 上传文件

from tboxsdk.tbox import TboxClient
def upload_file():
    tbox_client = TboxClient(authorization="{your_token}")
    response = tbox_client.upload_file(file_path="{file_path}")
    print(f"--------------------------------------------------------")
    print(f"response: {response}")
    print(f"--------------------------------------------------------")
    
    if response.get("errorCode") == "0":
        file_id = response.get("data", "")
        print(f"文件ID: {file_id}")
if __name__ == "__main__":
    upload_file()

其中,各参数说明如下。

参数名

必填

类型

说明

示例

file_path

String

本地文件路径

本地文件路径

相关文章
|
15天前
|
自然语言处理 开发工具 Android开发
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
开发者可通过集成SDK,将百宝箱智能体接入友盟App,实现智能答疑与数据分析。本文详述在友盟创建App、获取Appkey,及在百宝箱创建智能体、获取TboxAgentID的完整流程,并提供iOS与Android平台集成指引,助力提升应用智能化服务能力。(239字)
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
|
16天前
|
存储 JavaScript API
百宝箱开放平台 ✖️ Node.js SDK
开发者可以通过安装 Node.js SDK 的方式将百宝箱的 OpenAPI 集成到自有系统中,从而在外部系统中发起智能体对话。
百宝箱开放平台 ✖️ Node.js SDK
|
15天前
|
API 开发工具 开发者
百宝箱开放平台 ✖️ Web SDK
本服务支持开发者将智能体以网页悬浮窗形式集成至Web页面,通过引入SDK并配置agentId等参数实现交互,需先完成应用发布。
|
16天前
|
Java API 开发工具
百宝箱开放平台 ✖️ Java SDK
百宝箱提供Java SDK,支持开发者集成其开放能力。需先发布应用,准备Java 8+及Maven环境,通过添加依赖安装SDK,并初始化客户端调用对话型或生成型智能体,实现会话管理、消息查询与文件上传等功能。
1129 0
百宝箱开放平台 ✖️ Java SDK
|
6月前
|
API 开发工具 网络架构
【Azure Service Bus】使用Python SDK创建Service Bus Namespace资源(中国区)
本文介绍了如何使用Python SDK创建Azure Service Bus Namespace资源。首先,通过Microsoft Entra ID注册应用获取Client ID、Client Secret和Tenant ID,完成中国区Azure认证。接着,初始化ServiceBusManagementClient对象,并调用`begin_create_or_update`方法创建资源。
127 29
|
8月前
|
API 开发工具 Python
|
7月前
|
人工智能 API 开发工具
【AI大模型】使用Python调用DeepSeek的API,原来SDK是调用这个,绝对的一分钟上手和使用
本文详细介绍了如何使用Python调用DeepSeek的API,从申请API-Key到实现代码层对话,手把手教你快速上手。DeepSeek作为领先的AI大模型,提供免费体验机会,帮助开发者探索其语言生成能力。通过简单示例代码与自定义界面开发,展示了API的实际应用,让对接过程在一分钟内轻松完成,为项目开发带来更多可能。
|
9月前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
219 102
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
256 104

推荐镜像

更多