最近 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 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 参数能不能解决一部分。 |
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 做的一个安卓的通知过滤
![Screenshot_1677767080.png]( https://s2.loli.net/2023/03/05/dOFEDwkPmMHAjyY.png) |
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
考古
|