$fn.callGenerativeAI(param)
生成AIサービスと連携し、アクションからAIによるテキスト生成や要約、翻訳などの処理を非同期で呼び出すための関数です。[非同期]
主な用途は、ユーザー入力やアプリケーションのデータをAIに渡し、生成されたテキストや解析結果を取得することです。
WebPerformer-NXが提供する生成AIモデルを利用することで、外部サービスで必要なリソースを構築することなく、機能を利用することも出来ます。
v4.0.0 で追加された関数になります。
外部サービス
連係することができる外部サービスは下記の通りです。
- AWS Bedrock
- Azure OpenAI
- GCP VertexAI
引数
| 名前 | 型 | 説明 |
|---|---|---|
| param | object | AIに渡すパラメータ(プロンプトやオプションなど)情報 |
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 |
|
| 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”] |
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"], }});