AI フォーム検証

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-23 00:04:30734ブラウズ

フォーム検証に AI の役割はありますか?私はそれが正しいと信じています。この投稿では、それをどこに適用できるか、なぜそれが意味があるのか​​、そしてそれを構築する方法を説明します。

背景

Dea は、建設業者が次の大きな製品アイデアを追跡、計画し、出荷するのを支援する私の新しいスタートアップです。プラットフォームにおける重要なステップは、アイデアをキャプチャできることです。このために、製品の内容、誰、結果を把握する、迅速かつ構造化されたフォームを用意しました。

AI Form Validation

各入力には、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 を使用せずに自信を持って入力を検証できる場合は、AI を使用しないでください。 LLM に依存すると不確実性が生じやすく、遅延が発生します。

ただし、入力が構造化されていない場合、または入力のより深い分析が必要な場合には、有効な使用例があります。良い経験則として、AI を使用しない場合は人間/手動の承認ステップが必要な場合に AI を試してみることです。

ベストプラクティス

o1 ではなく高速モデル 4o-mini を使用して、迅速な応答とエンドユーザーにとって最高の UX を確保します。これを念頭に置いて、フォームが検証中であることをユーザーに示すこともできます。

100% 必要でない場合は、ノンブロッキング AI 検証を使用する方がよいと考えます。この例では、LLM 呼び出しが失敗した場合に検証を通過させます。ユーザーに答えを確認するよう促すこともできますが、それでも、ユーザーが正しいことを確認して続行することを許可することもできます。

最後に、単位変換など、LLM が苦手であることが知られている事柄にはこれを使用しないでください。これは関数呼び出しで可能ですが、レイテンシーに注意してください。

結論

この記事で、独自のフォームやデータ キャプチャに AI 検証を適用する方法についてのアイデアが得られたことを願っています。すでに同様のことを行っている場合は、あなたが学んだ教訓をぜひ聞かせてください。

以上がAI フォーム検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。