Skip to content

自定义接口使用说明

打开后台进入GPT配置

自定义接口配置

在自定义输入框输入您的接口地址

有如下几点注意:

  1. 如果您的API接口需要认证,认证字符串参数名需定义为 apikey,没有的话可以不用填写

  2. 语音接口调用的时候会将你的认证参数携带过去

  3. 如果除 apikey 外还有别的参数,可以自行拼接到url上

TIP

注意,你的接口虽然是POST接收,但是添加额外参数时请以GET方式拼接,服务端会自动解析,最后将参数POST到您自定义的接口上

示例: http://api.test.com/api/custom?name=zhangsan&time=12345678

这些额外的参数由您的接口自定义进行鉴定识别。具体的代码逻辑如下

php
$post_json = file_get_contents("php://input");

$parse_data = json_decode($post_json, true);
// 这里是获取参数的,如果您填写的接口地址里携带了其他的参数,请自行在这里获取
// $apikey = $parse_data["apikey"]; //开启此行需注释下面一行,获取后台填写的apikey
$apikey = "sk-xxxxx";
  1. 固定的参数

    php
    // 固定的格式,与平台交互的固定参数格式,请勿修改
    $content_list = $parse_data["content_list"];

    这个content_list是平台转发过来的内容,里面包含了msg信息以及上下文对话形式,这个格式目前通用支持GPT、文心一言-[百度]、通义千问-[阿里]、腾讯混元-[腾讯]、讯飞星火-[讯飞]。您无需关心这个参数具体是如何生成的,只需要直接调用即可,以GPT为例,我们示例代码里有体现

    php
    $post_content =[["role" => "system", "content" => "You are GPT, a large language model. Follow the user's instructions carefully. "]];
    $post_content=array_merge($post_content,$content_list);
    $params = [
        'model' => $model,
        'messages' =>$post_content,
    ];

接口返回格式要求

示例代码中已经封装好了,您只需要直接调用这个函数即可返回json格式的响应

php
function jsonResponse($code,$msg,$answer=null){
    /*
     * 统一数据返回格式
     *
     * 不管是您使用gpt还是其他自定义实现的功能,只要符合这个数据格式,平台语音机器人就可识别
     * 注意: code 为1 为正常响应,其他均视为失败,这点在自定义实现的过程中,需要严格注意
     *
     */
    $responseFormatData = [
        "code" => $code,
        "msg" => $msg,
        "answer" => $answer
    ];
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($responseFormatData, JSON_UNESCAPED_UNICODE);
    exit();
}

以下是示例:

  1. 成功返回响应
json
jsonResponse(1,"success","Hello World");
// 如下是响应
{
	"answer": "Hello World",
	"code": 1,
	"msg": "success"
}
  1. 失败响应

状态码非1则为错误响应,您可以自定义返回状态码,方便您自己查看接口调用是否正常。不过还是建议按照HTTP正常的状态码习惯来返回。

json
jsonResponse(400,"具体原因","");
// 如下是响应
{
	"answer": "",
	"code": 400,
	"msg": "具体原因"
}

GPT.ba