$fn.callGenerativeAI(param)
生成AIサービスと連携し、アクションからAIによるテキスト生成や要約、翻訳などの処理を非同期で呼び出すための関数です。[非同期]
主な用途は、ユーザー入力やアプリケーションのデータをAIに渡し、生成されたテキストや解析結果を取得することです。
v4.0.0 で追加された関数になります。
外部サービス
連係することができる外部サービスは下記の通りです。
- AWS Bedrock
- Azure OpenAI
- GCP VertexAI
引数
| 名前 | 型 | 説明 |
|---|---|---|
| param | object | AIに渡すパラメータ(プロンプトやオプションなど)情報 |
param詳細
providerプロパティ
| 名前 | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| provider | 文字列 | はい | なし | 指定できる値は以下の通り 1. bedrock 2. azureopenai 3. vertex-ai |
modelプロパティ
| 名前 | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| model | 文字列 | はい | なし | プロバイダがサポートするAIモデルの識別子 |
promptプロパティ
| 名前 | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| prompt | 文字列 | はい | なし | 生成AIへ渡すプロンプト文字列 |
systemPromptプロパティ
| 名前 | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| systemPrompt | 文字列 | いいえ | なし | 生成AIへ渡すシステムプロンプト文字列 |
credentialPathプロパティ
| 名前 | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| credentialPath | 文字列 | はい | なし | ファイルマネージャに配置されたクレデンシャルファイルへのパス |
クレデンシャルファイル
| プロバイダ | 内容 |
|---|---|
| AWS Bedrock |
|
| Azure OpenAI |
|
| GCP Vertex AI |
|
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
| プロパティ | 説明 | サンプル値 |
|---|---|---|
| azureOpenAIApiDeploymentName | Azure 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"], },});