AI開発の炎上を鎮火!Genkitで叶える、コード中心のAIアプリケーション構築
炎上プロジェクトにアサインされた君、お疲れ様!「AI機能を組み込め」という無茶振りをされ、途方に暮れているかもしれない。でも安心してほしい。AI開発の複雑な問題を一気に解決してくれる、心強い味方が現れた。それが、今回解説する Genkit だ。
Genkitは、まるでベテランエンジニアが書いたかのような、馴染みやすいコード中心のパターンでAIアプリケーションを構築するためのオープンソースフレームワークだ。AIモデルやサービスはどんどん増えていく一方、それぞれのAPIを理解して、テストして、監視して…とやっていると日が暮れてしまう。そんなときにGenkitを使えば、AI機能の開発が驚くほどスムーズになる。
Genkitは、AI開発における様々な課題を、エンジニアが普段使っている手法で解決してくれる。
複数のAIモデルや外部APIを組み合わせるRAG(Retrieval-Augmented Generation)のような複雑なAIワークフローを、関数呼び出しのようにシンプルに記述できる。まるで、通常のソフトウェアコンポーネントを組み立てるかのように、AI機能を構築できるんだ。
開発中のAIアプリケーションで、「なぜこの出力になったんだ?」と悩んだことはないかい?Genkitには、まるでデバッガーのように、AIモデルへの入力、出力、そして途中の処理ステップまでを視覚的に確認できるツールが備わっている。これで「AIは魔法の箱」ではなくなり、ブラックボックスの中身が丸見えになる。
AIアプリケーションの品質をどうやって測るか。Genkitは、人間による評価だけでなく、AIを使ってモデルの出力を自動で評価する機能も持っている。これを使えば、変更を加えるたびに手動でテストする手間が省け、改善サイクルを高速に回せる。
Genkitは特定のAIモデルに縛られない。Google、OpenAI、Hugging Faceなど、様々なプロバイダのモデルを簡単に切り替えて試すことができる。プロジェクトの要件やコストに合わせて、最適なモデルを柔軟に選択できるんだ。
Genkitの導入は驚くほど簡単だ。まずは、おなじみのnpmコマンドでGenkit CLIをインストールしよう。
npm i -g genkit
次に、Genkitプロジェクトを作成する。
mkdir my-ai-app
cd my-ai-app
genkit init
genkit initコマンドを実行すると、いくつかの設定が聞かれるので、指示に従って進めていこう。これにより、基本的なプロジェクト構成が自動で生成される。
最後に、必要なライブラリを追加する。ここでは、Google AIのモデルを使う前提で進める。
npm install @genkit-ai/core @genkit-ai/ai @genkit-ai/flow @genkit-ai/googleai
これで環境構築は完了だ。もう開発を始められる。
ここでは、最もシンプルな「テキスト生成」の例を見てみよう。
import * as genkit from '@genkit-ai/core';
import { configureGenkit } from '@genkit-ai/core';
import { googleAI } from '@genkit-ai/googleai';
// Genkitの設定を行う。Google AIをプロバイダとして追加。
// 環境変数 GENKIT_GOOGLEAI_API_KEY にAPIキーを設定しておくこと。
export default configureGenkit({
plugins: [googleAI()],
flowStateStore: 'firebase', // Firebaseをバックエンドとして利用する設定例
logLevel: 'debug',
enableTracingAndMetrics: true,
});
// `helloFlow`という名前のフローを定義
export const helloFlow = genkit.defineFlow(
{
name: 'helloFlow',
inputSchema: z.string(), // 入力は文字列
outputSchema: z.string(), // 出力も文字列
},
async (name) => {
// googleAIからモデルをロード
const gemini = genkit.model('google-ai', 'gemini-1.5-pro-latest');
// AIモデルにプロンプトを送信
const response = await gemini.generate({
prompt: `Tell me a fun fact about the name ${name}.`,
});
// AIのレスポンスからテキストを抽出して返す
return response.text();
}
);
Genkit CLIを使えば、このフローを簡単に実行できる。
genkit flow:run helloFlow "Alice"
このコマンドを実行すると、Genkitが定義したフローを実行し、Aliceという名前にまつわる豆知識をAIが生成してくれる。
Genkitは、単なるAIライブラリではなく、AI開発を組織的、かつ再現性高く進めるための強力なフレームワークだ。AI機能の「開発」から「運用」「改善」まで、ソフトウェアエンジニアが直面するあらゆる課題を解決してくれる。
炎上プロジェクトを立て直すには、まずは小さな成功体験を積み重ねることが重要だ。このGenkitを使って、RAGなどの複雑なAI機能をプロトタイプとしてサクッと作ってみてはどうだろうか?