当前位置: 首页 > news >正文

重庆招聘网站建设wordpress 模板 中文乱码

重庆招聘网站建设,wordpress 模板 中文乱码,电商平台软件开发公司,如何解析域名对接国内讯飞星火模型,官方文档接口采用的是websocket跟国外chatgpt有些差异。 虽然官网给出一个简单demo通过while(true),websocket的receive()可以实现逐条接受并输出给前端,但是通用和灵活度不高。不能兼容现有项目框架的流式输出。故模仿…

对接国内讯飞星火模型,官方文档接口采用的是websocket跟国外chatgpt有些差异。

虽然官网给出一个简单demo通过while(true),websocket的receive()可以实现逐条接受并输出给前端,但是通用和灵活度不高。不能兼容现有项目框架的流式输出。故模仿openai,采用IteratorAggregate接口实现迭代器可遍历获取响应结果。

IteratorAggregate只有一个需要实现的方法getIterator()实现起来简单方便,基本代码如下

<?php
declare(strict_types=1);namespace App\Extends;use WebSocket\Client;
use IteratorAggregate;
use Generator;class XingHuoClient
{protected $client;public function client(){$apikey = '';//自己填写真实内容$apiSecret = '';//自己填写真实内容$addr = '';//自己填写真实内容$authUrl = $this->assembleAuthUrl("GET",$addr,$apikey,$apiSecret);//创建ws连接对象$this->client = new Client($authUrl);return $this;}public function send($uid, array $message){if($this->client){$data = $this->getBody($uid, $message);$this->client->send($data);$response = new XingResponseIterator($this->client);return $response;}else{throw new \Exception('星火客户端异常');}}//构造参数体protected function getBody($uid, $message){//...省略内容return $json_string;}//鉴权方法public function assembleAuthUrl($method, $addr, $apiKey, $apiSecret) {//...省略内容return $authAddr;}
}class XingResponseIterator implements IteratorAggregate {protected $client;public function __construct($client) {$this->client = $client;}public function getIterator(): Generator {if($this->client){while(true){$response = $this->client->receive();$resp = json_decode($response,true);$code = $resp["header"]["code"];if(0 == $code){$status = $resp["header"]["status"];if($status != 2){yield $resp['payload'];}else{yield $resp['payload'];break;}}else{//TODO:记录错误日志或报警break;}}}else{return [];}}
}

前提引入composer require textalk/websocket包用于socket请求星火接口,大部分内容还是官网提供的demo,主要是增加了XingResponseIterator 。

$stream = xinghuo()->client()->send($uid, $messages);//xinghuo()是封装的XingHuoClient对象
foreach($stream as $response){//处理数据,格式化数据,统计,记录等操作,输出内容到响应流,此处不做细讲
}

输出形式可以分流式输出,以openai为例参考:

https://github.com/orhanerday/open-ai

https://packagist.org/packages/hhxsv5/php-sse

前端浏览器使用的是EventSource对象。

可以使用chunk形式,存在客户端不支持eventSource对象的情况可以选择使用,参考我的另一篇文章

https://blog.csdn.net/jinborui2/article/details/132325824

以及一些nginx配置和php配置也在这篇文章里有所讲解,保证服务端及时输出内容到客户端。

http://www.yayakq.cn/news/227753/

相关文章:

  • 国外网站模板下载js 网站校验
  • 网站的头尾和导航的公用文件兰州模板网站建设
  • 旅游网站建设毕业设计怎样设置网站访问权限
  • 专业北京网站建设公司哪家好省住房城乡建设厅门户网站
  • h5网站建设报价多少钱广东新闻联播主持人
  • 合肥市公司网站建设衡阳做网站的
  • 什么 a wordpress做seo网站的公司哪家好
  • 泰州网站建设方案优化高密住房和城乡建设部网站
  • 关于网站开发的一些论文网站自助建设源码
  • 免备案域名购买网站外贸网站大全
  • 连云港建设企业网站阿里云虚拟主机wordpress发送邮件
  • 做网站推广公司手机app软件开发机构
  • 什么装修网站做的好的腾讯云做网站需要报备
  • 宜春建设网站公司高端网站设计v芯hyhyk1推好
  • 厦门u 网站建设自适应网站建设哪家好
  • 宣讲家网站 家风建设深圳做seo有哪些公司
  • 做网站销售一个星期的计划wordpress new2主题使用
  • 南昌网站建设是什么意思怎么进行网站备案
  • 重生做皇帝小说网站微信官方微网站吗
  • 免费网站备案辽宁建设工程信息网招标文件怎么打开
  • 北京网站建设分析论文重庆律师网站建设
  • visual studio 2010 网站开发教程品牌建设的论文
  • 百度竞价网站人物介绍网页模板html
  • 南昌seo网站国家企业信用信息系统年报入口官网
  • 百合网网站建设与策划营销服务机构有哪些
  • wordpress 群站富阳网站建设价格
  • 企业网站有哪些举例鲜花店的网站建设
  • asp网站开发心得体会网页制作工具安其制作方式分 可以分为
  • 长春网站seowordpress 自动锚文本
  • dede网站qq类文章源码怎么做抽奖网站