上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

草履虫都能看懂的chatGPT-AI接入谷歌必应实战教学(二)

[复制链接]
  • TA的每日心情
    开心
    2024-2-27 14:20
  • 签到天数: 88 天

    [LV.6]常住居民II

    22

    主题

    97

    回帖

    306

    积分

    荣誉开发者

    积分
    306

    油中2周年新人报道荣誉开发者生态建设者

    发表于 2022-12-13 15:10:00 | 显示全部楼层 | 阅读模式

    本帖最后由 bigonion 于 2023-3-11 12:38 编辑

    本帖最后由 bigonion 于 2022-12-14 19:52 编辑

    本帖最后由 bigonion 于 2022-12-14 19:49 编辑

    chatGPT 接入搜索引擎实战教学(二)eventStream的接收

    chatGPT tools plus++

    example example example example

    难度级别

    • 草履虫头目
    • 大妈
    • 小学生
    • 博士生

    关于我和zhengbangbo的故事


    在他注意到我借鉴了他接收SSE的方式代码后,他给我发了私信:
    Alt text
    受到他的启发,我开始继续追寻如何接收SSE类型,找来找去也没有关于油猴的资料,就当我陷入迷茫与绝望的时候

    我想到了福尔摩斯的一句话

    排除了所有不可能,剩下的就是真相   --福尔摩斯  

    转机

    这也就是说,油猴一般只会用GM_xmlhttpRequest函数来跨域,而这里必须跨域请求,那么,再去仔细看看GM_xmlhttpRequest的参数说不定会有效果,于是我又看了几遍details参数,欸,等等,这是什么?

    • onloadstart callback to be executed on load start, provides access to the stream object if responseType is set to "stream"

    这不就是stream类型吗,我试试他返回了什么数据类型吧,于是在

    • responseType one of arraybuffer, blob, json or stream

    responseType 里面设置为stream ,onloadstart 里面打印返回的结果

    Alt text

    是Readablestream类型,等等,我记得之前在看到fetch接收的时候也见过这个类型
    https://developer.mozilla.org/zh-CN/docs/Web/API/ReadableStream/ReadableStream

    在我仔细的翻找之下,终于找到了stream的构造以及接收方法,以下是接收方法

            onloadstart:(stream)=>{ 
                const reader = stream.response.getReader();
                let charsReceived = 0;
                reader.read().then(function processText({ done, value }) {
                    if (done) {
                        return;
                    }
                    charsReceived += value.length;
                    console.log(value)
                    return reader.read().then(processText);
                });
            },
            responseType:"stream",

    以下是具体解释:

    • Readablestream类型带有一个getReader方法,返回一个

    • ReadableStreamDefaultReader类型

      Alt text

      Alt text


    • 同时这个类型带有一个重要的read方法




    Alt text


    • read()方法返回一个promise

      promise.then方法中就带着done和value参数

      done表示传输是否结束,结束为1,没结束为0

      value则表示每一次流传输的数据

      charsReceived代表已经接收的数据长度

      接着processText最后return 自己,即reader.read().then(processText)

      形成循环递归调用

      最后我们输出以下value来看看结果吧!







    我超,真的拿到了数据!但是怎么是一堆不停打印的Uint8Array数组啊
    Alt text

    难道是?




    关于

    作者:Onion

    邮箱:[email]bigonion@bigonion.cn[/email]

    声明:未经本人同意,禁止转载、搬运、抄袭!

    NameSpace: https://bigonion.cn

    Origin:https://bigonion.cn/blog

    (二)完结

    传送门

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-12-13 15:56:08 | 显示全部楼层
    难道是字符串的16进制?
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4193

    回帖

    4059

    积分

    管理员

    积分
    4059

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-12-13 16:19:34 | 显示全部楼层
    我整个类似的网页试试
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-27 14:20
  • 签到天数: 88 天

    [LV.6]常住居民II

    22

    主题

    97

    回帖

    306

    积分

    荣誉开发者

    积分
    306

    油中2周年新人报道荣誉开发者生态建设者

    发表于 2022-12-13 16:27:37 | 显示全部楼层
    李恒道 发表于 2022-12-13 15:56
    难道是字符串的16进制?

    嘻嘻不对
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    5 小时前
  • 签到天数: 766 天

    [LV.10]以坛为家III

    46

    主题

    197

    回帖

    850

    积分

    荣誉开发者

    积分
    850

    荣誉开发者油中2周年生态建设者

    发表于 2022-12-13 17:15:15 | 显示全部楼层

    字符串ascii编码的10进制(汉字是unicode编码的10进制),用内存查看器就可以看到文本内容了,
    image.png

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-27 14:20
  • 签到天数: 88 天

    [LV.6]常住居民II

    22

    主题

    97

    回帖

    306

    积分

    荣誉开发者

    积分
    306

    油中2周年新人报道荣誉开发者生态建设者

    发表于 2022-12-13 17:21:41 | 显示全部楼层
    tfsn20 发表于 2022-12-13 17:15
    [md]字符串ascii编码的10进制(汉字是unicode编码的10进制),用内存查看器就可以看到文本内容了,
    !(data/at ...

    恭喜gg答对啦!
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    5 小时前
  • 签到天数: 766 天

    [LV.10]以坛为家III

    46

    主题

    197

    回帖

    850

    积分

    荣誉开发者

    积分
    850

    荣誉开发者油中2周年生态建设者

    发表于 2022-12-13 17:23:39 | 显示全部楼层

    嘿嘿,哥哥教程好棒棒(指学到了),ggnb
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4193

    回帖

    4059

    积分

    管理员

    积分
    4059

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-12-13 17:56:37 | 显示全部楼层
    http://test-case.ggnb.top/stream

    我写了一个steam的网页,不知道和哥哥的效果一不一样,晚点试试
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-16 15:40
  • 签到天数: 276 天

    [LV.8]以坛为家I

    115

    主题

    460

    回帖

    997

    积分

    荣誉开发者

    积分
    997

    荣誉开发者油中2周年卓越贡献生态建设者油中3周年

    发表于 2022-12-13 18:20:35 | 显示全部楼层
    ggnb!!!!!!!!
    接脚本定制
    I frequently record, because want to leave something.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-12-13 18:51:27 | 显示全部楼层
    小母牛爬树只用两条前腿,哥哥确实有点硬
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表