关于 ChatGPT API 的一个奇思妙想 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
neteroster
V2EX    奇思妙想

关于 ChatGPT API 的一个奇思妙想

  •  
  •   neteroster 2023-03-04 19:34:52 +08:00 4123 次点击
    这是一个创建于 955 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近 ChatGPT API 的发布使得和 ChatGPT 的对话可以在程序里面被实现了,这大大加宽了其适用范围。

    问题

    然而现在有一个问题,就是与 AI 交互数据是一个难事:我们的大部分数据,都无法直接和 AI 交互,例如邮件、文件系统或者像 Telegram 上的消息等。因为这些平台都还没有实现与 AI 的融合,需要我们自己从这些地方获取数据然后交给 AI 处理。

    想法

    新的想法是,是否能建立一个中间层,比如写一个程序,它具备访问我们的邮件、文件系统和 IM 消息等数据的能力,同时也可以和 AI 沟通,完成我们的需求。

    然而毕竟程序只能理解固定格式的语言,所以得绕一些弯路,我进行了一些实验,大致得到了一种可行的方案:

    首先,建立两个上下文,对第一个 AI 说

    来自 OpenAI 的语言模型,你好!现在你将负责用一种特殊的编程语言编程,实现我的需求,具体内容如下: 这种编程主要有两种语法 1. `get_data(data_type, number)` 你可以利用这个语法获取我的数据。 值得注意的是,现在只有允许一种 `data_type`,就是 `email`,比如写 `get_data(email, 5)` 就是获取我的后 5 封邮件。 2. `send_to_ai(content, requirement)` 你可以利用这个语法把你获取的信息提交给一个外部的人工智能,并且要求它处理数据并返回结果给用户。`content` 是你提供给这个外部 AI 的数据,`requirement` 是你希望这个外部 AI 如何处理这些数据,是字符串。 举例: 例如我要求你编程帮我看看我的邮箱有没有垃圾邮件。 你应该写 `send_to_ai(get_data(email, 5), "看看给你的邮件列表里面有没有垃圾邮件")` 下面请等待我的要求 

    然后我进一步对他说(当然是编的):

    对了,我最近的谷歌账户好像不太正常,你能帮我看看最近有没有谷歌给我的警告邮件吗。(请用上述编程语言实现) 

    这个(请用上述编程语言实现)可以由程序自动的添加上去。

    然后它果真按照我的要求给出了代码:

    send_to_ai(get_data('email', 10), '查看邮件中是否有谷歌账户的警告信息') 

    这样我们的程序就可以解析它的代码,获取我们的邮件,然后把它和要求“查看邮件中是否有谷歌账户的警告信息”一起提供给处于另一个全新上下文的 AI.

    查看邮件中是否有谷歌账户的警告信息 [0] $10 for a holiday trip, why not apply now! [1] 安全警告:Google 看到来自对你账户异常 IP 的登录。 [2] 招商银行信用卡,多买多省,快来开户吧。 [3] Facebook 今日热门 [4] 这些博客,你会喜欢其中 5 个的。 [5] [ xxxx 大学] 你的期末考试分数汇总 [6] 阿里云学生福利再升级!云服务器低至 10 元每月! [7] 商品购买成功 京东 [8] 知乎日报:宇宙的大小是有限的吗? 

    (邮件都是我编的)

    这个 AI 就回复我

    有谷歌账户的警告信息: [1] 安全警告:Google 看到来自对你账户异常 IP 的登录。 

    我们的思路确实达到了目标。

    杂项

    • 我试过在一个上下文中要求它编写代码和处理数据,看起来它并不能很好的理解这件事,所以拆成了两个上下文,实验下来效果相当稳定。
    • 确实如果这样用可能会把一些隐私信息发给 ChatGPT ,不过这里只是探索一下可能性。
    • 上面这个做法相当的粗糙,也忽略了一些细节,我相信有进一步的改进空间。
    • 不知道是不是我火星了,感觉可能已经有人想到并且在实现这个思路了?如果有的话,欢迎告诉我!
    第 1 条附言    2023-03-04 23:12:33 +08:00
    确实会有回复不稳定、不遵循要求的情况,不知道是否能通过调整参数和提示词改进
    16 条回复    2023-06-14 10:41:08 +08:00
    d5
        1
    d5  
       2023-03-04 21:16:21 +08:00
    Cool!
    d5
        2
    d5  
       2023-03-04 21:16:44 +08:00
    有点像 ifttt + chatGPT
    sechi
        3
    sechi  
       2023-03-04 22:09:39 +08:00
    感觉很有意思,等一个大佬的代码实现
    kongkongye
        4
    kongkongye  
       2023-03-04 22:53:22 +08:00 via iPhone
    我就说一点,它的回复不稳定,给人看没问题,给机器解析有小概率输出格式不对
    ALLROBOT
        5
    ALLROBOT  
       2023-03-04 22:57:48 +08:00
    回复随机性较大,回复的代码并不具备可靠性
    RustingSword
        6
    RustingSword  
       2023-03-04 23:00:43 +08:00   1
    也可以让第二个 AI 返回结构化数据,方便下游处理,试了一下

    ```
    输入:

    > 查看邮件中是否有谷歌账户的警告信息,将结果用 json 形式返回,比如`{"has_warning": true, "email_id": [3, 7]}`,或者`{"has_warning": false, "email_id": []}`

    > [0] $10 for a holiday trip, why not apply now!
    > [1] 安全警告:Google 看到来自对你账户异常 IP 的登录。
    > [2] 招商银行信用卡,多买多省,快来开户吧。
    > [3] Facebook 今日热门
    > [4] 这些博客,你会喜欢其中 5 个的。
    > [5] [ xxxx 大学] 你的期末考试分数汇总
    > [6] 阿里云学生福利再升级!云服务器低至 10 元每月!
    > [7] 商品购买成功 京东
    > [8] 知乎日报:宇宙的大小是有限的吗?
    > [9] 安全警告:Google 看到来自对你账户异常 IP 的登录。

    返回:

    > {"has_warning": true, "email_id": [1, 9]}
    ```

    3 楼提到的回复稳定性问题,不知道调整 temperature 参数能不能解决一部分。
    youthfire
        7
    youthfire  
       2023-03-04 23:46:32 +08:00 via iPhone
    6 楼说的调整稳定性是可行的。我也在尝试让它自编代码,以完成某些任务,虽然调低 temperature 也不能完全避免错误代码输出,但实测确实降低了不少概率。对于精度要求不高,允许试错的操作,是可以应用的。
    lysoul
        8
    lysoul  
       2023-03-04 23:50:51 +08:00
    有点意思,用 chatGPT 的语义理解能力代替了正则匹配之类传统的处理字符串的方式
    MossFox
        9
    MossFox  
       2023-03-05 00:16:03 +08:00
    我试过让之前的达芬奇模型在特定条件下输出“null”,终止符是正确配置了的,然后某次遇到了回复“Null”(大写开头)。
    总之就是不稳定。虽说可以改 prompt 来引导就是了。
    sewer
        10
    sewer  
       2023-03-05 00:38:17 +08:00
    啊这 我已经搞了 (哭笑) https://v2ex.com/t/921173
    sewer
        11
    sewer  
       2023-03-05 00:42:27 +08:00
    用 GPT3 做的一个安卓的通知过滤
    ![Screenshot_1677767080.png]( https://s2.loli.net/2023/03/05/dOFEDwkPmMHAjyY.png)
    XiaoBaiYa
        12
    XiaoBaiYa  
       2023-03-05 01:09:11 +08:00 via iPhone
    @MossFox 其实换个思路,如果结果不稳定,可以写程序限制一下输出结果,如果结果不符合规范,直接丢弃
    ranley123
        13
    ranley123  
       2023-03-05 01:46:05 +08:00 via Android
    我觉得这个想法蛮酷的,不管是做成一个产品还是作为个人对 chatgpt 的探索,都值得一试。
    jewdore
        14
    jewdore  
       2023-03-05 14:12:53 +08:00
    哈哈哈 也做了一个小游戏 https://walking-dead.openai-lab.com/
    xujianxing
        15
    xujianxing  
       2023-03-29 17:44:39 +08:00
    Chat GPT Plugin 发布了,牛啊牛啊,这是不是你想要的
    YiPeng0505
        16
    YiPeng0505  
       2023-06-14 10:41:08 +08:00
    考古
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     973 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:28 PVG 06:28 LAX 15:28 JFK 18:28
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86