を使用してクラウド関数内でスペルチェッカーを構築する方法を学びます。
Openaiの大規模な言語モデルChapgptは、単なるチャットインターフェイス以上のものです。これは、翻訳、コード生成、および以下に示すように、スペルチェックを含むさまざまなタスクのための強力なツールです。 REST APIを通じて、CHATGPTは、AI言語分析と生成機能をプロジェクトに追加するためのシンプルで非常に効果的な方法を提供します。 このチュートリアルのすべてのコードをgithubで見つけることができます。キーテイクアウト 高度なスペルチェックのためにchatgptを使用するこのチュートリアルは、chatgptがopenai APIを介してどのようにスペルチェックタスクに効果的に使用できるかを示しています。 AIとクラウド関数の統合:この記事では、AI機能のクラウド関数への統合、特にAWS Lambdaを使用して、クラウドベースの環境内で動作するスペルチェッカーを構築するための段階的なガイドを提供します。
OpenAIでの機能呼び出しの探索:このチュートリアルの重要な部分は、OpenAIモデルの関数呼び出し機能の調査です。これにより、平易なテキストの代わりに構造化されたJSON応答が可能になり、より洗練されたインタラクティブなAI-Poweredアプリケーションの開発が可能になります。 。その後、
関数ハンドラーにOpenAIクラスのインスタンスをインポートして作成でき、この例ではOpenAi_Keyと呼ばれる環境変数に保存されているOpenAI APIキーを渡します。 (Openaiにサインアップしたら、ユーザー設定にAPIキーを見つけることができます。)<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>
サンプルテキスト
このテキストは、「エッセンス」などの明らかな誤ったスペルが含まれているだけでなく、「原理」の代わりに「原理」などのより複雑な文法エラーも含まれているため、スペルチェッカーの良いテストです。このようなエラーは、辞書に表示されない単語を単に探すという領域を超えて、スペルチェッカーをテストします。 原則およびプリンシパルはどちらも有効な英語の単語であるため、私たちのスペルチェッカーは、この間違いを正しく検出するために表示されるコンテキストを使用する必要があります。実際のテスト!
TextTocheck入力でスペルミスを探す最も簡単な方法は、ChatGptにスペルチェックを実行し、修正されたバージョンを当社に返すように依頼するプロンプトを作成することです。このチュートリアルの後半では、OpenAI APIから追加のデータを取得できるはるかに強力な方法を探りますが、今のところ、この単純なアプローチは良い最初のイテレーションになります。
これには2つのプロンプトが必要です。 1つ目は、chatgptにスペルミスをチェックするように指示するユーザープロンプトです。
次のテキストのスペルと文法の誤りを修正します。 また、システムのプロンプト
が必要です。これは、修正されたテキストのみを返すようにモデルを導くものです。
あなたはテキストを修正するコピーエディターです。常に修正されたテキストだけで返信し、説明やその他の説明はありません。 システムプロンプトは、モデルに初期コンテキストを提供し、後続のすべてのユーザープロンプトに対して特定の方法で動作するように指示するのに役立ちます。ここのシステムプロンプトでは、chatgptにのみ
のみを返すように指示しており、説明やその他の主要なテキストでドレスアップしません。Openaiの遊び場でシステムとユーザープロンプトをテストできます。
API呼び出しの場合、Openai.Chat.comPletions.Create({...})メソッドを使用します。 すべてをまとめると、以下のコードはこれら2つのプロンプトと入力テキストとともにOpenai.chat.completions.create({...})EndpointにOpenAI APIのエンドポイントを送信します。また、GPT-3.5ターボとして使用するモデルを指定していることにも注意してください。 GPT-4:
など、OpenAIモデルを使用できます。テキストIn、json out
これまでのところ、AWS Lambdaクラウド機能を作成しました。これは、chatgptにテキストを送信し、スペルミスが削除されたテキストの修正バージョンを返すようにしました。しかし、Openaiパッケージにより、私たちはもっと多くのことをすることができます。テキストで作成された代替品を実際にリストしている機能から構造化されたデータを返すのはいいことではないでしょうか?これにより、このクラウド機能をFrontEndユーザーインターフェイスと統合することがはるかに簡単になります。
幸いなことに、OpenaiはAPIの機能を提供します。
関数呼び出しは、いくつかのopenaiモデルに存在する機能です。これにより、ChatGptは簡単なメッセージの代わりに構造化されたJSONで応答できます。 AIモデルに関数を呼び出すように指示し、呼び出すことができる関数の詳細(すべての引数を含む)を提供することにより、APIからより便利で予測可能なJSON応答を受け取ることができます。 関数呼び出しを使用するには、チャット完了の作成オプションに関数配列を設定します。ここでは、MakeCorrectionsという関数が存在し、置換と呼ばれる1つの引数で呼び出すことができることをChatGptに伝えています。
関数とすべての引数の説明はここで重要です。なぜなら、ChatGptは私たちのコードのいずれにもアクセスできないため、関数について知っていることはすべて、それを提供する説明に含まれています。パラメータープロパティは、ChatGPTが呼び出すことができる関数の署名を記述し、JSONスキーマに従って引数のデータ構造を説明します。
上記の関数には、次のタイプスクリプトタイプに合わせた代替と呼ばれる単一の引数があります。<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>
JSONスキーマでこのタイプを定義することで、ChatGPTから戻ってきたJSONがこの予測可能な形状に適合し、json.parse()を使用して、このタイプのオブジェクトにゆるくすることができます。
すべてをまとめる
<span>npm install --save openai </span>
リストをテキストに返します。
ここに注意すべきいくつかの余分なこと。前述のように、いくつかのOpenAIモデルのみが機能呼び出しをサポートしています。これらのモデルの1つはGPT-3.5-Turbo-0613であるため、これは完了エンドポイントへの呼び出しで指定されています。また、function_call:{name: 'makecorrections'}をコールに追加しました。このプロパティは、MakeCorrections関数を呼び出すために必要な引数を返すことを期待するモデルへの指示であり、チャットメッセージを返すとは思わないことを期待しています。<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>
このようなjsonアレイとして修正のリストを返します:
結論Openai APIとクラウド関数を活用することにより、スペルエラーを特定するだけでなく、コンテキストを理解し、典型的なスペルチェッカーが見落とす可能性のある複雑な文法ニュアンスをキャプチャするアプリケーションを作成できます。このチュートリアルは基盤を提供しますが、言語分析と修正におけるChatGPTの潜在的なアプリケーションは膨大です。 AIが進化し続けるにつれて、そのようなツールの機能も進化します。
<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>
以上がChatGptでシンプルなスペルチェッカーを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。