ホームページ >ウェブフロントエンド >jsチュートリアル >AI フォーム検証
フォーム検証に AI の役割はありますか?私はそれが正しいと信じています。この投稿では、それをどこに適用できるか、なぜそれが意味があるのか、そしてそれを構築する方法を説明します。
Dea は、建設業者が次の大きな製品アイデアを追跡、計画し、出荷するのを支援する私の新しいスタートアップです。プラットフォームにおける重要なステップは、アイデアをキャプチャできることです。このために、製品の内容、誰、結果を把握する、迅速かつ構造化されたフォームを用意しました。
各入力には、Zod と Superforms を利用した標準的な検証が含まれています。ただし、最初の草案が一貫性があり、合法的で安全であることを確認したいと考えています。ここで AI が役に立ちます。
Vercel の AI SDK を使用して簡単な検証関数を作成しました。
async function isValidIdea(draft: string) { const { object } = await generateObject({ model: openai('gpt-4o-mini'), system: `You are responsible for checking if an idea is coherent, legal and safe. Please reject any ideas that contain spam or harmful content. If you are unsure then allow the idea.`, prompt: draft, temperature: 0, schema: z.object({ isValid: z.boolean() }) }); return object.isValid; }
generateObject を使用すると、LLM からタイプセーフで構造化された出力を取得できます。プロンプトの 3 つの部分を詳しく見てみましょう:
ネットワークリクエストはさまざまな理由で失敗する可能性があるため、フォームアクション内で try/catch ブロック内でこの関数を呼び出します。私たちの場合、OpenAI からの失敗があった場合でも、検証を通過させます。
const form = await superValidate(request, zod(ideaSchemaV1)); if (!form.valid) { return fail(400, { form, error: null }); } const draft = ideaToDraft(form.data); try { const isValid = await isValidIdea(draft); if (!isValid) { return fail(400, { form, error: 'Please check your answers' }); } } catch (e) { console.error(e); // don't prevent submission if the ai validation fails }
AI を使用せずに自信を持って入力を検証できる場合は、AI を使用しないでください。 LLM に依存すると不確実性が生じやすく、遅延が発生します。
ただし、入力が構造化されていない場合、または入力のより深い分析が必要な場合には、有効な使用例があります。良い経験則として、AI を使用しない場合は人間/手動の承認ステップが必要な場合に AI を試してみることです。
o1 ではなく高速モデル 4o-mini を使用して、迅速な応答とエンドユーザーにとって最高の UX を確保します。これを念頭に置いて、フォームが検証中であることをユーザーに示すこともできます。
100% 必要でない場合は、ノンブロッキング AI 検証を使用する方がよいと考えます。この例では、LLM 呼び出しが失敗した場合に検証を通過させます。ユーザーに答えを確認するよう促すこともできますが、それでも、ユーザーが正しいことを確認して続行することを許可することもできます。
最後に、単位変換など、LLM が苦手であることが知られている事柄にはこれを使用しないでください。これは関数呼び出しで可能ですが、レイテンシーに注意してください。
この記事で、独自のフォームやデータ キャプチャに AI 検証を適用する方法についてのアイデアが得られたことを願っています。すでに同様のことを行っている場合は、あなたが学んだ教訓をぜひ聞かせてください。
以上がAI フォーム検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。