コンテンツにスキップ

$fn.callGenerativeAI(param)

生成AIサービスと連携し、アクションからAIによるテキスト生成や要約、翻訳などの処理を非同期で呼び出すための関数です。[非同期]
主な用途は、ユーザー入力やアプリケーションのデータをAIに渡し、生成されたテキストや解析結果を取得することです。
v4.0.0 で追加された関数になります。

外部サービス

連係することができる外部サービスは下記の通りです。

  • AWS Bedrock
  • Azure OpenAI
  • GCP VertexAI

引数

名前説明
paramobjectAIに渡すパラメータ(プロンプトやオプションなど)情報

param詳細

providerプロパティ

名前必須デフォルト値説明
provider文字列はいなし指定できる値は以下の通り
1. bedrock
2. azureopenai
3. vertex-ai

modelプロパティ

名前必須デフォルト値説明
model文字列はいなしプロバイダがサポートするAIモデルの識別子

promptプロパティ

名前必須デフォルト値説明
prompt文字列はいなし生成AIへ渡すプロンプト文字列

systemPromptプロパティ

名前必須デフォルト値説明
systemPrompt文字列いいえなし生成AIへ渡すシステムプロンプト文字列

credentialPathプロパティ

名前必須デフォルト値説明
credentialPath文字列はいなしファイルマネージャに配置されたクレデンシャルファイルへのパス

クレデンシャルファイル

プロバイダ 内容
AWS Bedrock
            
{
    "function": {
        "credentials": {
            "accessKeyId": <アクセスキーID(文字列)*>,
            "secretAccessKey": <シークレットアクセスキー(文字列)*>
        }
    }
}
            
        
Azure OpenAI
            
{
    "function":{
        "azureOpenAIApiKey": <APIキー(文字列)*>
    }
}
            
        
GCP Vertex AI
            
{
    "function": {
        "authOptions": {
            "credentials": <サービスアカウントのキーファイルjson(オブジェクト)*>,
            "projectId": <プロジェクトID(文字列)*>
        }
    }
}
            
        

optionsプロパティ

名前必須デフォルト値説明
optionsオブジェクトいいえなし外部生成AIへ渡す任意のパラメータ

Amazon Bedrock

プロパティ説明サンプル値
region呼び出すBedrockモデルが稼働するAWSリーションを指定する。us-east-1
topP確率分布の上位何%まで空次の単語を選ぶか指定する。0.9
temperature出力のランダム性を調整する。0.7
maxTokens生成する最大トークン数を指定する。500
stop出力を打ち切る文字列やトークンを指定する。[“END”,“\n\n\n”]

Azure OpenAI

プロパティ説明サンプル値
azureOpenAIApiDeploymentNameAzure OpenAIで作成したモデルのデプロイ名を指定する。gpt-4o-deployment
azureOpenAIApiInstanceName利用するAzure OpenAIリソースの名前を指定する。my-openai-resource
azureOpenAIApiVersion利用するAzure OpenAIのバージョンを指定する。2024-06-01
topP確率分布の上位何%までから次の単語を選ぶかを指定する。0.9
temperature出力のランダム性 (創造性) を調整する。0.7
maxTokens生成する最大トークン数を指定する。500
stop出力を打ち切る文字列やトークンを指定する。[“END”, “\n\n\n”]
frequencyPenalty同じ単語の繰り返しを抑制する度合いを設定する。0.5
presencePenalty新しい話題を導入する傾向を強める度合いを設定する。0.3

GCP Vertex AI

プロパティ説明サンプル値
topP確率分布の上位何%まで空次の単語を選ぶか指定する。0.9
topK次単語候補として考慮するトークンの最大数 (k) を指定する。40
temperature出力のランダム性を調整する。0.7
maxOutputTokens出力の安全性ポリシー (有害・不適切な内容など) を制御する設定を指定する。500
safetySettings出力を打ち切る文字列やトークンを指定する。[{ category: HARM_CATEGORY_DANGEROUS_CONTENT”, threshold: “BLOCK_LOW_AND_ABOVE” }]
stopSequences出力を打ち切る文字列やトークンを指定する。[“END”,“\n\n\n”]

戻り値

説明
オブジェクト生成 AI サービスからのレスポンスオブジェクトを受け取る。

各プロバイダによるレスポンス例

AWS Bedrock

{
"success": true,
"message": "AI response generated successfully",
"provider": "bedrock",
"data": {
"success": true,
"result": {
"content": "# 最後の手紙\n\n桜の花びらが舞う春の日、彼女は古い机の引き出しから一通の手紙を見つけた。亡き祖母の字で綴られていたのは、戦時中に別れた初恋の人への想い。「会えなくても、あなたをずっと愛していました」最後の一行を読んだ時、彼女の頬を涙が伝った。",
"modelId": "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
"stopReason": "end_turn",
"usage": {
"inputTokens": 20,
"outputTokens": 130,
"totalTokens": 150
}
},
"metadata": {
"provider": "bedrock",
"model": "global.anthropic.claude-sonnet-4-5-20250929-v1:0"
}
}
}

Azure OpenAI

{
"success": true,
"message": "AI response generated successfully",
"provider": "azureopenai",
"data": {
"success": true,
"result": {
"content": "インドの総人口と国内総生産(GDP)について、最新の情報(2024年時点)をお伝えします。\n\n### インドの総人口\n- **約14億2,000万人**(1,420,000,000人)\n - 国連や世界銀行などの推計によると、インドは2023年に中国を抜いて世界最大の人口国となりました。\n\n### インドの国内総生産(GDP)\n- **名目GDP:約3兆7,500億米ドル**(2023年推計、World BankやIMFデータより)\n - 世界第5位規模です。\n - 一人当たりGDPは約2,600米ドル程度です。\n\n#### 補足\n- 経済成長率は近年6~7%台と高い水準を維持しています。\n- サービス業・IT産業が経済成長を牽引していますが、農業も依然として多くの雇用を占めています。\n\nもしさらに詳しい統計や過去との比較などご希望でしたら、お知らせください。",
"modelId": "gpt-4.1",
"stopReason": "stop",
"usage": {
"inputTokens": 23,
"outputTokens": 249,
"totalTokens": 272
}
},
"metadata": {
"provider": "azureopenai",
"model": "gpt-4.1"
}
}
}

GCP Vertex AI

{
"success": true,
"message": "AI response generated successfully",
"provider": "vertex-ai",
"data": {
"success": true,
"result": {
"content": "インドの総人口と国内総生産(GDP)について、最新のデータに基づいてご説明します。\n\n**総人口(2023年時点)**\n\n* 約14億2863万人(国連推計)\n\nインドは2023年に中国を抜き、世界で最も人口の多い国となりました。\n\n**国内総生産(GDP)(2022年時点)**\n\n* 名目GDP:約3兆4686億米ドル(世界銀行)\n* 実質GDP成長率:7.2%(2022年度)\n\nインドは世界第5位の経済大国であり、近年高い経済成長を遂げています。\n\n**注意点**\n\n* 人口は常に変動するため、上記はあくまで推計値です。\n* GDPは様々な機関が発表しており、数値に若干の差異がある場合があります。\n* GDP成長率は年度によって変動します。\n\nより詳細な情報や最新のデータについては、以下の情報源をご参照ください。\n\n* **国連:** [https://www.un.org/en/](https://www.un.org/en/)\n* **世界銀行:** [https://www.worldbank.org/](https://www.worldbank.org/)\n* **国際通貨基金(IMF):** [https://www.imf.org/](https://www.imf.org/)\n\nこれらの機関のウェブサイトでは、インドの経済や人口に関する最新の統計データや分析レポートが公開されています。",
"modelId": "gemini-2.0-flash",
"stopReason": "STOP",
"usage": {
"inputTokens": 13,
"outputTokens": 334,
"totalTokens": 347
}
},
"metadata": {
"provider": "vertex-ai",
"model": "gemini-2.0-flash"
}
}
}

サンプル

// テキスト要約をAIに依頼する例
const response = await $fn.callGenerativeAI({
provider: "bedrock",
model: "us.anthropic.claude-sonnet-4-20250514-v1:0",
prompt: "コードを最適化してください",
systemPrompt: "あなたはJavaScriptの専門家です。",
credentialPath: "/credentials/bedrock.json",
options: {
region: "us-west-2",
topP: 0.9,
temperature: 0.2,
maxTokens: 512,
stop: ["\n\n\n"],
},
});