コンテンツにスキップ

$fn.callGenerativeAI(param)

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

外部サービス

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

  • AWS Bedrock
  • Azure OpenAI
  • GCP VertexAI

引数

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

param詳細

providerプロパティ

名前必須デフォルト値説明
provider文字列はいなし指定できる値は以下の通り
1. bedrock
2. azureopenai
3. vertex-ai
4. internal
internalはv4.1.0で選択可能になりました。

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”]

Internal

プロパティ説明
internal提供される内部生成AIに渡す任意のパラメーターオブジェクト

internalオブジェクト内のプロパティ

プロパティ説明サンプル値
temperature出力のランダム性 (創造性) を調整する。(低いほど、決定的、高いほど多様)
0.0~1.0の範囲で指定することが出来る。
0.6
level実行時のレベルを設定する。
10, 20, 30, 40, 50, 100, 200の中で指定することが出来る。
10

戻り値

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

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

AWS Bedrock

{
"success": true,
"message": "AI response generated successfully",
"provider": "bedrock",
"data": {
"success": true,
"result": {
"content": "# 日本の人口\n\n2024年現在、日本の人口は**約1億2,400万人**です。\n\n## 主な特徴\n\n- **減少傾向**: 2008年の約1億2,808万人をピークに減少が続いています\n- **少子高齢化**: 65歳以上の高齢者が人口の約29%を占めています\n- **出生率の低下**: 合計特殊出生率は1.3前後で推移しています\n\n日本は世界第11位の人口規模ですが、人口減少と高齢化が大きな社会課題となっています。",
"modelId": "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
"stopReason": "end_turn",
"usage": {
"inputTokens": 17,
"outputTokens": 176,
"totalTokens": 193
}
},
"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": "2024年時点での日本の人口は、約1億2,400万人(1億2400万)です。\n\nただし、日本の人口は近年減少傾向にあり、毎年数十万人ずつ減っています。最新の正確な数字を知りたい場合は、総務省統計局や国連などの公式発表をご確認ください。",
"modelId": "gpt-4.1",
"stopReason": "stop",
"usage": {
"inputTokens": 13,
"outputTokens": 86,
"totalTokens": 99
}
},
"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": "日本の人口は、最新の推計によると、**約1億2300万人台**です。\n\n具体的には、**総務省統計局が発表している2023年12月1日時点の概算値では、1億2329万人**となっています。この数字は、外国人を含む日本の総人口です。\n\n日本の人口は近年減少傾向にあります。\n\n参考までに、最新の国勢調査(2020年実施)では、1億2614万人でした。\n\n人口は常に変動しているため、この数字も発表時点での概算値であることをご理解ください。",
"modelId": "gemini-2.5-flash",
"stopReason": "STOP",
"usage": {
"inputTokens": 4,
"outputTokens": 1172,
"totalTokens": 1176
}
},
"metadata": {
"provider": "vertex-ai",
"model": "gemini-2.5-flash"
}
}
}

internal

{
"success": true,
"message": "AI response generated successfully",
"provider": "internal",
"data": {
"success": true,
"result": {
"content": "日本の人口は約**1億2,500万人**です(2023年時点)。\n\nただし、日本は少子高齢化が進んでおり、人口は減少傾向にあります。総務省の統計によると、2022年10月時点で約1億2,494万人となっています。\n\n主な特徴:\n- **世界第11位**の人口規模\n- **高齢化率**は約29%で世界最高水準\n- **人口減少**が続いており、2050年には1億人を下回ると予測されています\n\n最新の正確な数値が必要な場合は、総務省統計局のウェブサイトをご確認ください。",
"usage": {
"inputTokens": 17,
"outputTokens": 198,
"totalTokens": 215
}
},
"metadata": {
"provider": "internal",
"model": null
}
}
}

サンプル

提供される生成AIモデル利用時

// テキスト要約をAIに依頼する例
const response = await $fn.callGenerativeAI({
provider: "internal",
prompt: "コードを最適化してください",
systemPrompt: "あなたはJavaScriptの専門家です。",
options: {
internal: {
temperature: 0.6,
level: 10
}
}
});

外部サービスの生成AIモデル利用時

// テキスト要約を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"],
}
});