首页 >科技周边 >IT业界 >如何使用Chatgpt构建简单的拼写检查程序

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

William Shakespeare
William Shakespeare原创
2025-02-09 11:24:10820浏览

如何使用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