这是通过集成 ChatGPT API 创建自动化英语学习内容系列中的第三部分。
转发: ChatGPT API Meets Tistory: The Automated English Learning Blogs
项目介绍
介绍
- 这是通过集成 ChatGPT API 创建自动化英语学习内容系列中的第三部分。
我正在尝试整合各种平台。 第一个是 SendGrid(电子邮件),第二个是 Slack。
API 允许您以请求/响应的形式自动化功能,即使在资源匮乏的设备上也是如此。
我使用了下面基于 WIZnet 的 RP2040 和 iEthernet 芯片的设备。
- W5100S-EVB-Pico
- W5500-EVB-Pico
作为参考,可以在以下链接引用现有项目。
- Integrating ChatGPT with Slack API on W5100S-EVB-Pico: Making English Study Bot
- Boost Your Day with Helpful Emails: W5100S-EVB-Pico and ChatGPT API in Action
在本文中,我们将探讨如何将 ChatGPT API 与 Tistory 平台集成以创建自动化英语学习博客。 通过将最先进的语言模型 ChatGPT 与流行的博客平台 Tistory 的强大功能相结合,学习者可以获得个性化的英语学习提示并提高他们的语言能力。
先决条件
- Tistory帐户:博客平台
- W5100S-EVB-Pico 或 W5500-EVB-Pico
- Thonny:Micropython 环境
1. 设置 Tistory 应用程序
要开始创建自动化英语学习博客的旅程,我们首先需要设置 Tistory 应用程序。 这涉及以下步骤:
a. 创建应用程序
创建 Tistory 应用程序是将 Tistory API 与 ChatGPT 集成的第一步。 通过在 Tistory 开发者中心注册应用程序并提供必要的信息(例如应用程序名称、描述和网站 URL),我们可以获得访问 Tistory API 所需的凭据。
Tistory API 的官方文档可以在下面的链接中找到。
- 소개 · GitBook
要获取 API 调用的访问令牌,您必须完成以下过程。
- 认证请求和认证码发行
- 获取访问令牌
下面的链接描述了此过程。
- Authorization Code 방식 · GitBook
创建应用程序时,您可以查看您的应用程序ID和密钥。 身份验证请求需要该值。
认证请求和认证码发放
https://www.tistory.com/oauth/authorize?client_id={client-id}&redirect_uri={redirect-uri}&response_type=code&state={state-param}
获取访问令牌
只需填写该值并将其粘贴到浏览器的地址栏中即可。 要立即检查结果,请按 F12 打开开发人员工具窗口。 (Chrome 浏览器)
GET https://www.tistory.com/oauth/access_token?client_id={client-id}&client_secret={client-secret}&redirect_uri={redirect-uri}&code={code}&grant_type=authorization_code
使用该地址访问时,会出现访问权限窗口,在这里点击“授予”按钮即可允许权限。
通过此过程,可以颁发 Tistory 访问令牌。
2. 测试 Tistory Post API
一旦我们设置了 Tistory 应用程序并获得了访问令牌,就必须测试 Tistory API 的功能。 在此步骤中,我们将重点使用流行的 Python 库开发和测试简单的后置代码: requests
.
a. 使用“请求”开发和测试简单的邮政编码
使用requests
库,我们可以编写一个代码片段,将 POST 请求发送到 Tistory API 的 post.write 端点。 此代码将包含必要的参数,例如访问令牌、博客名称、标题和帖子内容。 通过测试此代码,我们可以验证 API 调用是否成功以及创建的帖子是否正确显示在我们的 Tistory 博客上。
使用下面的代码来测试颁发的访问令牌是否正常工作。
使用值填充 TISTORY_ACCESS_TOKEN、TISTORY_BLOG_NAME 变量。
import requests
import json# set Tistory API endpoint URL and access token
TISTORY_API_URL = "https://www.tistory.com/apis/post/write"
TISTORY_ACCESS_TOKEN = "<Access token>"# set Tistory blog name and post data
TISTORY_BLOG_NAME = "<Blog name>"
TISTORY_POST_TITLE = "First Post"
TISTORY_POST_CONTENT = "This is Post Content"# create Tistory API request headers
headers = {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
}# create Tistory API request data
data = {"access_token": TISTORY_ACCESS_TOKEN,"output": "json","blogName": TISTORY_BLOG_NAME,"title": TISTORY_POST_TITLE,"content": TISTORY_POST_CONTENT
}# send Tistory API request using requests
response = requests.post(TISTORY_API_URL, headers=headers, data=data)
print(f'response: {response.content.decode("utf-8")}')# parse response data and print status
response_data = json.loads(response.content.decode("utf-8"))
print(response_data["status"])
如果请求成功,您可以收到 status、postId 和 url 作为响应,如下所示。
以下是使用 API 发布的第一篇文章。
3. 编写应用程序代码
下一步是编写生成 ChatGPT 英语学习提示的主要代码,并将 ChatGPT API 与 Tistory API 集成。
a. 生成 ChatGPT 英语学习提示
为了增强我们的自动化英语学习博客的学习体验,我们可以利用 ChatGPT 的强大功能来生成个性化的英语学习提示。 此步骤涉及修改 Tistory 帖子的返回格式以包括研究问题和答案。
b. 修改Tistory帖子的返回格式
Integrating ChatGPT with Slack API on W5100S-EVB-Pico: Making English Study Bot
上面的链接是之前进行的一个Slack联锁项目。 我根据当时使用的提示创建了更新的提示。
第一个重要条件是生成 HTML 格式的响应格式。 之后,由于这是一篇博客文章,我想要更多解释。
添加了以下短语:首先,我使用 ChatGPT 起草了一个提示,并添加和减去了内容以创建提示。
The Title: The title of content have to contain the featured 2 intermediate-level English words with HTML format.Other Content: Inscribe the remaining sections of the blog post, such as introductions, conclusions, and supplementary information, in Korean while maintaining a formal tone. Integrate relevant examples, anecdotes, or personal insights in Korean to captivate the readers and establish a deeper connection with the content.Practical Applications: Incorporate practical, real-life examples or scenarios in Korean that vividly demonstrate the application of the discussed language skills in everyday situations. This approach enables learners to grasp the significance and effectiveness of their learning journey.
标题
而且,由于博客文章需要标题,因此我编写了额外的代码来从 HTML 代码中提取标题。 使用正则表达式模式。
def get_title(content):title = Nonetry:# Define the regex pattern to match the title tagpattern = r"<title>(.*?)</title>"# Find the match using regexmatch = re.search(pattern, content)# Extract the title if a match is foundif match:title = match.group(1)print(title)except Exception as e:print(e)return title
c. 将 ChatGPT API 与 Tistory API 集成
为了充分利用 ChatGPT API 和 Tistory API 的潜力,
我们可以将两者结合起来,为英语学习者创造无缝、高效的学习体验。 此集成涉及使用 urequests 库修改代码以使其与 Micropython 兼容。
4. W5500-EVB-Pico 固件和应用程序
W5500-EVB-Pico是一款可用于开发物联网应用的开发板。 在此步骤中,我们将上传固件并更新应用程序代码。
第一步是将固件上传到 W5500-EVB-Pico。
该板可以这样连接:通过 5V micro USB 供电并连接 LAN 电缆来使用以太网网络。
a. 上传固件
第一步是将固件上传到 W5500-EVB-Pico。 这可以使用制造商提供的固件上传工具来完成。
固件可以从下面的链接下载。
- Micropython - W5500-EVB-Pico download
截至当前日期,最新固件版本为:v1.20.0 (2023-04-26) .uf2 [发行说明](最新)
如果您在按下开发板上的 BOOTSEL 按钮的同时按下 RUN 按钮,RPI-RP2 驱动器将出现在 PC 上。 复制您在此处下载的 .uf2 文件。
固件已上传,驱动器将自动无法识别。
b. 使用 Micropython 的 urequests 更新应用程序代码
为了在资源受限的环境中将 ChatGPT API 与 Tistory API 集成,我们可以使用 urequests 库修改代码,该库适用于基于 Micropython 的设备。 此修改使英语学习者能够在计算能力有限的设备上访问 ChatGPT 生成的学习提示。
c. 错误处理
在更新和测试Micropython代码的过程中,出现了以下错误。
综上所述,这是一个可以通过设置头编码格式轻松解决的问题,但我遇到了一点麻烦。
之前与 Slack 集成的测试代码很有帮助。
标头修改如下。
# Previous: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}
# Modified
headers["Content-Type"] = "application/json; charset=utf-8"
这是一个成功日志的示例。
5. 查看结果
将 ChatGPT API 与 Tistory API 集成并生成英语学习提示后,有必要查看 Tistory 博客上创建的帖子。 此步骤可确保自动化流程按预期运行,并且生成的内容准确且具有视觉吸引力。
获得一致的回复表格并不容易。 起初,我得到了更多原始答案,但当我纠正提示时,我得到了更一致的答案。
自动创建的英语学习博文内容如下:
仍然存在以下问题:
- 冗余英文单词:需要单独的数据库
- 如果你给出偏离主题的回答
- 给出的回复不包含足够的信息
总之,ChatGPT API 与 Tistory 平台的集成为创建自动化英语学习博客开辟了令人兴奋的可能性。
6. 下一步
最后一步是计划您的后续步骤。 这可能涉及创建更多帖子、完善 ChatGPT API 和 Tistory API 之间的集成,或探索使用 ChatGPT API 来增强 Tistory 博客的其他方法。
图片描述:展示将 ChatGPT API 与 Tistory API 集成以创建自动化英语学习博客文章的过程的流程图。
FAQs
此常见问题解答也是由 ChatGPT 建议的。 我留下一些可能有用的东西。
Q1. 我可以将 ChatGPT API 用于英语以外的语言吗?
是的,ChatGPT API 支持多种语言,允许用户生成学习提示并以英语以外的各种语言创建内容。
Q2. 使用Tistory进行自动化英语学习博客有哪些优势?
Tistory 提供用户友好的界面和广泛的定制选项,使其成为创建自动化英语学习博客的理想平台。 它提供了发布和组织学习提示、与学习者互动以及跟踪他们的进度所需的工具。
Q3. 我可以修改生成的学习提示的格式吗?
绝对地! Tistory 中的自定义选项允许您根据自己的喜好修改生成的学习提示的格式。 您可以合并图像、视频和其他多媒体元素来创建具有视觉吸引力的交互式学习材料。
文件
- TistoryWithGPT example code