关于 ChatGPT API 的一个奇思妙想

2023-03-04 19:34:52 +08:00
 neteroster

最近 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 的登录。

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

杂项

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/921155

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX