コンテンツにスキップ

Craft AI Modules Google

const { aiModules } = MODULES;

利用可能なモデルとモデルごとの制約は利用可能なモデル一覧をご確認ください。 料金はCraft AIトークンとコストをご確認ください。

Standard AI modules for GCP services

Geminiにリクエストを送信する

Returns Promise<GeminiResultValue>

Geminiにストリーミングリクエストを送信する

最初のチャンクを受信する前にエラーが発生した場合、onErrorへエラーを渡し、Promiseがrejectされます。 チャンク受信後にエラーが発生した場合、onMessageへ{error: ‘エラーメッセージ’}を渡し、onCompleteで終了します。

Returns Promise<void>

TextEmbeddingsにリクエストを送信する

  • param Object

    • param.text string テキストの内容 (deprecated, use instances instead)
    • param.instances Array<TextEmbeddingInstance>? インスタンスの配列。gemini-embedding-2 は入力ごとに最大5件ずつ並列実行し、結果を入力順に返します
    • param.parameters TextEmbeddingParameters? パラメータ。gemini-embedding-2 では autoTruncate=false は不可、outputDimensionality は 128〜3,072 の整数
    • param.model string? モデル名 (optional)。利用可能なモデルは利用可能なモデル一覧を参照

Returns Promise<EmbeddingsResultValue>

MultiModalEmbeddingsにリクエストを送信する

  • Throws Error failed. text or bytesBase64Encoded is required

Returns Promise<MultiEmbeddingsResultValue>

GCP Rerank APIにリクエストを送信する

  • param Object

    • param.query string 検索クエリ
    • param.records Array<RerankRecord> ランク付けするレコードの配列
    • param.model string? モデル名 (optional)。利用可能なモデルは利用可能なモデル一覧を参照
    • param.ignoreRecordDetailsInResponse boolean? レコードのタイトルとコンテンツも返さないか(デフォルト: true)
    • param.topN number? 返される上位レコードの数(デフォルト: 10)
  • Throws Error failed. query and records are required

Returns Promise<RerankResultValue>

Standard版で利用可能なGeminiモデル

Geminiモデルのバリデーション

  • Throws Error モデルが許可されていない場合

Type: Object

  • maxOutputTokens number? 最大出力トークン数

  • temperature number? 温度パラメータ (0-2)。gemini-3.5-flash-liteとgemini-4-argonではカスタム値は無視されます

  • topP number? Top-p サンプリング。gemini-3.5-flash-liteとgemini-4-argonではカスタム値は無視されます

  • responseMimeType string? レスポンスのMIMEタイプ

  • responseSchema Object? レスポンススキーマ

  • thinkingConfig Object? Thinking mode設定

    • thinkingConfig.includeThoughts boolean? 思考プロセスを含めるか
    • thinkingConfig.thinkingBudget number? 思考用トークン予算(Gemini 2.5モデル用、0-32768)
    • thinkingConfig.thinkingLevel ("minimal" | "low" | "medium" | "high")? 思考レベル。モデルごとの許可値と既定値は、利用可能なモデル一覧とこのページのモデル設定を参照

Type: Object

  • category ("HARM_CATEGORY_HARASSMENT" | "HARM_CATEGORY_HATE_SPEECH" | "HARM_CATEGORY_SEXUALLY_EXPLICIT" | "HARM_CATEGORY_DANGEROUS_CONTENT") 安全性カテゴリ
  • threshold ("BLOCK_NONE" | "BLOCK_ONLY_HIGH" | "BLOCK_MEDIUM_AND_ABOVE" | "BLOCK_LOW_AND_ABOVE") ブロック閾値

Type: Object

  • content Object コンテンツ
  • finishReason string? 終了理由
  • groundingMetadata Object? グラウンディングメタデータ

Type: Object

  • candidates Array<GeminiCandidate> 候補リスト

  • usageMetadata Object 使用量メタデータ

    • usageMetadata.promptTokenCount number プロンプトトークン数
    • usageMetadata.candidatesTokenCount number 候補トークン数
    • usageMetadata.totalTokenCount number 合計トークン数
  • groundingMetadata Object? グラウンディングメタデータ

Type: Object

  • delta Object? デルタコンテンツ
  • finishReason string? 終了理由
  • groundingMetadata Object? グラウンディングメタデータ
  • usageMetadata Object? 使用量メタデータ(最終チャンク)
  • error string? チャンク受信後に発生したエラーのメッセージ

Type: Object

  • corpusId string RAG ID
  • vectorDistanceThreshold number? ベクトル距離の閾値
  • llmRankerModel string? LLMランカーのモデル名
  • rankServiceModel string? ランクサービスのモデル名
  • topK number? トップK
  • metadataFilter string? メタデータフィルタ文字列(CEL構文、例: ‘category == “HR”’)

Type: Object

Type: Object

  • name string 関数名
  • description string? 関数の説明
  • parameters Object? パラメータのJSONスキーマ

Type: Object

Type: Object

  • mode ("AUTO" | "ANY" | "NONE")? Function calling mode
  • allowedFunctionNames Array<string>? 許可する関数名のリスト

Type: Object

Type: Object

Type: Object

  • onMessage function (GeminiStreamChunk): void メッセージ受信時のコールバック
  • onError function (Error): void? エラー発生時のコールバック
  • onComplete function (): void? ストリーミング完了時のコールバック

Type: Object

  • model string モデル(必須)。利用可能なモデルは利用可能なモデル一覧を参照
  • contents Array<Content> 会話のメッセージ配列。各要素はContentオブジェクト(Content, ContentPart型を参照)。gemini-3.5-flash-liteでは末尾のroleにmodelを指定できません
  • systemInstruction string? システムインストラクション
  • generationConfig GeminiGenerationConfig? 生成設定
  • safetySettings Array<GeminiSafetySetting>? 安全性設定
  • tools StandardGeminiTools? ツール設定(Function callingのみ)
  • toolConfig StandardGeminiToolConfig? ツール設定(Function calling設定のみ)
  • craftExtra CraftExtra? Craft固有の追加設定(RAGオプションなど)
  • onMessage function (GeminiStreamChunk): void メッセージ受信時のコールバック
  • onError function (Error): void? エラー発生時のコールバック
  • onComplete function (): void? ストリーミング完了時のコールバック

Type: Object

  • name string 呼び出す関数の名前
  • args Object 関数に渡す引数

Type: Object

  • name string 呼び出された関数の名前
  • response Object 関数からのレスポンス

Type: Object

  • usageMetadata Object 使用量メタデータ

    • usageMetadata.candidatesTokenCount number 候補のトークン数
    • usageMetadata.totalTokenCount number トークン総数
    • usageMetadata.promptTokenCount number プロンプトのトークン数
    • usageMetadata.thoughtsTokenCount number? 思考のトークン数
  • candidates Array<Object> 回答内容

    • candidates[].content Object 回答の内容

      • candidates[].content.role string 役割

      • candidates[].content.parts Array<Object> 回答の部分

        • candidates[].content.parts[].text string 回答のテキスト
        • candidates[].content.parts[].thought boolean? 思考プロセスかどうか
        • candidates[].content.parts[].functionCall FunctionCall functionCall
        • candidates[].content.parts[].functionResponse FunctionResponse functionResponse
    • candidates[].finishReason string 回答終了理由

Type: Object

  • mimeType string MIMEタイプ(例: ‘image/png’, ‘image/jpeg’, ‘application/pdf’)
  • data string Base64エンコードされたデータ

Type: Object

  • text string? テキストコンテンツ
  • inlineData InlineData? インラインデータ(画像、PDF等)
  • functionCall FunctionCall? 関数呼び出し(モデルからの応答に含まれる)
  • functionResponse FunctionResponse? 関数の実行結果(ユーザーからの入力として使用)
  • thoughtSignature string? モデルが返す思考署名。 マルチターン会話で推論コンテキストを維持するために使用。 モデルからのレスポンスに含まれ、次のリクエストにそのまま含める必要あり(改変不可)。 Function Callingでは必須(ない場合400エラー)。

Type: Object

  • role ("user" | "model") メッセージの送信者。‘user’はユーザー、‘model’はAIモデル
  • parts Array<ContentPart> メッセージの内容(複数のパーツで構成可能)
// テキストのみのユーザーメッセージ
{ role: 'user', parts: [{ text: 'こんにちは' }] }
// 画像を含むユーザーメッセージ
{
role: 'user',
parts: [
{ text: 'この画像について説明してください' },
{ inlineData: { mimeType: 'image/jpeg', data: 'base64encodeddata...' } }
]
}
// Function Callingを使用した会話
// 1. ユーザーの質問
{ role: 'user', parts: [{ text: '東京の天気を教えて' }] }
// 2. モデルからの関数呼び出し要求(レスポンス)
{ role: 'model', parts: [{ functionCall: { name: 'getWeather', args: { location: '東京' } } }] }
// 3. ユーザーからの関数実行結果
{ role: 'user', parts: [{ functionResponse: { name: 'getWeather', response: { temp: 25, condition: '晴れ' } } }] }
// 4. モデルの最終回答(レスポンス)
{ role: 'model', parts: [{ text: '東京の現在の天気は晴れで、気温は25度です。' }] }

Type: Object

  • delta Object? 増分の回答内容

  • finishReason string? 回答終了理由

  • usageMetadata Object? 使用量メタデータ (最後のチャンクでのみ)

Type: Object

  • includeThoughts boolean? 思考の要約を有効にするかどうか
  • thinkingBudget number? 思考処理のための予算(トークン数)

Type: Object

  • maxOutputTokens number? 最大出力トークン数
  • temperature number? 生成時の多様性を制御するパラメータ
  • topP number? 確率の高いトークンから選択する閾値
  • responseMimeType string? レスポンスタイプ
  • responseSchema Object? レスポンス構造を定義するスキーマ
  • thinkingConfig ThinkingConfig? 思考処理の設定

Type: Object

  • predictions Array<Object> 予測結果(gemini-embedding-2のstatisticsは取得できた項目のみ返却)

    • predictions[].embeddings Object Embeddings

      • predictions[].embeddings.values Array<number> 値

      • predictions[].embeddings.statistics Object 統計情報

        • predictions[].embeddings.statistics.truncated boolean? 切り捨てられたかどうか(レスポンスに含まれない場合は省略)
        • predictions[].embeddings.statistics.token_count number? トークン数(gemini-embedding-2でusageMetadata.promptTokenCountがない場合は省略)
  • metadata Object メタデータ(gemini-embedding-2のusageMetadataは入力順に並び、未取得の入力に対応する要素はnull)

    • metadata.billableCharacterCount number? 既存モデルの課金文字数
    • metadata.usageMetadata Array<(Object | null)>? gemini-embedding-2の各入力に対する使用量メタデータ(入力順。取得できない要素はnull)

Type: Object

  • textEmbedding Array<number>? The text embedding array.
  • imageEmbedding Array<number>? The image embedding array.

Type: Object

Type: Object

  • content string コンテンツ
  • title string? タイトル (optional) - RETRIEVAL_DOCUMENTタスクタイプでのみ使用可能。gemini-embedding-2 では title/text 指示に変換
  • task_type string? タスクタイプ (optional) - 以下の値が使用可能。デフォルトは ‘RETRIEVAL_QUERY’。gemini-embedding-2 では公式のタスク指示へ変換し API の task_type には含めません:* ‘RETRIEVAL_QUERY’: 検索クエリ用
    • ‘RETRIEVAL_DOCUMENT’: 検索対象のドキュメント用
    • ‘SEMANTIC_SIMILARITY’: 意味的類似性の比較用
    • ‘CLASSIFICATION’: 分類タスク用
    • ‘CLUSTERING’: クラスタリングタスク用
    • ‘QUESTION_ANSWERING’: 質問応答システム用
    • ‘FACT_VERIFICATION’: 事実検証用
    • ‘CODE_RETRIEVAL_QUERY’: コード検索クエリ用

Type: Object

  • autoTruncate boolean? 自動切り詰め (optional)。gemini-embedding-2 は 8,192 トークン超を常に暗黙に切り詰めるため false は指定できません
  • outputDimensionality number? 出力次元数 (optional)。gemini-embedding-2 は 128〜3,072 の整数(既定値3,072)

Type: Object

  • id string レコードのID
  • title string レコードのタイトル
  • content string レコードのコンテンツ

Type: Object

  • id string レコードのID
  • title string? レコードのタイトル。ignoreRecordDetailsInResponse が true の場合は省略される。
  • content string? レコードのコンテンツ。ignoreRecordDetailsInResponse が true の場合は省略される。
  • score number ランキングスコア

Type: Object