试问当今科技圈最火的项目是什么,莫过 ChatGPT 所属了吧。它的发布引起了全人类广泛的关注和热议,被视为自然语言处理技术发展的一个重要里程碑,甚至有人说它是第四次工业革命的开端,虽然有点夸张但是不无道理。其模型在多项自然语言处理任务上表现优异,可以生成自然、流畅的文本,并能够进行复杂的推理和推断。
随着 ChatGPT 火热,围绕 ChatGPT 这个大风口的创业潮也随之兴起,甚至还产生了新的一种职业叫做“提示工程师(Prompt Engineer)”。故名思义就是,给 ChatGPT 一些相关的提示,再结合实际问题提问以便获取更精准的答案。利用 ChatGPT 技术,创业者可以为用户提供更加智能、高效的服务,比如翻译、信息提取、阅读理解、写作及对话等。
昨天,OpenAI(ChatGPT背后的公司)正式宣布开放 ChatGPT 的接口,从此任何人都可以在各自的应用中调用 ChatGPT 的接口,借助 ChatGPT 的技术提升应用的智能和个性化能力,进而提高办事效率。本文就是在 Excel 上利用 ChatGPT 接口实现一个批量智能操作的案例。
我的笔记本电脑的环境是 Mac,并安装了 Microsoft Excel for Mac 16.7,但实际上本文的方法应该同样适用于 Windows 环境,不过我没试过就是。
准备工作
-
新建一个 Excel 表格,切换到 Insert 页签,点击 My Add-ins:
-
到 Microsoft AppSource 搜索安装 Script Lab(在过程中需要用 Microsoft 365 账号登录 AppSource 平台):
-
安装成功之后,回到 Excel 的 My Add-ins 窗口,Refresh 一下就可以看到 Script Lab,选中之后点击 Add:
-
在 Excel 中就能看到 Script Lab 页签,切换过去,点击 Code 按钮,右边弹出 Code 窗口,从Samples 里面搜索一个名叫 Web request to GitHub API 的样板开始:
-
修改一下名称和描述:
修改 Script 代码,注意把 YOUR_OPENAI_KEY 替换成自己的 OpenAI 账号的接口密钥(怎么注册 OpenAI 自行科普一下):
/**
* Request to ChatGPT API
* @customfunction
* @param content The user's question.
* @return The AI's answer.
*/
async function Ask(content) {
const response = await fetch("https://api.openai.com/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_OPENAI_KEY"
},
body: JSON.stringify({
model: "gpt-3.5-turbo",
messages: [{ role: "user", content }]
})
});
//Expect that status code is in 200-299 range
if (!response.ok) {
throw new Error(response.statusText);
}
const jsonResponse = await response.json();
console.log(jsonResponse);
return jsonResponse.choices[0].message.content;
}
- 最后点击一下上面菜单的 Register,准备工作到此为止,准备起飞。。。
如何使用
- 选一个单元格,然后输入
=ask
,会自动提示SCRIPTLAB.REQUESTTOCHATGPTAPI.ASK
函数,选中并设置参数,最后单元格的内容是=SCRIPTLAB.REQUESTTOCHATGPTAPI.ASK("你好")
- 有了 Ask 这个函数之后,接下来就可以让它干活了,比如批量翻译,我们 B7 单元格设置成
=SCRIPTLAB.REQUESTTOCHATGPTAPI.ASK(CONCAT("把“",A7,"”翻译成中文"))
,然后往下拉,就批量生成译文了,不需要一个一个去查:
- 但是结果好像不是很满意,因为我们想要的是简洁的,而且用在软件界面的术语。优化一下 B7
=SCRIPTLAB.REQUESTTOCHATGPTAPI.ASK(CONCAT("把“",A7,"”翻译成中文,译文用在软件界面菜单上,译文要简洁"))
,然后往下拉:
- 翻译只是一个例子,还有其它许多需要智能的操作都可以参照这个,是不是很实用。。。
写在最后
感谢你们看到文章最后,这是我封博五年来第一次重新提起兴趣写博客,感谢 ChatGPT 在这个文章中提供的帮助,包括代码及这个雷人的标题。