百宝箱开放平台 ✖️ Java SDK

简介: 百宝箱提供Java SDK,支持开发者集成其开放能力。需先发布应用,准备Java 8+及Maven环境,通过添加依赖安装SDK,并初始化客户端调用对话型或生成型智能体,实现会话管理、消息查询与文件上传等功能。

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

前提条件

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

环境准备

百宝箱 Java SDK 适用于 Java 8 及以上版本,且要求 Maven 的版本在 3.x 或以上。开发者可以执行下述命令,查看已安装的 Java 版本。

java -version

安装 SDK

1. 添加 tboxsdk 依赖

开发者可以在 Maven 工程中使用百宝箱 JavaSDK,仅需在 pom.xml中添加相应依赖即可。下方提供在<dependency>中添加依赖的示例代码。

<dependency>
  <groupId>cn.tbox</groupId>
  <artifactId>tboxsdk</artifactId>
  <version>0.0.10</version>
</dependency>

2. 添加 OkHttp 及 SSE 扩展

版本要求:项目中 OkHttp 版本建议 ≥ 4.10.0。

<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>4.10.0</version>
</dependency>
<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp-sse</artifactId>
  <version>4.10.0</version>
</dependency>

调用 SDK

1. 初始化客户端

开发者可以通过下述示例代码,完成初始化。

import cn.tbox.sdk.core.http.HttpClientConfig;
import cn.tbox.sdk.TboxClient;
public class TboxExample {
    private static final String YOUR_TOKEN = "{your_token}";
    TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
    public static void main(String[] args) throws TboxClientConfigException {
        // 初始化客户端
        TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
    }
}

其中,各参数说明如下。

参数名

必填

类型

说明

示例

YOUR_TOKEN

String

用于验证客户端身份的访问令牌,你可以在百宝箱中获取,获取方式可参见:授权管理

pat_2j4e******THUIVRH1

2. 调用对话型智能体

通过下述代码示例,可以调用对话型智能体。

import java.util.Map;
import cn.tbox.sdk.TboxClient;
import cn.tbox.sdk.core.exception.TboxClientConfigException;
import cn.tbox.sdk.core.http.HttpClientConfig;
public class Demo {
    private static final String YOUR_TOKEN = "{your_token}";
    private static final String YOUR_APP_ID = "{your_app_id}";
    public static void main(String[] args) throws TboxClientConfigException {
        // 初始化客户端
        TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
        String appId = YOUR_APP_ID;
        String query = "你好";
        String userId = "{user_id}";
        Iterable<Map<String, Object>> response = client.chat(appId, query, userId);
        for (Map<String, Object> chunk : response) {
            System.out.println(chunk); // 输出流式响应
        }
    }
}

其中,各参数说明如下。

参数名

必填

类型

说明

示例

conversationId

String

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

首次对话时无需传入,

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

clientProperties

Map<String,Object>

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

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

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

用户id - user_id

触发时间 - time

坐标 - pos

经度 - pos_lng

纬度 - pos_lat

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

运行环境 - runtime_env

UA - user_agent

附加数据 - _biz_params

files

List<File>

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

说明:

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

-

searchEngine

Boolean

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

说明:

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

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

False

stream

Boolean

是否流式响应,默认True

True

2.1. 创建会话

import java.util.Map;
import cn.tbox.sdk.TboxClient;
import cn.tbox.sdk.core.exception.TboxClientConfigException;
import cn.tbox.sdk.core.http.HttpClientConfig;
public class Demo {
    private static final String YOUR_TOKEN = "{your_token}";
    private static final String YOUR_APP_ID = "{your_app_id}";
    public static void main(String[] args) throws TboxClientConfigException {
        // 初始化客户端
        TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
        TboxResponse<String> response = client.createConversation(YOUR_APP_ID);
        System.out.println(response);
        assertNotNull(response);
        String conversationId = response.getData();
        System.out.println(conversationId);
    }
}

其中,各参数说明如下。

参数名

必填

类型

说明

示例

appId

String

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

202506e******00450562

2.2. 查询会话列表

import java.util.Map;
import cn.tbox.sdk.TboxClient;
import cn.tbox.sdk.core.exception.TboxClientConfigException;
import cn.tbox.sdk.core.http.HttpClientConfig;
public class Demo {
    private static final String YOUR_TOKEN = "{your_token}";
    private static final String YOUR_APP_ID = "{your_app_id}";
    public static void main(String[] args) throws TboxClientConfigException {
        // 初始化客户端
        TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
        ConversationListRequest request = new ConversationListRequest();
        request.setAppId(YOUR_APP_ID);
        request.setUserId({userId});
        request.setSource(ConversationListRequest.Source.AGENT_SDK);
        request.setPageNum(1);
        request.setPageSize(10);
        TboxResponse<ConversationListResponse> response = client.getConversations(request);
        System.out.println(response);
        assertNotNull(response);
        List<Conversation> conversations = response.getData().getConversations();
        assertNotNull(conversations);
        for (Conversation conversation : conversations) {
            System.out.println(conversation.getConversationId());
        }
    }
}

其中,各参数说明如下。

参数名

必填

类型

说明

示例

appId

String

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

202506e******00450562

userId

String

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

-

source

String

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

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

AGENT_SDK

pageNum

Integer

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

1

pageSize

Integer

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

10

sortOrder

String

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

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

DESC

2.3. 查询会话消息

import java.util.Map;
import cn.tbox.sdk.TboxClient;
import cn.tbox.sdk.core.exception.TboxClientConfigException;
import cn.tbox.sdk.core.http.HttpClientConfig;
public class Demo {
    private static final String YOUR_TOKEN = "{your_token}";
    private static final String YOUR_APP_ID = "{your_app_id}";
    public static void main(String[] args) throws TboxClientConfigException {
        // 初始化客户端
        TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
        ConversationListRequest request = new ConversationListRequest();
        request.setAppId(SDK_CONVERSATION_APPID);
        request.setUserId({userId});
        request.setSource(ConversationListRequest.Source.AGENT_SDK);
        request.setPageNum(1);
        request.setPageSize(10);
        TboxResponse<ConversationListResponse> response = client.getConversations(request);
        List<Conversation> conversations = response.getData().getConversations();
        assertNotNull(conversations);
        for (Conversation conversation : conversations) {
            System.out.println(conversation.getConversationId());
        }
        
        String conversationId = conversations.get(0).getConversationId();
        MessageListRequest messageListRequest = new MessageListRequest();
        messageListRequest.setConversationId(conversationId);
        messageListRequest.setPageNum(1);
        messageListRequest.setPageSize(10);
        TboxResponse<MessageListResponse> messageListResponse = client.getMessages(messageListRequest);   
        System.out.println(messageListResponse);
        assertNotNull(messageListResponse);
        List<Message> messages = messageListResponse.getData().getMessages();
        assertNotNull(messages);
        for (Message message : messages) {
            System.out.println(message.getMessageId());
        }
    }
}

其中,各参数说明如下。

参数名

必填

类型

说明

示例

conversationId

String

会话 ID

-

pageNum

Integer

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

1

pageSize

Integer

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

10

sortOrder

String

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

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

DESC

3. 调用生成型智能体

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

import java.util.Map;
import cn.tbox.sdk.TboxClient;
import cn.tbox.sdk.core.exception.TboxClientConfigException;
import cn.tbox.sdk.core.http.HttpClientConfig;
public class Demo {
    private static final String YOUR_TOKEN = "{your_token}";
    private static final String YOUR_APP_ID = "{your_app_id}";
    public static void main(String[] args) throws TboxClientConfigException {
        // 初始化客户端
        TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
        String appId = YOUR_APP_ID;
        String query = "你好";
        String userId = "{userId}";
        
        Map<String, Object> inputs = new HashMap<>();
        inputs.put("主题", query);
        Iterable<Map<String, Object>> response = client.completion(appId, inputs, userId);
        for (Map<String, Object> chunk : response) {
            System.out.println(chunk); // 输出流式响应
        }
    }
}

其中,各参数说明如下。

参数名

必填

类型

说明

示例

inputs

Map<String,Object>

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

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

clientProperties

Map<String, Object>

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

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

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

用户id - user_id

触发时间 - time

坐标 - pos

经度 - pos_lng

纬度 - pos_lat

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

运行环境 - runtime_env

UA - user_agent

附加数据 - _biz_params

files

List<File>

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

说明:

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

-

stream

Boolean

是否流式响应,默认True

True

4. 上传文件

import java.util.Map;
import cn.tbox.sdk.TboxClient;
import cn.tbox.sdk.core.exception.TboxClientConfigException;
import cn.tbox.sdk.core.http.HttpClientConfig;
public class Demo {
    private static final String YOUR_TOKEN = "{your_token}";
    private static final String YOUR_APP_ID = "{your_app_id}";
    public static void main(String[] args) throws TboxClientConfigException {
        // 初始化客户端
        TboxClient client = new TboxClient(new HttpClientConfig(YOUR_TOKEN));
        TboxResponse<String> response = client.uploadFile("{filePath}");
            System.out.println(response.getData());
    }
}

其中,各参数说明如下。

参数名称

必填

类型

含义

示例

filePath

String

本地文件路径

本地文件路径

相关文章
|
2月前
|
自然语言处理 开发工具 Android开发
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
开发者可通过集成SDK,将百宝箱智能体接入友盟App,实现智能答疑与数据分析。本文详述在友盟创建App、获取Appkey,及在百宝箱创建智能体、获取TboxAgentID的完整流程,并提供iOS与Android平台集成指引,助力提升应用智能化服务能力。(239字)
121 0
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
|
2月前
|
存储 JavaScript API
百宝箱开放平台 ✖️ Node.js SDK
开发者可以通过安装 Node.js SDK 的方式将百宝箱的 OpenAPI 集成到自有系统中,从而在外部系统中发起智能体对话。
203 0
百宝箱开放平台 ✖️ Node.js SDK
|
2月前
|
搜索推荐 API 开发工具
百宝箱开放平台 ✖️ Python SDK
百宝箱提供Python SDK,支持开发者集成其开放能力。需先发布应用,安装Python 3.6+环境后,通过pip安装tboxsdk,即可调用对话型、生成型智能体及文件上传等功能。
757 87
百宝箱开放平台 ✖️  Python SDK
|
2月前
|
API 开发工具 开发者
百宝箱开放平台 ✖️ Web SDK
本服务支持开发者将智能体以网页悬浮窗形式集成至Web页面,通过引入SDK并配置agentId等参数实现交互,需先完成应用发布。
181 0
|
6月前
|
存储 Java API
MinIO Java SDK 7.1.4 升级到 8.5.17 需要注意什么
现在我需要你帮我分析对比这个两个sdk在对外的接口设计上是否有不兼容的变更
505 5
|
Java 关系型数据库 API
介绍一款Java开发的企业接口管理系统和开放平台
YesApi接口管理平台Java版,基于Spring Boot、Vue.js等技术,提供API接口的快速研发、管理、开放及收费等功能,支持多数据库、Docker部署,适用于企业级PaaS和SaaS平台的二次开发与搭建。
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。
|
3月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
537 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
10月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
674 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
447 0

热门文章

最新文章