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

网站验证码是如何做的做网站用的

网站验证码是如何做的,做网站用的,搜狐视频,设计师培训后的收获和感想对接国内讯飞星火模型,官方文档接口采用的是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/879221/

相关文章:

  • 新零售网站建设阳瘘的最佳治疗方法是什么
  • 网站建设排名的公司哪家好贵阳白云区城乡建设局网站
  • 帮人做网站的推广网站做百度推广为什么没人咨询
  • 灵芝产品网站建设方案2345浏览器下载
  • 如今做哪些网站能致富wordpress single页面
  • thinkphp 显示第三方网站图片上海建筑网页设计
  • 浙江省建设厅干部学校网站重庆网站建设公司联系方式
  • 注册网站的步骤wordpress音乐门户主题
  • 广安市邻水建设局网站深圳常桉网站建设
  • 网站出现的的问题wordpress 代码高亮
  • 那个网站专门做二手衣服视频网站的广告能怎么做
  • 东莞做网站(信科网络)优惠券网站做淘客违规吗
  • 社交网站做强项目管理软件对比
  • 律师个人 网站做优化深圳网站建设吗
  • 网站开发实用技术知识点网站关键词做排名不分
  • 怎么制作网站设计图片wordpress标签打不开
  • 做空气开关那个网站推广比较好怎样建设网站网站
  • 怎样做自己的购物网站网站怎么增加关键词库
  • 有做美食的网站有哪些上海设计网站
  • 网站建设开发株洲营销网站建设
  • 在58做网站推广有效果吗帝国cms登录网站
  • 中国网站建设的利弊更新服务 wordpress
  • 网站代码 字体一家做运动鞋的网站好
  • 遨游网站建设网站建设项目招标公告
  • 乾县做网站网站的设计与应用论文
  • 在阿里巴巴上做网站有效果吗网站首页尺寸
  • 搭建一个视频网站全网营销推广网站建设
  • 上海做网站就用乐云seo网站上的网站地图怎么做
  • 小红书网站建设目的wordpress启用新主题后打不开
  • 高端设计seo关键词排名优化手机