ChatGPT工作提效之小鹅通二次开发批量API对接解决方案(学习记录同步、用户注册同步、权益订购同步、开发文档)

ChatGPT工作提效系列

  1. ChatGPT工作提效之初探路径独孤九剑遇强则强
  2. ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)
  3. ChatGPT工作提效之生成开发需求和报价单并转为Excel格式

ChatGPT工作提效之小鹅通二次开发批量API对接解决方案

  • ChatGPT工作提效系列
  • 一、项目需求
    • 1.chatGPT:使用php分批分时输出的代码
    • 2.chatGPT使用javascript分批分时输出的代码
  • 二、批量修复API接口
    • 1.修复单位不存在API
    • 2.修复单位depart_id不存在
    • 3.批量更新登录权限
  • 三、开发中遇见的问题
    • 1.查询字段为空的sql语句
    • 2.设置登录cookie永不过期
    • 3.实现短信验证码的代码是什么

ChatGPT是一种实时对话生成模型,能够帮助用户快速地回答问题、提供信息,并且能够流畅地进行对话,准确理解用户的意图,并作出相应的回应。

ChatGPT模型的优点在于其生成文本的自然度和连贯度都非常好,不会出现明显的逻辑错误和语法错误。此外,ChatGPT的训练数据集丰富多样,能够应对大部分的问题场景。由于使用预训练模型,可以快速定制成各种应用场景的问答模型,能够大幅提升开发效率。不过,ChatGPT也存在一些缺点。由于其是基于预训练模型的生成模型,无法像传统的规则引擎一样对自己的回答逻辑处理进行调整,因此产生了一些无意义的回答或者矛盾的回答。

近期,在小鹅通的项目实战开发过程中,增加了“面向ChatGPT开发”的使用频率。现就有关过程记录如下:

在这里插入图片描述

一、项目需求

调用小鹅通API接口获取指定资源学习记录信息,xe.user.leaning_record_by_resource.get/1.0.0。
请求方式及url

  • 请求方式:POST
  • 请求头:Content-Type:application/json
  • 接口地址:https://api.xiaoe-tech.com/xe.user.leaning_record_by_resource.get/1.0.0
  • 频率限制:10秒3000次
  • 备注:数据是准实时的,4~5分钟延迟
  • user_id数组,请求数量上限,请求参数如图:
    在这里插入图片描述
    目前需要在小鹅通上述API条件的限制做,批量获取用户指定资源的学习记录。在php中是完善的延迟进程的算法的,很容易API超限或请求频繁导致token失效。
    如何实现队列更新呢?

1.chatGPT:使用php分批分时输出的代码

php写一下一个100长度的数组,分批分时输出的代码

<?php// 创建一个100长度的数组
$array = range(1, 100);// 每批输出的长度
$batch_size = 10;// 循环输出数组内容
for ($i = 0; $i < count($array); $i += $batch_size) {echo "批次 " . ($i / $batch_size + 1) . "\n";echo implode(", ", array_slice($array, $i, $batch_size)) . "\n";sleep(1); // 暂停1秒,以模拟分时输出
}?>

sleep(1)

2.chatGPT使用javascript分批分时输出的代码

在javascript中实现一个100长度的数组,分批分时输出的代码怎么写

 var arr = Array(100).fill(null).map((_, i) => i + 1); // 创建长度为100的数组function outputArrayInBatch(arr, batchNum, interval) {var startIndex = batchNum * interval; // 当前批次的起始索引var endIndex = (batchNum + 1) * interval; // 当前批次的结束索引if (startIndex > arr.length - 1) {return; // 当所有元素都输出完毕后,退出递归}if (endIndex > arr.length) {endIndex = arr.length; // 当结束索引超过数组长度时,将结束索引设置为数组的最后一个元素的索引}var batchArr = arr.slice(startIndex, endIndex); // 当前批次需要输出的元素数组//对批次数组进行遍历操作;console.log(batchArr); // 输出当前批次的元素setTimeout(function () {outputArrayInBatch(arr, batchNum + 1, interval); // 递归调用下一批次的输出}, 2000); // 每隔1秒输出一批次}// 执行输出outputArrayInBatch(arr, 0, 10); // 一次输出10个元素,共分10批输出

代码中首先创建了长度为100的数组。outputArrayInBatch()函数接收三个参数:待输出的数组、当前批次数、每批次需要输出的元素个数。在函数中,首先根据批次数和输出元素个数计算当前需要输出的元素数组;然后输出当前批次的元素,并通过setTimeout()函数递归调用函数,输出下一批次的元素。

这里输出的是每隔1秒输出一批次的元素,可以根据具体需求调整输出时间间隔。
在这里插入图片描述

二、批量修复API接口

1.修复单位不存在API

public function upDepart(){global $db, $res;dbc();@$user_phone = get_param('user_phone');if ($user_phone == "") {die("参数错误");}//读取单位认证$row = $db->fetch('depart_audit', '*', array('user_phone' => $user_phone), ' audit_id DESC');//获取单位ID$row_depart = $db->fetch('depart', 'depart_id', array('depart_name' => $row['depart_name']), ' depart_id DESC');if ($row_depart['depart_id'] == "") {die("单位不存在或未验证");}//更新单位库$user_roles = 1;//单位管理员权限;$user_menu = 0;//可操作$user_auth = 1;//已审$db->insert('admin', array('user_phone' => $user_phone, 'user_name' => $row['user_name'], 'user_pwd' => $row['user_pwd'], 'user_mail' => $row['user_mail'], 'depart_id' => $row_depart['depart_id'], 'user_depart' => $row['depart_name'],'user_branch' => $row['user_branch'], 'user_titles' => $row['user_titles'], 'user_province' => $row['province'], 'user_city' => $row['city'], 'user_area' => $row['area'],'user_roles' => $user_roles, 'user_menu' => $user_menu, 'user_auth' => $user_auth));$res["data"] = $user_phone . "-更新成功";die(json_encode_lockdata($res));}

2.修复单位depart_id不存在

public function upDeID(){global $db, $res;dbc();//读取管理员信息$sql = "select depart_id,user_depart FROM " . $db->table('admin') . " WHERE depart_id IS NULL";$sql .= " ORDER BY user_id DESC";$row = $db->queryall($sql);for ($i = 0; $i < count($row); $i++) {// echo $row[$i]['user_depart'] . '<br>';//获取单位ID$row_depart = $db->fetch('depart', 'depart_id,depart_name', array('depart_name' => $row[$i]['user_depart']), ' depart_id DESC');if ($row_depart) {$db->update('admin', array('depart_id' => $row_depart['depart_id']), array('user_depart' => $row[$i]['user_depart']));}}$res["data"] = "更新成功";die(json_encode_lockdata($res));}

3.批量更新登录权限

public function upAuth(){global $db, $res;dbc();$db->update('user', array('user_auth' => 1), array('user_auth' => 0));$res["data"] = "更新成功";die(json_encode_lockdata($res));}

三、开发中遇见的问题

1.查询字段为空的sql语句

mysql筛选某字段未空的查询语句怎么写

在MySQL中,筛选某字段未空的查询语句可以使用 IS NOT NULL 来表示。例如,假设有一个表名为 my_table,其中包含 field1 字段,要查找 field1 字段不为空的数据,可以使用以下 SQL 查询语句:

SELECT * FROM my_table WHERE field1 IS NOT NULL;

其中 SELECT * 表示选择所有列,FROM my_table 表示从 my_table 表中查询数据,WHERE field1 IS NOT NULL 表示筛选 field1 字段不为空的数据。

如果要筛选出某个字段值为空的数据,可以使用 IS NULL 来表示,例如:

SELECT * FROM my_table WHERE field1 IS NULL;

这条 SQL 查询语句将会返回 field1 字段为空的记录所有数据,其他字段可能为空或者有值。

而在实际的开发过程中,在写查询字段为空的sql语句中时,用了is null查表中user_eid为空的记录,结果是没有结果。其原因在于,只有是显示(null)的字段才是真正的空值,如果之前为该字段赋值之后删除值框里什么都没有应该是下面的写法:user_eid = ''

    public function getEid(){checkAdminAuth($_COOKIE['admin_roles'], '0', 1);//超管权限global $db, $res;dbc();//读取管理员信息$sql = "select user_eid,user_name,user_phone FROM " . $db->table('user') . " WHERE user_eid = ''";$sql .= " ORDER BY user_id DESC";// LIMIT 100$row = $db->queryall($sql);$res["data"] = $row;die(json_encode_lockdata($res));}

2.设置登录cookie永不过期

php如何设置登录cookie永不过期

要设置PHP登录cookie永不过期,可以指定一个很大的过期时间,如设置为2038年1月19日,这是PHP可以处理的最大日期。

可以使用setcookie()函数设置cookie,具体示例如下:

$cookie_name = "user";
$cookie_value = "John Doe";
$expiry_date = strtotime('2038-01-19');
setcookie($cookie_name, $cookie_value, $expiry_date, "/");

在上面的示例中,$expiry_date变量设置为2038年1月19日的时间戳,该时间戳将在setcookie()函数中设置为cookie的过期时间。在本例中,cookie的路径设置为“/”,这表示cookie与服务器上所有页面都关联,而不是仅与当前页面关联。

这样设置后,用户的登录cookie将被永久保存,直到浏览器将其删除或达到在服务器上规定的最长持续时间为止。

3.实现短信验证码的代码是什么

除了Redis外,还有很多其他的方式实现短信验证码的流控。下面是一个基于文件系统的示例代码:

<?php// 定义短信验证码保存目录
define('SMS_DIR', '/path/to/sms/dir/');// 获取客户端IP地址
$ip = $_SERVER['REMOTE_ADDR'];// 获取手机号码
$phone = 'your_phone_number';// 定义文件名规则
$filename = md5($ip . $phone) . '.json';// 检查文件是否存在
if (file_exists(SMS_DIR . $filename)) {// 如果文件存在,则读取文件内容$content = file_get_contents(SMS_DIR . $filename);// 解析JSON内容$data = json_decode($content, true);// 如果超过发送次数限制,则提示用户并退出if ($data['count'] >= 5 && time() - $data['timestamp'] < 300) {echo "发送频率过快,请稍后再试。";exit;} else {// 如果可以发送,则将发送次数加1,并更新时间戳$data['count']++;$data['timestamp'] = time();}
} else {// 如果文件不存在,则创建新文件并写入初始内容$data = ['count' => 1,'timestamp' => time()];$content = json_encode($data);file_put_contents(SMS_DIR . $filename, $content);
}// 发送短信验证码?>

在上述代码中,将短信验证码的发送次数保存在一个JSON文件中,与客户端IP地址和手机号码相关联。代码中使用md5值来生成文件名,文件内容为JSON格式的字符串,包含发送次数和最后发送时间戳两个字段。

在发送短信验证码时,先根据请求参数生成文件名,然后检查是否存在对应的文件。如果文件存在,则读取文件内容,检查发送次数和时间戳是否超过限制。如果可以发送,则将发送次数加1,并将更新后的内容写回文件;如果发送次数已经达到限制,则提示用户稍后再试。如果文件不存在,则创建新文件,并写入初始的发送次数和时间戳。

基于文件系统的方式性能略低于Redis或其他内存型数据库,同时也更容易受到并发访问的影响。因此,建议在高并发场景下使用更为高效的Redis等缓存服务器。


@漏刻有时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1414.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原创】AIGC之ChatGPT工作原理

AIGC是什么 AIGC - AI Generated Content &#xff08;AI生成内容&#xff09;&#xff0c;对应我们的过去的主要是 UGC&#xff08;User Generated Content&#xff09;和 PGC&#xff08;Professional user Generated Content&#xff09;。 AIGC就是说所有输出内容是通过AI机…

ChatGPT如何应用到工作中?我做了3个实战案例!

ChatGPT是一个基于GPT&#xff08;算法的自然语言生成技术&#xff0c;可以用于制作智能对话机器人、智能客服等应用场景。 它基于深度学习和自然语言处理技术&#xff0c;具有较强的文本生成和理解能力&#xff0c;能够有效地模仿人类思考和语言表达。 那么&#xff0c;如何…

用一张图说一说 ChatGPT 内部技术工作流程

前沿 这几天ChatGPT可谓是热火朝天&#xff0c;很多同事和朋友都来找到勇哥&#xff0c;说能不能说一说相关话题&#xff0c;但是之前几天勇哥都在默默的干一件大事情&#xff0c;今天终于成型、有结果了&#xff0c;所有就抽了点时间来和大家一起聊聊ChatGPT背后的技术&#…

火爆全网的ChatGPT 背后的工作原理

火爆全网的ChatGPT 背后的工作原理&#xff1a; 第1步是有监督的调优&#xff1a;预训练的语言模型在少量已标注的数据上进行调优&#xff0c;以学习从给定的 prompt 列表生成输出的有监督的策略&#xff08;即 SFT 模型&#xff09;&#xff1b; 第2步是模拟人类偏好&#xff…

用chatGPT提高程序员工作效率+个人使用体验

有个澳洲的朋友带一个团队正在研究一款应用层产品&#xff0c;chatGPT AI辅助程序员写代码。 目前产品内部测试估算原本一个12人的开发团队&#xff0c;使用这款产品后&#xff0c;可以缩减到4人。 最近一段使用下来&#xff0c; 发现通过使用ChatGPT&#xff0c;不仅可以获…

【ChatGPT】ChatGPT 工作原理解析 技术架构讲解 | How ChatGPT Works Technically | ChatGPT Architecture

目录 ChatGPT 1亿月活用户只用了2个月 什么是大型语言模型? 模型的有害输出问题

聊聊开源类ChatGPT工作——MOSS

自从ChatGPT发布以来&#xff0c;它的“三步走方案”就好比《九阴真经》流落到AI江湖中&#xff0c;各大门派练法不一&#xff0c;有人像郭靖一样正着练&#xff0c;循序渐进&#xff1b;有人像欧阳锋一样反着练&#xff0c;守正出奇&#xff1b;也有像梅超风一样仅练就半部《九…

面对ChatGPT我们未来有怎样变化,先了解ChatGPT工作流

不在沉默中毁灭&#xff0c;那就傍人门户&#xff0c;你吃肉我喝汤。 ChatGPT是一个基于神经网络的语言模型&#xff0c;可怕的是它具有强大的学习能力和语言理解能力&#xff0c;能没日没夜训练互联网上的各种文本数据。具体来说&#xff0c;OpenAI使用了大量的网络爬虫技术&a…

ChatGPT工作提效之初探路径独孤九剑遇强则强

ChatGPT工作提效之遇强则强 前言一、如何使用ChatGPT二、ChatGPT实战应用三、ChatGPT会叫的小孩有奶吃工具类的交互问答类的交互开发类的交互 前言 读《笑傲江湖》西湖比剑时&#xff0c;对于独孤九剑1的解读印象颇为深刻。令狐冲被任我行这个高手激发出许多精妙的剑招。这独孤…

ChatGPT工作原理解析

自 ChatGPT 发布以来&#xff0c;已经吸引了无数人一探究竟。但 ChatGPT 实际上是如何工作的&#xff1f;尽管它内部实现的细节尚未公布&#xff0c;我们却可以从最近的研究中一窥它的基本原理。 ChatGPT 是 OpenAI 发布的最新语言模型&#xff0c;比其前身 GPT-3 有显著提升。…

ChatGPT工作原理与技术细节

ChatGPT工作原理与技术细节 自ChatGPT发布以来&#xff0c;ChatGPT的能力一直在刷新大家对人工智能的认知&#xff0c;但 ChatGPT究竟是如何工作的呢&#xff1f;虽然其内部运作的细节尚未公布&#xff0c;但我们可以从最近的研究中拼凑出它的工作原理。 ChatGPT 的工作原理 Ch…

给程序员的ChatGPT使用指南:优化工作流程的 3 种实用方法

ChatGPT for Coders: 3 Practical Ways to Optimise your Workflow 自从 ChatGPT 发布以来&#xff0c;我在互联网上看到了很多关于它对未来编程可能意味着什么的讨论。 肯定有很多“FUD”在那里传播&#xff0c;但它基本上归结为两个论点&#xff1a; 编程将继续有利可图&…

ChatGPT能承担哪些工作?

ChatGPT拥有高效的自然语言处理能力&#xff0c;它最容易取代的领域可能是&#xff1a;文本分类、聊天机器人、文本生成、问答系统、文字识别和自动翻译方面。最容易取代的职业可能是&#xff1a;客服人员、技术类、媒体类、教师、法律类、金融类。使相关的人员在工作生活中更加…

重磅!ChatGPT 网页版来啦!响应速度超快!

平替 ChatGPT 继公众号对接 ChatGPT 以来&#xff0c;经过大家的试用与提出的建议&#xff0c;上线、优化了诸多功能&#xff0c;使得我们的公众号几乎完美~ 在此之上&#xff0c;不负众望&#xff0c;五一假期掏粪三天三夜&#xff0c;平替 ChatGPT 网页版 已经上线&#xf…

这个gayhub的大佬作者,更新起ChatGPT的项目,简直是高产如奶牛呐!实战网页版chatgpt-web源码(上)

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 最近chatgpt真的是火了一遍又一遍&#xff0c;基本逛gayhub&#xff0c;gitee等开源社区的时候&#xff0c;随处可见各种大佬写的开源项目。今天给大家分享的是Chanzhaoyu大佬编写的一个网页版chatgpt&#xff0c…

如何使用 ChatGPT 完全自动化网页抓取

Web 抓取是使用脚本从网站自动提取数据的过程。ChatGPT 能够为您生成网络抓取脚本代码。让我们看看这是如何工作的…… IMDb 是一个提供有关电影、电视节目和其他娱乐形式的信息的网站&#xff0c;包括评分最高的电影图表&#xff0c;该网站https://www.imdb.com/chart/top/?r…

免费快速部署ChatGPT线上聊天网页:ChatGPT API + Github + Railway

1、使用工具 &#xff08;1&#xff09;需要自己生成的openai api&#xff0c;获取API的网站&#xff1a;openAI API 获取方式&#xff1a;OpenAI的API key获取方法 &#xff08;2&#xff09;本次使用该参考项目进行部署&#xff1a;chatweb 需要将该项目fork到自己的仓库里 …

ChatGPT网页版(基于SpringBoot和Vue)

目录 1.使用说明1.1 登录1.2 获取OpenAI KEY或User Token1.3 创建对话1.4 删除会话 1.使用说明 1.1 登录 登录http://chatgpt.alpacos.cn/ 1.2 获取OpenAI KEY或User Token 如果自己有OpenAI的token(sk-xxxx)的话&#xff0c;可以直接输入&#xff0c;点击右上角绑定按钮&am…

基于Vercel自建ChatGPT网页应用

因为平时我们在使用ChatGPT官方提供的网页应用的时候&#xff0c;总是经常访问不了&#xff0c;或者经常报错&#xff0c;越来越频繁&#xff0c;一旦你离开页面太久&#xff0c;再返回跟它对话的时候&#xff0c;就会出现如下报错等等。 An error occurred. If this issue per…

ChatGPT-Next-Web: 一键轻松拥有自己专属的 ChatGPT 网页服务

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; ​ 今天给大家推荐一个非常好用的开源项目&#xff1a;ChatGPT-Next-Web。 这个开源项目可以做到一键免费部署你的私人 ChatGPT 网页应用。如果部署Vercel&#xff0c;Vercel可以绑…