Craft AI Modules を利用する
Craft AI ModulesはCraft FunctionsからAIモデルを簡単に利用できる機能です。次のような特徴があります。
- プレイドがフルマネージドでホストしているので、AIモデルの契約や保守/運用が不要です。
- 入力に使ったデータはモデルの再トレーニングには使用されないなど、エンタープライズ基準のAIモデルを提供しており、安心して利用できます。
概要
Craft AI Modulesでは、Craft Functionsから利用できるAPIクライアントを経由して各種AIモデルにアクセスします。

各プロバイダにおける構成要素は次のとおりです。
Vertex AI Platform
- Craft Functions向けのクライアント
aiModulesというクライアントを提供しています。
Craft AI Modulesでできること
Craft AI Modulesでは、標準の aiModules クライアントを使って、生成AIを利用したコンテンツ生成やベクトル化、検索結果の並べ替えを実行できます。
| 機能 | メソッド | 用途 |
|---|---|---|
| Geminiによるコンテンツ生成 | gcpGeminiGenerateContent | テキスト生成、要約、分類、抽出、画像や動画などを使った回答生成 |
| Geminiによるストリーミング生成 | gcpGeminiGenerateContentStream | Geminiの生成結果を逐次受け取りたい場合 |
| Text Embeddings | gcpEmbeddingsText | テキスト検索、類似度計算、分類、クラスタリングなどで使うベクトルの作成 |
| Multimodal Embeddings | gcpEmbeddingsMulti | テキストまたは画像からベクトルを作成 |
| Rerank | gcpRerank | 検索候補をクエリとの関連度順に並べ替え |
利用できるモデルは利用可能なモデル一覧をご確認ください。各メソッドの詳しい引数や戻り値はリファレンスをご確認ください。
Geminiでコンテンツを生成する
gcpGeminiGenerateContent では、Geminiモデルを使ってコンテンツを生成できます。次のような用途で利用できます。
- 通常のテキスト生成、要約、分類、抽出、文章変換
contentsに複数ターンの会話履歴を渡すマルチターン会話systemInstructionによるシステム指示generationConfig.responseMimeTypeとgenerationConfig.responseSchemaによる構造化出力generationConfig.thinkingConfigによるThinking設定tools.functionDeclarationsとtoolConfig.functionCallingConfigによるFunction CallingcraftExtra.ragOptionsによるCraft RAGとの連携inlineDataによる画像、PDF、音声、動画などのバイナリ入力
gcpGeminiGenerateContentStream を使うと、Geminiの生成結果をストリーミングで受け取れます。入力の指定方法は gcpGeminiGenerateContent と同様です。
画像・動画などの入力
画像、PDF、音声、動画などのファイルをGeminiに渡す場合は、contents[].parts[] の inlineData にBase64エンコードしたデータを指定します。
const response = await aiModules.gcpGeminiGenerateContent({ model: "gemini-2.5-flash", contents: [ { role: "user", parts: [ { text: "この画像の内容を説明してください。" }, { inlineData: { mimeType: "image/png", data: "BASE64_ENCODED_IMAGE", }, }, ], }, ],});Embeddingsでベクトルを作成する
gcpEmbeddingsText では、テキストをベクトル化できます。検索クエリや検索対象ドキュメントのベクトル作成、類似度計算、分類、クラスタリングなどに利用できます。
instances[].task_type を指定すると、検索クエリ用、検索対象ドキュメント用、分類用など、用途に応じた埋め込みを作成できます。parameters.outputDimensionality で出力次元数も調整できます。
gcpEmbeddingsMulti では、テキストまたは画像をベクトル化できます。画像を指定する場合は、Base64エンコードした画像データを bytesBase64Encoded に指定します。dimension には 128、256、512、1408 のいずれかを指定できます。
Rerankで検索結果を並べ替える
gcpRerank では、検索クエリと検索候補を渡して、候補を関連度順に並べ替えられます。ベクトル検索やキーワード検索で取得した候補を、生成AIアプリケーションへ渡す前に再評価できます。
records には、各候補の id、title、content を指定します。topN で返却する上位件数を指定でき、ignoreRecordDetailsInResponse でレスポンスに title と content を含めるかを制御できます。
利用方法
Craft AI Modulesの利用方法を説明します。
Vertex AI Platformのモデルを利用する
Vertex AI Platformのモデルは aiModules クライアント経由で利用できます。利用できるメソッドはリファレンスをご確認ください。
// Main export functionexport default async function (data, { MODULES }) {
const { aiModules } = MODULES;
// コンテンツ生成(テキスト生成)を行う const response = await aiModules.gcpGeminiGenerateContent({ model: "gemini-2.5-flash", contents: [{ role: 'user', parts: [{ text: "How does AI work?" }] }], });
// 返却値のフォーマット // response = { // usageMetadata: { // candidatesTokenCount: ..., // totalTokenCount: ..., // promptTokenCount: ..., // thoughtsTokenCount: ..., // }, // candidates: [ // { // role: 'user', // 役割 // parts: [ // text: 'answer text...', // 生成結果 // functionCall: { // tool 呼び出しの引数 // name: 'tool', // args: { ... }, // }, // functionResponse: { // tool 呼び出し結果 // name: 'tool', // response: { ... }, // }, // ... // ], // finishReason: '...' // 回答終了理由 // }, // ... // ], // } ...}