Genkit の Code Execution 機能を使って生成 AI に Python コードを実行させてみた
はじめに
Genkit の version 0.5.8 で Google AI の Code Execution 機能が追加されました。これにより生成 AI に Python コードを実行させることが可能になりました。
Genkit プロジェクトの初期化
Genkit プロジェクトの初期化を行います。Genkit のバージョンを 0.5.8 以上にする必要があるので、genkit のインストールから行います。
% npm init -y
% npm i -D genkit-cli
% npm i genkit @genkit-ai/googleai genkitx-ollama
% mkdir src && touch src/index.ts
以下のコードを src/index.ts
ファイルに貼り付けます。
import { genkit, z } from 'genkit'
import { googleAI, gemini15Flash } from '@genkit-ai/googleai'
import { logger } from 'genkit/logging'
logger.setLogLevel('debug')
const ai = genkit({
plugins: [googleAI()],
model: gemini15Flash,
})
const mainFlow = ai.defineFlow({
name: 'mainFlow',
inputSchema: z.string(),
}, async (input) => {
const { text } = await ai.generate(input)
return text
})
ai.startFlowServer({ flows: [mainFlow] })
Code Execution の有効化
genkit
関数の引数で生成 AI モデルを指定している箇所で .withConfig({ codeExecution: true })
を足すだけで有効化できます。
- model: gemini15Flash,
+ model: gemini15Flash.withConfig({ codeExecution: true }),
挙動の確認
以下を実行して Developer Tool を起動します。
% npx genkit start -o -- npx tsx --watch src/index.ts
Flow メニューから実装した Flow を選択します。
まず、以下のプロンプトをリクエストしてみます。
「10万回コインを投げて、表が出た回数の割合をシミュレートしてください。」
View Trace を選択すると実際にコードが実行されたことがわかります。
次に、より直接的なリクエストをしてみます。
「Python で以下のコードを実行してください: print('Hello World') 」
先ほどと同様、View Trace を選択すると実際にコードが実行されたことがわかります。
最後に、コードとは関係のない一般的なリクエストをしてみます。
すると、コードの実行がされていないことがわかります。これは、Code Execution が tools の 1 つの選択肢として指定されているためです。生成 AI は必要な場合にしか Code Execution を実行しません。
まとめ
1 行追加するだけで簡単に Code Execution を試すことができました。これによって Genkit でできることの幅が広がったのではないかと思います。も是非試してみてください。
参考資料
- Code Execution: https://ai.google.dev/gemini-api/docs/code-execution?lang=node
- Release notes: https://github.com/firebase/genkit/releases/tag/0.5.8
Discussion