百度千帆AppBuilder的php版本SDK

基于 OpenAPI 实现

由于公司项目需要,在对接百度千帆AppBuilder 时发现官方没有提供现成的 sdk,反正也是对接,顺手做了一个基于接口的简易sdk出来。

开源地址:jeeinn/qf_app_builder: qianfan AppBuilder openApi sdk (github.com)

百度千帆 qianfan AppBuilder php sdk OpenAPI wrapper

官方文档地址:https://cloud.baidu.com/doc/AppBuilder/s/klv2eywua

安装

composer require jeeinn/qf_app_builder

示例

require_once __DIR__ . '/vendor/autoload.php';
use Jeeinn\QfAppBuilder\Agent;
use Jeeinn\QfAppBuilder\Utils;
$appId = 'your app id';
$appToken = 'your app token';

// 创建会话
$agent = new Agent($appId, $appToken);
$conversationId = $agent->newConversation();
echo Utils::formatMsg("conversation_id created, conversation_id: {$conversationId}");

// 上传文件
// 注意,在实际测试中发现传入的路径需包含后缀名称 2024/5/9
// 否则千帆会报错:未知文件类型
$fileId = $agent->uploadFile(__DIR__ . '/your_test_file.xlsx', $conversationId);
echo Utils::formatMsg("file uploaded, file id: {$fileId}");

// 对话
$query = "我该如何描述和总结表格中的数据?";
$answer = $agent->talk($conversationId, $query, $fileId);
echo Utils::formatMsg("answer: {$answer}");

// 流式对话
$query = '你好,你是如何对我的数据进行安全处理的?';
ob_end_flush();
ob_start();
$answer = $agent->talkStream($conversationId, $query, null, function ($eventMsg){
    echo Utils::formatMsg($eventMsg);
    ob_flush();
    flush();
}, function ($errInfo){
    echo Utils::formatMsg($errInfo);
    ob_flush();
    flush();
});

echo Utils::formatMsg("answer: {$answer}");

方法列表

  • newConversation()
  • uploadFile($filePath, $conversationId)
  • talk($conversationId, $query, $fileId)
  • talkStream($conversationId, $query, $fileId, $callback, $callbackErr)
Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注