目录
>像这样安装OpenAI包:
列表
首页 科技周边 IT业界 如何使用Chatgpt构建简单的拼写检查程序

如何使用Chatgpt构建简单的拼写检查程序

Feb 09, 2025 am 11:24 AM

如何使用Chatgpt构建简单的拼写检查程序

在本教程中,我们将学习如何使用chatgpt在云功能中构建拼写检查器。

OpenAI的大型语言模型Chapgpt不仅仅是聊天界面。它是针对一系列任务的强大工具,包括翻译,代码生成以及我们将在下面看到的,甚至拼写检查。通过其REST API,Chatgpt提供了一种简单而极其有效的方法,可以在项目中添加AI语言分析和发电能力。

>您可以在github上找到本教程的所有代码。

>

钥匙要点

    利用chatgpt进行高级拼写检查:本教程演示了如何通过OpenAI API进行有效地用于拼写检查任务,而不是简单的错误检测来理解和纠正基于上下文的语法细微差别。
  1. >
  2. >将AI与云函数集成:本文将AI功能集成到云功能中,特别是使用AWS Lambda的集成,为构建在基于云的环境中运行的拼写检查器提供了逐步指南。 在OpenAi中探索调用函数:本教程的关键部分是探索OpenAI模型中函数调用功能的探索,该功能允许结构化的JSON响应而不是纯文本,从而可以开发更复杂和交互式AI-Power的应用程序。
  3. 云功能

这是云功能的代码:>

此打字稿功能将成为AWS lambda的处理程序,接受HTTP请求作为输入并返回HTTP响应。在上面的示例中,我们正在从传入的HTTP请求中解构身体字段,将其解析给JSON并从请求正文中读取属性TextToCheck。

openai软件包
<span>// Entry point for AWS Lambda.
</span><span>export async function spellcheck({ body }: { body: string }) {
</span>
    <span>// Read the text from the request body.
</span>    <span>const { textToCheck } = <{ textToCheck: string }>JSON.parse(body);
</span>
    <span>//... perform spellchecking
</span>
    <span>// Return an HTTP OK response
</span>    <span>return {
</span>        statusCode<span>: 200,
</span>        body<span>: JSON.stringify(...)
</span>    <span>};
</span><span>}
</span>
登录后复制
登录后复制

>要实现SpellChecker函数,我们将将TextTocheck发送到OpenAI,并要求AI模型为我们纠正任何拼写错误。为了简化这一点,我们可以在NPM上使用OpenAI包。该软件包由Openai保留为OpenAI REST API周围的方便的JavaScript/Typescript包装器。它包括我们需要的所有打字稿类型,并使调用Chatgpt变得轻而易举。

>

>像这样安装OpenAI包:

然后,我们可以在函数处理程序中导入并创建OpenAI类的实例,并传递OpenAI API密钥,在此示例中,该键存储在称为OpenAI_KEY的环境变量中。 (登录OpenAi后,您可以在用户设置中找到API密钥。)

>示例文本
<span>npm install --save openai
</span>
登录后复制
登录后复制

>最后,我们想要一些带有拼写错误的示例文本来对其进行测试,还有什么比询问chatgpt本身更好的地方!

如何使用Chatgpt构建简单的拼写检查程序

>本文是对我们的拼写检查员的良好测试,因为它包含明显的错误串行,例如“ Essense”,但也包含一些更复杂的语法错误,例如“原理”而不是“ principt”。这样的错误将测试我们的拼写检查器,超出了仅查找字典中没有出现的单词的领域。 principle princional都是有效的英语单词,因此我们的SpellChecker将需要使用它们出现的上下文来正确检测此错误。真实的测试!

>文本中,文字输出

>在我们的TextTocecheck输入中寻找拼写错误的最简单方法是创建一个提示,该提示将要求Chatgpt执行拼写检查并将更正的版本返回给我们。稍后,在本教程中,我们将探索一种更强大的方法,我们可以从OpenAI API中获取其他数据,但是目前,这种简单的方法将是一个很好的第一次迭代。

我们将需要两个提示。第一个是指示Chatgpt检查拼写错误的用户提示

在以下文本中,

更正拼写和语法错误 我们还需要一个系统提示

,这将指导模型仅返回校正的文本。

>

您是一个纠正文本的复制编辑器,您总是只用更正的文本,无解释或其他说明回复。

>系统提示对于给模型一些初始上下文很有用,并指示其为所有后续用户提示以某种方式行事。在此处的系统提示中,我们指示Chatgpt仅返回

校正文本,而不是用描述或其他领先的文本打扮。
我们可以在OpenAI Playground中测试系统和用户提示。

>对于API调用,我们将在OpenAI类中使用OpenAi.C.COREATE.CREATE({...})方法,我们在上面实例化并返回响应消息。 将所有内容汇总在一起,以下代码将将这两个提示以及输入文本一起发送到OpenAi.chat.completions.create({...})openai api上的端点。还请注意,我们正在指定该模型将其用作GPT-3.5-Turbo。我们可以为此使用任何OpenAI模型,包括GPT-4:>

>文本,json out

> 到目前为止,我们已经编写了一个AWS lambda云功能,该功能将发送一些文本到chatgpt并返回文本的更正版本,并删除了拼写错误。但是OpenAI包使我们可以做更多的事情。从我们的功能中返回一些结构化的数据真的不好,这些数据实际上列出了文本中所做的替代品吗?这将使将此云功能与前端用户界面集成到更加容易。>

幸运的是,OpenAI在API上提供了可以实现此功能的功能:函数调用。

>函数调用是> OpenAI模型中的一个功能,该模型允许Chatgpt使用一些结构化的JSON响应而不是简单的消息。通过指示AI模型调用函数,并提供可以调用的功能的详细信息(包括所有参数),我们可以从API中收到更有用的JSON响应。

>要使用函数调用,我们在聊天完成创建选项中填充函数数组。在这里,我们告诉chatgpt,存在一个称为makecorrections的函数,它可以用一个称为替换的参数来调用:

<span>// Entry point for AWS Lambda.
</span><span>export async function spellcheck({ body }: { body: string }) {
</span>
    <span>// Read the text from the request body.
</span>    <span>const { textToCheck } = <{ textToCheck: string }>JSON.parse(body);
</span>
    <span>//... perform spellchecking
</span>
    <span>// Return an HTTP OK response
</span>    <span>return {
</span>        statusCode<span>: 200,
</span>        body<span>: JSON.stringify(...)
</span>    <span>};
</span><span>}
</span>
登录后复制
登录后复制
>在这里对函数和所有参数的描述都很重要,因为Chatgpt无法访问我们的任何代码,因此它知道该功能的所有信息都包含在我们提供的描述中。参数属性描述了Chatgpt可以调用的函数签名,它遵循JSON模式来描述参数的数据结构。

上面的函数具有一个称为替换的单个参数,该参数与以下打字稿类型对齐:>

在JSON模式中定义此类型将确保我们从Chatgpt返回的JSON适合此可预测的形状,并且我们可以使用JSON.PARSE()将其验证为此类对象:

>
<span>npm install --save openai
</span>
登录后复制
登录后复制

将它们全部放在一起

<span>// Import the OpenAI package
</span><span>import OpenAI from "openai";
</span>
<span>export async function spellcheck({ body }: { body: string }) {
</span>
    <span>const { textToCheck }: { textToCheck: string } = JSON.parse(body);
</span>
    <span>// Create a new instance of OpenAI...
</span>    <span>const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });
</span>
    <span>//... perform spellchecking
</span>
    <span>return {
</span>        statusCode<span>: 200,
</span>        body<span>: JSON.stringify(...)
</span>    <span>};
</span><span>}
</span>
登录后复制
>这是我们AWS lambda函数的最终代码。它调用chatgpt并将校正的

列表

返回到一段文本中。

>在这里要注意的几个额外的事情。如前所述,只有几个OpenAI模型支持功能调用。这些模型之一是GPT-3.5-Turbo-0613,因此已在“完成端点”的呼叫中指定了这一点。我们还添加了function_call:{name:'makeCorrections'}到呼叫。该属性是对模型的指令,我们希望它能返回调用我们的makecorrections函数所需的参数,并且我们不希望它返回聊天消息:>

此功能可以部署到AWS lambda,并使用以下请求主体通过HTTP来调用:>

>它将以这样的JSON数组的形式返回更正的列表:
<span>// Import the OpenAI package
</span><span>import OpenAI from "openai";
</span>
<span>export async function spellcheck({ body }: { body: string }) {
</span>
    <span>const { textToCheck }: { textToCheck: string } = JSON.parse(body);
</span>
    <span>// Create a new instance of OpenAI.
</span>    <span>const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });
</span>
    <span>const userPrompt = 'Correct the spelling and grammatical errors in the following text:\n\n';
</span>
    <span>const gptResponse = await openai.chat.completions.create({
</span>        model<span>: "gpt-3.5-turbo",
</span>        messages<span>: [
</span>            <span>{
</span>                role<span>: "system",
</span>                content<span>: "You are a copy editor that corrects pieces of text, you always reply with just the corrected text, no explanations or other description"
</span>            <span>},
</span>            <span>{
</span>                role<span>: "user",
</span>                content<span>: userPrompt + textToCheck
</span>            <span>}
</span>        <span>]
</span>    <span>});
</span>
    <span>// The message.content will contain the corrected text...
</span>    <span>const correctedText = gptResponse.choices[0].message.content;
</span>
    <span>return {
</span>        statusCode<span>: 200,
</span>        body<span>: correctedText
</span>    <span>};
</span><span>}
</span>
登录后复制
>

结论
<span>const gptResponse = await openai.chat.completions.create({
</span>    model<span>: "gpt-3.5-turbo-0613",
</span>    messages<span>: [ ... ],
</span>    functions<span>: [
</span>        <span>{
</span>            name<span>: "makeCorrections",
</span>            description<span>: "Makes spelling or grammar corrections to a body of text",
</span>            parameters<span>: {
</span>                type<span>: "object",
</span>                properties<span>: {
</span>                    replacements<span>: {
</span>                        type<span>: "array",
</span>                        description<span>: "Array of corrections",
</span>                        items<span>: {
</span>                            type<span>: "object",
</span>                            properties<span>: {
</span>                                changeFrom<span>: {
</span>                                    type<span>: "string",
</span>                                    description<span>: "The word or phrase to change"
</span>                                <span>},
</span>                                changeTo<span>: {
</span>                                    type<span>: "string",
</span>                                    description<span>: "The new word or phrase to replace it with"
</span>                                <span>},
</span>                                reason<span>: {
</span>                                    type<span>: "string",
</span>                                    description<span>: "The reason this change is being made",
</span>                                    <span>enum: ["Grammar", "Spelling"]
</span>                                <span>}                                    
</span>                            <span>}
</span>                        <span>}
</span>                    <span>}
</span>                <span>}
</span>            <span>}
</span>        <span>}
</span>    <span>],    });
</span>
登录后复制
通过利用OpenAI API和一个云功能,您可以创建不仅识别拼写错误而且还了解上下文的应用程序,从而捕获典型的拼写检查员可能会忽略的复杂语法细微差别。本教程为基础提供了基础,但是ChatGpt在语言分析和更正中的潜在应用是广泛的。随着AI的继续发展,此类工具的功能也将如此。

>您可以在github上找到本教程的所有代码。
<span>type ReplacementsArgType = {
</span>    changeFrom<span>: string,
</span>    changeTo<span>: string,
</span>    reason<span>: "Grammar" | "Spelling"
</span><span>}[]
</span>
登录后复制

>

以上是如何使用Chatgpt构建简单的拼写检查程序的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1253
29
C# 教程
1227
24
CNCF ARM64飞行员:影响和见解 CNCF ARM64飞行员:影响和见解 Apr 15, 2025 am 08:27 AM

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

使用AWS ECS和LAMBDA的无服务器图像处理管道 使用AWS ECS和LAMBDA的无服务器图像处理管道 Apr 18, 2025 am 08:28 AM

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

21个开发人员新闻通讯将在2025年订阅 21个开发人员新闻通讯将在2025年订阅 Apr 24, 2025 am 08:28 AM

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

See all articles