php利用swoole将chatgpt api接口请求换成websocket请求示例代码

代码语言:phpcli

所属分类:其他

代码描述:php利用swoole将chatgpt api接口请求换成websocket请求示例代码,chatgpt官方的请求是sse技术,对于移动端不是友好,那么将他转换成websocket实时推送就能兼容所有客户端了,毕竟websocket技术覆盖面广嘛。这个也适合国内所有兼容openai接口的大模型调用,包括千问、智谱ai等。

代码标签: php swoole chatgpt api 接口 请求 换成 websocket 请求 示例 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php
use Swoole\WebSocket\Server;
use Swoole\Coroutine\Http\Client;
//适合所有国内兼容openai接口的大模型调用
$server = new Server("0.0.0.0", 9501);

$server->on("start", function ($server) {
    echo "Swoole WebSocket server is started at ws://0.0.0.0:9501\n";
});

$server->on("open", function ($server, $request) {
    echo "Connection open: {$request->fd}\n";
});

$server->on("message", function ($server, $frame) {
    echo "Received message: {$frame->data}\n";

    // 解析JSON数据
    $data = json_decode($frame->data, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        $server->push($frame->fd, "Invalid JSON data");
        return;
    }

    // 根据action执行不同操作
    if (isset($data['action']) && $data['action'] === 'ask') {
        $content = $data['content'];

        // 使用协程客户端发送HTTP请求
        go(function () use ($server, $frame, $content) {
            $client = new Client('api.openai.com', 443, true);
            $client->setHeaders([
                'Content-Type' => 'application/json',
                'Authorization' => 'Bearer APIKEY',
            ]);

            $messages = [
                ["role" => "system", "content" => "你是一个AI助手chatai"],
                ["role" => "user", "content" => $content]
         .........完整代码请登录后点击上方下载按钮下载查看

网友评论0