最近 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 的登录。
我们的思路确实达到了目标。
![]() | 1 d5 2023-03-04 21:16:21 +08:00 Cool! |
![]() | 2 d5 2023-03-04 21:16:44 +08:00 有点像 ifttt + chatGPT |
![]() | 3 sechi 2023-03-04 22:09:39 +08:00 感觉很有意思,等一个大佬的代码实现 |
![]() | 4 kongkongye 2023-03-04 22:53:22 +08:00 via iPhone 我就说一点,它的回复不稳定,给人看没问题,给机器解析有小概率输出格式不对 |
![]() | 5 ALLROBOT 2023-03-04 22:57:48 +08:00 回复随机性较大,回复的代码并不具备可靠性 |
![]() | 6 RustingSword 2023-03-04 23:00:43 +08:00 ![]() 也可以让第二个 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 参数能不能解决一部分。 |
![]() | 7 youthfire 2023-03-04 23:46:32 +08:00 via iPhone 6 楼说的调整稳定性是可行的。我也在尝试让它自编代码,以完成某些任务,虽然调低 temperature 也不能完全避免错误代码输出,但实测确实降低了不少概率。对于精度要求不高,允许试错的操作,是可以应用的。 |
8 lysoul 2023-03-04 23:50:51 +08:00 有点意思,用 chatGPT 的语义理解能力代替了正则匹配之类传统的处理字符串的方式 |
![]() | 9 MossFox 2023-03-05 00:16:03 +08:00 我试过让之前的达芬奇模型在特定条件下输出“null”,终止符是正确配置了的,然后某次遇到了回复“Null”(大写开头)。 总之就是不稳定。虽说可以改 prompt 来引导就是了。 |
![]() | 10 sewer 2023-03-05 00:38:17 +08:00 啊这 我已经搞了 (哭笑) https://v2ex.com/t/921173 |
![]() | 11 sewer 2023-03-05 00:42:27 +08:00 用 GPT3 做的一个安卓的通知过滤  |
12 XiaoBaiYa 2023-03-05 01:09:11 +08:00 via iPhone @MossFox 其实换个思路,如果结果不稳定,可以写程序限制一下输出结果,如果结果不符合规范,直接丢弃 |
13 ranley123 2023-03-05 01:46:05 +08:00 via Android 我觉得这个想法蛮酷的,不管是做成一个产品还是作为个人对 chatgpt 的探索,都值得一试。 |
14 jewdore 2023-03-05 14:12:53 +08:00 哈哈哈 也做了一个小游戏 https://walking-dead.openai-lab.com/ |
15 xujianxing 2023-03-29 17:44:39 +08:00 Chat GPT Plugin 发布了,牛啊牛啊,这是不是你想要的 |
16 YiPeng0505 2023-06-14 10:41:08 +08:00 考古 |