介绍。
本文展示了如何使用免费工作流引擎Dagu自动化ChatGpt。具体来说,我们将向您展示如何使用YAML定义运行Chatgpt的API并自动通过电子邮件发送结果。
什么是DAG工作流引擎?
工作流引擎是一种用于自动执行您在计算机上执行任务的工具。它不仅仅是简单地以简单的顺序执行任务,还可以指定任务之间的依赖关系,并同时同时执行任务。以下图是DAG(有向无环图)。
什么是达瓜?
Dagu是一种免费的开源DAG工作流引擎。
特征
- 可以在没有代码的情况下创建DAG(无需编程)。
- 所有操作,包括创建和运行DAG,都可以从浏览器中完成。
- 只需在Mac上安装命令并使用它。
致电Chatgpt API并通过电子邮件发送答案的示例
以下是调用chatgpt的API并通过电子邮件发送结果的示例。
每个步骤的作用很简单。
- 用指定的问题致电Chatgpt API
- 从API响应中提取答案
- 将响应转换为准备发送的HTML电子邮件
- 发送电子邮件。
因此,您将收到一封看起来像这样的电子邮件
使用chatgpt自动目标的步骤寻求问题
在本节中,目标寻求提示用于自动化目标。请注意,任何提示都可以通过重写DAG的内容以相同的方式自动化。
使用的提示:
[目标]实现目标。
的最佳主意
a [0,0] = [目标]
a [i,1-5] =实现[i,0]的5个想法。
a [i+1,0] = a [i,1-5],这是获得[i+1,0] = a [i,1-5]使用它来计算最多i = 0-5,并将结果放在带有5行和5列的HTML表中,总共25个单元格。
安装下巴
-
可以使用Homebrew安装Dagu。
brew install yohamta/tap/dagu
-
您可以通过以下命令检查安装是否成功:
dagu version
启动服务器的下巴
-
Dagu服务器可以通过以下命令启动。
dagu server
-
在您的浏览器中访问http://localhost:8080。您应该看到与以下类似的屏幕。
创建ChatGPT工作流程。
- 单击左侧的三行菜单。以下是您在我的环境中看到的。
- 按右上角的“新”按钮,然后输入新的dag
chatgpt_goalseek_example
的名称。 - 按右下角的“编辑”按钮。
-
将以下内容粘贴到编辑屏幕中并保存(“保存”按钮)。
params: GOAL="Unique and interesting bullet-hell game." env: - OPENAI_API_KEY="ChatGPT API Key" - MY_EMAIL="Recipient email address" - FORMAT: >- a[0,0]=[Goal]\n Five ideas to achieve a[i,1-5]=a[i,0]. \n The best idea to achieve a[i+1,0]=a[i,1-5]. \n \n Use this to calculate up to i=0-5 and put the results into a HTML table with 5 rows and 5 columns, 25 squares in total. \n smtp: host: "smtp.mailgun.org" port: "587" username: "Mailgun username" password: "Mailgun password" steps: - name: ask chatgpt executor: type: http config: timeout: 1200 headers: Authorization: "Bearer $OPENAI_API_KEY" Content-Type: "application/json" silent: true body: | { "model": "gpt-3.5-turbo", "messages": [ {"role": "system", "content": "Act as a state-of-art chat AI. Please output the result in a table format with 5 rows and 5 columns. Format your reply in HTML code styled with beautiful CSS."}, {"role": "user", "content": "[Goal]${GOAL}\n${FORMAT}"} ] } command: POST https://api.openai.com/v1/chat/completions output: API_RESPONSE - name: get result executor: type: jq config: raw: true command: ".choices[0].message.content" script: "$API_RESPONSE" output: MESSAGE_CONTENT depends: - ask chatgpt - name: convert escaped unicode to plain HTML command: "sh" script: | input="${MESSAGE_CONTENT}" unescaped=$(echo -e "$input" | sed 's/\\u003c/</g' | sed 's/\\u003e/>/g') echo "$unescaped" output: MESSAGE_CONTENT depends: - get result - name: send mail executor: type: mail config: to: "$MY_EMAIL" from: "$MY_EMAIL" subject: "goal seek result" message: "$MESSAGE_CONTENT" depends: - convert escaped unicode to plain HTML
设置ChatGPT API密钥和电子邮件发送服务器
-
设置chatgpt api键
用您的chatgpt api键重写下面的ChatGPT API Key
。
env: - OPENAI_API_KEY="ChatGPT API Key"
-
设置邮件发送服务器
在Mailgun注册,您可以免费发送电子邮件。使用您的MailGun用户名和密码重写以下Mailgun username
和Mailgun password
。您也可以使用其他电子邮件服务。
smtp: host: "smtp.mailgun.org" port: "587" username: "Mailgun Username" password: "Mailgun Password"
-
设置收件人电子邮件地址
将以下Recipient email address
替换为您要发送ChatGpt响应的电子邮件地址。
env: - MY_EMAIL="Recipient email address".
尝试一下并运行它。
按右上角的“开始”按钮运行DAG。在文本框中,将您想要在目标寻求提示中所要求的内容。例如,放入The best and most interesting roguelike game idea
。
执行状态显示在浏览器中。
如果发生错误,请按右上角的“重试”按钮;如果Chatgpt的API重量很重,可能会发生错误。
概括
您可以看到,工作流引擎允许您使用无代码自动化ChatGpt API呼叫。
如果您总是运行类似的提示,则定义DAG可能很有用。
您可以通过组合Chatgpt API的多个输入和输出来做更多有趣的事情。例如,可以将ChatGPT响应传递给进一步的API以改进或转换结果,如果定义为DAG,则将Chatgpt的多个角色结合起来可能是有用的,因为可以并行调用API。
。我只能梦想我们能做的事情!
达古是我使用GO语言开发的开源软件。
如果您可以参与其开发,我会很高兴。