developing-genkit-js は何をしますか?
Genkitを使用してNode.js/TypeScriptでAI搭載アプリケーションを開発します。ユーザーがGenkit、AIエージェント、フロー、ツールについてJavaScript/TypeScriptで質問したときや、Genkitのエラー、バリデーション問題、型エラー、APIの問題に遭遇したときに使用します。
概要
Genkitは、AI搭載アプリケーションを構築するためのオープンソースフレームワークです。このスキルは、Genkitを使用したNode.js/TypeScript開発を支援します。
主な機能
- フロー(Flows): AIワークフローを定義・実行するための宣言的API
- エージェント(Agents): LLMを活用した自律的なAIエージェントの構築
- ツール(Tools): 外部APIやデータソースと連携するためのツール統合
- バリデーション: Zodなどのスキーマバリデーションとのシームレスな統合
- エラーハンドリング: Genkit特有のエラー(APIエラー、型エラー、バリデーションエラー)の処理
セットアップ
npm install genkit
または、Genkit CLIを使用して新しいプロジェクトを作成します。
npx genkit init
基本的な使い方
フローの作成
import { defineFlow, runFlow } from 'genkit';
import { z } from 'zod';
const greetingFlow = defineFlow({
name: 'greetingFlow',
inputSchema: z.object({
name: z.string()
}),
outputSchema: z.string()
}, async (input) => {
return `Hello, ${input.name}!`;
});
フローの実行
const result = await runFlow(greetingFlow, { name: 'World' });
console.log(result); // Hello, World!
エラーハンドリング
Genkitを使用する際によく発生するエラーとその対処法を以下に示します。
APIエラー
try {
const result = await runFlow(myFlow, input);
} catch (error) {
if (error.message.includes('API')) {
console.error('APIエラーが発生しました。APIキーとエンドポイントを確認してください。');
}
}
バリデーションエラー
Zodのスキーマバリデーションエラーは、フロー定義時に自動的に処理されます。入力がスキーマに準拠していない場合は、明確なエラーメッセージが返されます。
ベストプラクティス
- 型安全性を確保する: すべてのフローで入出力スキーマを定義する
- エラーハンドリング: エラーを適切にキャッチし、ユーザーにわかりやすいメッセージを表示する
- ツールの分割: 複雑なタスクは複数のツールに分割する
- テスト: フローとツールのユニットテストを作成する