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

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

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

关于 ChatGPT API 的一个奇思妙想

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

    最近 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  
       289 天前
    考古
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4582 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 09:55 · PVG 17:55 · LAX 02:55 · JFK 05:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.