すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:アプリケーションパラメータのパススルー

最終更新日:Jul 17, 2025

このトピックでは、Model Studio アプリケーションの呼び出し時にカスタムパラメーターを渡す方法について説明します。この機能は、主にカスタムプラグインパラメーターカスタムノードパラメーターに適用されます。

最初にAPI キーを取得し、API キーを環境変数として設定する必要があります。 SDK を使用する必要がある場合は、SDK をインストールする必要があります。

カスタムプラグインのパラメーター

このセクションでは、寮規約照会ツールを例に、API を使用してアプリケーションを呼び出す際に、カスタムプラグイン用のカスタムパラメーターを渡す方法を説明します。

説明

カスタムプラグインのパラメーターは、関連付けられた [エージェントアプリケーション]、または[プラグインノード][ワークフローアプリケーション]内)を介して渡されます。

次の例は、[エージェント アプリケーション] でカスタム プラグイン パラメータを渡す方法を示しています。

使用方法

ステップ 1: カスタムプラグインツールの作成

プラグイン ツールをすでに作成している場合、またはプラグインをインポートしている場合は、この手順をスキップしてください。
  1. カスタム プラグインを作成する: []プラグイン に移動し、[カスタム プラグインの追加] をクリックして、プラグイン情報を構成します。認証が必要な場合は、[認証を有効にする] をオンにして、認証情報を構成します。

    プラグインの説明の例: 寮の規則クエリ ツールは、シリアル番号に基づいて特定の記事をクエリできます。
    プラグインの URL の例: https://domitorgreement-plugin-example-icohrkdjxy.cn-beijing.fcapp.run

    image

    注: [プラグインの説明] は、モデルが現在のタスクでプラグインが必要かどうかを判断するのに役立つ、プラグインの目的の簡単な説明です。説明には自然言語を使用してください。

  2. ツールの作成:ツール情報を入力し、入力パラメーターと出力パラメーターを設定します。注:

    1. [ツールの説明] は、モデルがツールの機能と使用シナリオをよりよく理解するのに役立ちます。自然言語を使用し、可能であれば例を挙げてください。

    2. [パラメータ名] は意味のあるものにする必要があります。モデルがどのパラメータ情報を識別する必要があるかを理解するのに役立ちます。

    3. [パラメータの説明] は、入力パラメータの目的を説明します。モデルがパラメータの取得方法をさらに理解できるように、簡潔かつ正確にする必要があります。

    4. 入力パラメーターについては、[受け渡し方法] は、必ず [ビジネスパススルー]にする必要があります。

    この例では、規則インデックス番号 article_index は、ビジネスパススルーパラメーターとして設定されています。

    image

  3. [ツールをテスト] をクリックし、正常に実行されたら、[公開] プラグインをクリックします。

ステップ 2:エージェントアプリケーションにプラグインを追加する

プラグイン ツールは、同じワークスペース内の [エージェント アプリケーション] にのみ関連付けることができます。
  1. 公開されたプラグイン カードの [エージェントに追加] をクリックし、関連付けるエージェント アプリケーションを選択します。

    image

  2. または、アプリケーションの [+ プラグイン] をクリックして、カスタム プラグインを追加します。

    image

  3. [アプリケーションを公開] します。

ステップ 3: API の使用

  • 認証なし: biz_paramsuser_defined_params を使用して、カスタムプラグイン情報を渡します。your_plugin_code を実際のプラグイン ID に置き換え、入力パラメーターのキーと値のペアを渡します。

    プラグイン カードでプラグイン ID を表示します。

    この例では、article_index を 2 に設定して規則の 2 番目の記事をクエリすると、正しい結果が返されます

    Python

    リクエストのサンプル

    import os
    from http import HTTPStatus
    # 推奨 dashscope SDK バージョン >= 1.14.0
    import dashscope
    from dashscope import Application
    
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    biz_params = {
        # エージェント アプリケーションのカスタム プラグイン入力パラメータ パススルー。your_plugin_code をカスタム プラグイン ID に置き換えます
        "user_defined_params": {
            "your_plugin_code": {
                "article_index": 2}}}
    response = Application.call(
            # 環境変数が構成されていない場合は、次の行を api_key="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            app_id='YOUR_APP_ID',
            prompt='寮の規則の内容',
            biz_params=biz_params)
    
    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'ドキュメントを参照してください: https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
    else:
        print('%s\n' % (response.output.text))  # テキスト出力のみを処理します
        # print('%s\n' % (response.usage))

    サンプル応答

    寮の規則の 2 番目の規則は次のとおりです。
    
    「寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。」
    
    これは、寮では、メンバーは生活と学習のための肯定的な雰囲気を育み、互いに助け合い、支え合いながら、他者を理解し、尊重することを学ぶ必要があることを示しています。規則のその他の条項について知る必要がある場合は、お知らせください。

    Java

    リクエストのサンプル

    import com.alibaba.dashscope.app.*;
    import com.alibaba.dashscope.exception.ApiException;
    import com.alibaba.dashscope.exception.InputRequiredException;
    import com.alibaba.dashscope.exception.NoApiKeyException;
    import com.alibaba.dashscope.utils.JsonUtils;
    import com.alibaba.dashscope.utils.Constants;
    
    public class Main {
      static {
            Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void appCall() throws NoApiKeyException, InputRequiredException {
            String bizParams =
                    // エージェント アプリケーションのカスタム プラグイン入力パラメータ パススルー。{your_plugin_code} をカスタム プラグイン ID に置き換えます
                    "{\"user_defined_params\":{\"{your_plugin_code}\":{\"article_index\":2}}}";
            ApplicationParam param = ApplicationParam.builder()
                    // 環境変数が構成されていない場合は、次の行を .apiKey("sk-xxx") に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID")
                    .prompt("寮の規則の内容")
                    .bizParams(JsonUtils.parse(bizParams))
                    .build();
    
            Application application = new Application();
            ApplicationResult result = application.call(param);
            System.out.printf("%s\n",
                    result.getOutput().getText());
        }
    
        public static void main(String[] args) {
            try {
                appCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("ドキュメントを参照してください: https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }      

    応答の例

    寮の規則の 2 番目の規則は次のとおりです。
    
    第 2 条: 寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。
    
    これは、共同生活環境では、ルームメイトは良好な関係を維持し、互いに助け合い、支え合うことで、生活と学習のための調和のとれた雰囲気を作り出す必要があることを強調しています。より具体的な条項を知る必要がある場合は、お知らせください。

    HTTP

    curl

    サンプルリクエスト

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "寮の規則の内容",
            "biz_params": 
            {
                "user_defined_params":
                {
                    "{your_plugin_code}":
                        {
                        "article_index": 2
                        }
                }
            } 
        },
        "parameters":  {},
        "debug":{}
    }'
    YOUR_APP_ID を実際のアプリケーション ID に置き換えます。

    応答のサンプル

    {"output":
    {"finish_reason":"stop",
    "session_id":"e151267ffded4fbdb13d91439011d31e",
    "text":"寮の規則の 2 番目の項目は次のとおりです。「寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。」これは、寮生活では、誰もが互いに支え合い、調和のとれた、肯定的な生活環境を共に作り出す必要があることを意味します。"},
    "usage":{"models":[{"output_tokens":94,"model_id":"qwen-max","input_tokens":453}]},
    "request_id":"a39fd2b5-7e2c-983e-84a1-1039f726f18a"}%

    PHP

    サンプルリクエスト

    <?php
    
    # 環境変数が構成されていない場合は、次の行を $api_key="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // 実際のアプリケーション ID に置き換えます
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    //{your_plugin_code} は実際のプラグイン ID に置き換える必要があります
    // リクエスト データを構築します
    $data = [
        "input" => [
            'prompt' => '寮の規則の内容',
            'biz_params' => [
            'user_defined_params' => [
                '{your_plugin_code}' => [
                    'article_index' => 2            
                    ]
                ]
            ]
        ],
    ];
    // データを JSON としてエンコードします
    $dataString = json_encode($data);
    
    // json_encode が成功したかどうかを確認します
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON エンコード エラー: " . json_last_error_msg());
    }
    
    // curl セッションを初期化します
    $ch = curl_init($url);
    
    // curl オプションを設定します
    curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, curlOPT_RETURNTRANSFER, true);
    curl_setopt($ch, curlOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    ]);
    
    // リクエストを実行します
    $response = curl_exec($ch);
    
    // curl の実行が成功したかどうかを確認します
    if ($response === false) {
        die("curl エラー: " . curl_error($ch));
    }
    
    // HTTP ステータス コードを取得します
    $status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
    // curl セッションを閉じます
    curl_close($ch);
    // レスポンス データをデコードします
    $response_data = json_decode($response, true);
    // レスポンスを処理します
    if ($status_code == 200) {
        if (isset($response_data['output']['text'])) {
            echo "{$response_data['output']['text']}\n";
        } else {
            echo "レスポンスにテキストがありません。\n";
        }
    }else {
        if (isset($response_data['request_id'])) {
            echo "request_id={$response_data['request_id']}\n";}
        echo "code={$status_code}\n";
        if (isset($response_data['message'])) {
            echo "message={$response_data['message']}\n";} 
        else {
            echo "message=不明なエラー\n";}
    }
    ?>

    サンプルの応答

    寮の規則の 2 番目の規則は次のように述べています。寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。これは、誰もが調和のとれた友好的な環境で生活し、学ぶことができるようにするためです。より具体的な条項を知りたい場合、またはその他の質問がある場合は、お気軽にお問い合わせください。

    Node.js

    依存関係:

    npm install axios

    リクエストのサンプル

    const axios = require('axios');
    
    async function callDashScope() {
        // 環境変数が構成されていない場合は、次の行を apiKey='sk-xxx' に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';// 実際のアプリケーション ID に置き換えます
        const pluginCode = 'YOUR_PLUGIN_CODE';// 実際のプラグイン ID に置き換えます
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "寮の規則の内容",
                biz_params: {
                    user_defined_params: {
                        [pluginCode]: {
                            // article_index はカスタム プラグインの変数です。実際のプラグイン変数に置き換えます
                            'article_index': 3
                        }
                    }
                }
            },
            parameters: {},
            debug: {}
        };
    
        try {
            console.log("DashScope API にリクエストを送信しています...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json'
                }
            });
    
            if (response.status === 200) {
                if (response.data.output && response.data.output.text) {
                    console.log(`${response.data.output.text}`);
                }
            } else {
                console.log("リクエストが失敗しました:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=不明なエラー');
                }
            }
        } catch (error) {
            console.error(`DashScope の呼び出しエラー: ${error.message}`);
            if (error.response) {
                console.error(`レスポンス ステータス: ${error.response.status}`);
                console.error(`レスポンス データ: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    callDashScope();

    応答のサンプル

    寮の規則の 3 番目の規則は次のとおりです。
    
    電気の安全に注意し、火災の危険性を取り除きます。寮では、裸火、許可されていない電化製品、さまざまなストーブ、その他の禁止されているアイテムを使用することは固く禁じられています。爆発性または可燃性の物質を保管したり、許可なく電源を接続したりしないでください。
    
    詳細な規則を知る必要がある場合は、お知らせください。

    C#

    サンプルのリクエスト

    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // 環境変数が構成されていない場合は、次の行を apiKey="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("DASHSCOPE_API_KEY environment variable is not set.");;
            string appId = "YOUR_APP_ID";// 実際のアプリケーション ID に置き換えます
    
            if (string.IsNullOrEmpty(apiKey))
            {
                Console.WriteLine("DASHSCOPE_API_KEY が設定されていることを確認してください。");
                return;
            }
    
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                string pluginCode = "{your_plugin_code}"; // {your_plugin_code} を実際のプラグイン ID に置き換えます
                string jsonContent = $@"{{
                    ""input"": {{
                        ""prompt"": ""寮の規則の内容"",
                        ""biz_params"": {{
                            ""user_defined_params"": {{
                                ""{pluginCode}"": {{
                                    ""article_index"": 2
                                }}
                            }}
                        }}
                    }},
                    ""parameters"": {{}},
                    ""debug"": {{}}
                }}";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                try
                {
                    HttpResponseMessage response = await client.PostAsync(url, content);
    
                    if (response.IsSuccessStatusCode)
                    {
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine("リクエストが成功しました:");
                        Console.WriteLine(responseBody);
                    }
                    else
                    {
                        Console.WriteLine($"リクエストがステータス コード {response.StatusCode} で失敗しました");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"DashScope の呼び出しエラー: {ex.Message}");
                }
            }
        }
    }

    サンプル応答

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "237ca6187c814f3b9e7461090a5f8b74",
            "text": "寮の規則の 2 番目の規則は次のとおりです。
    
    「寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。」
    
    これは、寮では、メンバーはお互いに良好な関係を築き、助け合い、気を配り、支え合うことで、調和のとれた生活と学習の環境を作り出す必要があることを示しています。同時に、ルームメイト間の違いを理解し、受け入れ、誠実な態度でコミュニケーションをとることも学ぶ必要があります。知りたいその他の条項または具体的な内容がある場合は、お知らせください。"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 133,
                    "model_id": "qwen-max",
                    "input_tokens": 829
                }
            ]
        },
        "request_id": "64e8c359-d071-9d2e-bb94-187e86cc3a79"
    }

    Go

    サンプルリクエスト

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// 環境変数が構成されていない場合は、次の行を apiKey := "sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID"           // 実際のアプリケーション ID に置き換えます
    	pluginCode := "YOUR_PLUGIN_CODE" // 実際のプラグイン ID に置き換えます
    
    	if apiKey == "" {
    		fmt.Println("DASHSCOPE_API_KEY が設定されていることを確認してください。")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// リクエスト本文を作成します
    	requestBody := map[string]interface{}{
    		"input": map[string]interface{}{
    			"prompt": "寮の規則の内容",
    			"biz_params": map[string]interface{}{
    				"user_defined_params": map[string]interface{}{
    					pluginCode: map[string]interface{}{
    						"article_index": 2,
    					},
    				},
    			},
    		},
    		"parameters": map[string]interface{}{},
    		"debug":      map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("JSON のマーシャリングに失敗しました: %v\n", err)
    		return
    	}
    
    	// HTTP POST リクエストを作成します
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("リクエストの作成に失敗しました: %v\n", err)
    		return
    	}
    
    	// リクエスト ヘッダーを設定します
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    
    	// リクエストを送信します
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("リクエストの送信に失敗しました: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// レスポンスを読み取ります
    	body, err := io.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Printf("レスポンスの読み取りに失敗しました: %v\n", err)
    		return
    	}
    
    	// レスポンスを処理します
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("リクエストが成功しました:")
    		fmt.Println(string(body))
    	} else {
    		fmt.Printf("リクエストがステータス コード %d で失敗しました\n", resp.StatusCode)
    		fmt.Println(string(body))
    	}
    }

    サンプル応答

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "860d2a4c1f3649ac880298537993cb51",
            "text": "寮の規則の 2 番目の規則は次のとおりです。
    
    寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。
    
    これは、寮生活では、ルームメイトは良好な相互支援関係を維持しながら、互いに尊重する必要があることを強調しています。その他の条項について知りたいですか?"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 84,
                    "model_id": "qwen-max",
                    "input_tokens": 876
                }
            ]
        },
        "request_id": "0a250055-90a4-992d-9276-e268ad35d1ab"
    }
  • 認証あり: [認証] が有効になっており、[ユーザーレベル認証] がプラグインに設定されています。

    プラグイン カードでプラグイン ID を表示します。
    • biz_paramsuser_defined_params を使用して、カスタム プラグイン情報を渡します。 your_plugin_code を実際のプラグイン ID に置き換え、入力パラメータのキーと値のペアを渡します。

    • biz_paramsuser_defined_tokens を使用して、関連情報を渡します。 your_plugin_code を実際のプラグイン ID に置き換え、user_token に認証情報 (実際の DASHSCOPE_API_KEY 値など) を入力します。

    • 認証が渡されると、インデックス番号に基づいて特定の項目がクエリされ、返されます。

    この例では、article_index を 2 に設定し、user_token の値を実際の DASHSCOPE_API_KEY に置き換えます。認証が渡されると、2 番目の規則の内容がクエリされ、返されます

    Python

    サンプルリクエスト

    from http import HTTPStatus
    import os
    # 推奨 dashscope SDK バージョン >= 1.14.0
    import dashscope
    from dashscope import Application
    
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    biz_params = {
        # エージェント アプリケーションのカスタム プラグイン認証パススルー。your_plugin_code をカスタム プラグイン ID に置き換え、YOUR_TOKEN を認証情報 (API キーなど) に置き換えます
        "user_defined_params": {
            "your_plugin_code": {
                "article_index": 2}},
        "user_defined_tokens": {
            "your_plugin_code": {
                "user_token": "YOUR_TOKEN"}}}
    response = Application.call(
                # 環境変数が構成されていない場合は、次の行を api_key="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
                api_key=os.getenv("DASHSCOPE_API_KEY"), 
                app_id='YOUR_APP_ID',
                prompt='寮の規則の内容',
                biz_params=biz_params)
    
    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'ドキュメントを参照してください: https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
    else:
        print('%s\n' % (response.output.text))  # テキスト出力のみを処理します
        # print('%s\n' % (response.usage))

    サンプル応答

    寮の規則の 2 番目の規則は次のとおりです。
    
    寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。
    
    詳細な規則を知る必要がある場合は、お知らせください。

    Java

    サンプルリクエスト

    import com.alibaba.dashscope.app.*;
    import com.alibaba.dashscope.exception.ApiException;
    import com.alibaba.dashscope.exception.InputRequiredException;
    import com.alibaba.dashscope.exception.NoApiKeyException;
    import com.alibaba.dashscope.utils.JsonUtils;
    import com.alibaba.dashscope.utils.Constants;
    
    public class Main {
      static {
            Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void appCall() throws NoApiKeyException, InputRequiredException {
            String bizParams =
                    // {your_plugin_code} を実際のプラグイン ID に置き換え、YOUR_TOKEN を実際のトークン (API キーなど) に置き換えます
                    "{\"user_defined_params\":{\"{your_plugin_code}\":{\"article_index\":2}}," +
                            "\"user_defined_tokens\":{\"{your_plugin_code}\":{\"user_token\":\"YOUR_TOKEN\"}}}";
            ApplicationParam param = ApplicationParam.builder()
                    // 環境変数が構成されていない場合は、次の行を .apiKey("sk-xxx") に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID")
                    .prompt("寮の規則の内容")
                    .bizParams(JsonUtils.parse(bizParams))
                    .build();
    
            Application application = new Application();
            ApplicationResult result = application.call(param);
            System.out.printf("%s\n",
                    result.getOutput().getText());
        }
        public static void main(String[] args) {
            try {
                appCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("ドキュメントを参照してください: https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }

    サンプル応答

    寮の規則の 2 番目の規則は次のとおりです。
    
    寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。
    
    詳細な規則をクエリする必要がある場合は、お知らせください。
    YOUR_APP_ID を実際のアプリケーション ID に置き換えます。 your_plugin_code をカスタム プラグイン ID に置き換えます。 YOUR_TOKEN を認証トークンに置き換えます。

    HTTP

    curl

    サンプルリクエスト

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "寮の規則の内容",
            "biz_params": 
            {
                "user_defined_params":
                {
                    "{your_plugin_code}":
                        {
                        "article_index": 2
                        }
                },
                "user_defined_tokens":
                {
                    "{your_plugin_code}":
                        {
                        "user_token": "YOUR_TOKEN"
                        }
                }
            } 
        },
        "parameters":  {},
        "debug":{}
    }'
    
    
    YOUR_APP_ID を実際のアプリケーション ID に置き換えます。 your_plugin_code をカスタム プラグイン ID に置き換えます。 YOUR_TOKEN を認証トークンに置き換えます。

    応答のサンプル

    {"output":{"finish_reason":"stop",
    "session_id":"d3b5c3e269dc40479255a7a02df5c630",
    "text":"寮の規則の 2 番目の項目は次のとおりです。「寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。」これは、寮生活におけるメンバー間の調和のとれた共存と相互の進歩の重要性を強調しています。"},
    "usage":{"models":[{"output_tokens":80,"model_id":"qwen-max","input_tokens":432}]},
    "request_id":"1f77154c-edc3-9003-b622-816fa2f849cf"}%

    PHP

    サンプルリクエスト

    <?php
    
    # 環境変数が構成されていない場合は、次の行を $api_key="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // 実際のアプリケーション ID に置き換えます
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // リクエスト データを構築します
    $data = [
        "input" => [
            'prompt' => '寮の規則の内容',
            'biz_params' => [
            'user_defined_params' => [
                '{your_plugin_code}' => [//{your_plugin_code} は実際のプラグイン ID に置き換える必要があります
                    'article_index' => 2            
                    ]
                ],
            'user_defined_tokens' => [
                '{your_plugin_code}' => [//{your_plugin_code} は実際のプラグイン ID に置き換える必要があります
                    'user_token' => 'YOUR_TOKEN'//実際のトークン (API キーなど) に置き換えます
                ]
            ]
            ]
        ],
    ];
    // データを JSON としてエンコードします
    $dataString = json_encode($data);
    
    // json_encode が成功したかどうかを確認します
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON エンコード エラー: " . json_last_error_msg());
    }
    
    // curl セッションを初期化します
    $ch = curl_init($url);
    
    // curl オプションを設定します
    curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, curlOPT_RETURNTRANSFER, true);
    curl_setopt($ch, curlOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    ]);
    
    // リクエストを実行します
    $response = curl_exec($ch);
    
    // curl の実行が成功したかどうかを確認します
    if ($response === false) {
        die("curl エラー: " . curl_error($ch));
    }
    
    // HTTP ステータス コードを取得します
    $status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
    // curl セッションを閉じます
    curl_close($ch);
    // レスポンス データをデコードします
    $response_data = json_decode($response, true);
    // レスポンスを処理します
    if ($status_code == 200) {
        if (isset($response_data['output']['text'])) {
            echo "{$response_data['output']['text']}\n";
        } else {
            echo "レスポンスにテキストがありません。\n";
        }
    }else {
        if (isset($response_data['request_id'])) {
            echo "request_id={$response_data['request_id']}\n";}
        echo "code={$status_code}\n";
        if (isset($response_data['message'])) {
            echo "message={$response_data['message']}\n";} 
        else {
            echo "message=不明なエラー\n";}
    }
    ?>

    サンプル応答

    寮の規則の 2 番目の規則は次のとおりです。
    
    > 寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。
    
    規則の内容やその他の情報について詳しく知りたい場合は、お気軽にお問い合わせください。

    Node.js

    依存関係:

    npm install axios

    リクエストのサンプル

    const axios = require('axios');
    async function callDashScope() {
        // 環境変数が構成されていない場合は、次の行を apiKey='sk-xxx' に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';// 実際のアプリケーション ID に置き換えます
        const pluginCode = 'YOUR_PLUGIN_CODE';// 実際のプラグイン ID に置き換えます
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "寮の規則の内容",
                biz_params: {
                    user_defined_params: {
                        [pluginCode]: {
                            // article_index はカスタム プラグインの変数です。実際のプラグイン変数に置き換えます
                            'article_index': 6
                        }
                    },
                    user_defined_tokens: {
                        [pluginCode]: {
                            // YOUR_TOKEN は実際の認証情報 (API キーなど) に置き換える必要があります
                            user_token: 'YOUR_TOKEN'
                        }
                    }
                }
            },
            parameters: {},
            debug: {}
        };
    
        try {
            console.log("DashScope API にリクエストを送信しています...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json'
                }
            });
    
            if (response.status === 200) {
                if (response.data.output && response.data.output.text) {
                    console.log(`${response.data.output.text}`);
                }
            } else {
                console.log("リクエストが失敗しました:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=不明なエラー');
                }
            }
        } catch (error) {
            console.error(`DashScope の呼び出しエラー: ${error.message}`);
            if (error.response) {
                console.error(`レスポンス ステータス: ${error.response.status}`);
                console.error(`レスポンス データ: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    callDashScope();

    サンプル応答

    寮の規則の 6 番目の規則: 良好な生活習慣を身につけます。寮の各メンバーには、休息する権利と、他者の休息する権利を確保する義務があります。詳細な規則を知る必要がある場合は、さらに指定してください。

    C#

    サンプルリクエスト

    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // 環境変数が構成されていない場合は、次の行を apiKey="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("DASHSCOPE_API_KEY environment variable is not set.");;
            string appId = "YOUR_APP_ID";// 実際のアプリケーション ID に置き換えます
    
            if (string.IsNullOrEmpty(apiKey))
            {
                Console.WriteLine("DASHSCOPE_API_KEY が設定されていることを確認してください。");
                return;
            }
    
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                string pluginCode = "your_plugin_code"; // your_plugin_code は実際のプラグイン ID に置き換える必要があります
                // YOUR_TOKEN は実際のトークン (API キーなど) に置き換える必要があります
                string jsonContent = $@"{{
                    ""input"": {{
                        ""prompt"": ""寮の規則の内容"",
                        ""biz_params"": {{
                            ""user_defined_params"": {{
                                ""{pluginCode}"": {{
                                    ""article_index"": 2
                                }}
                            }},
                            ""user_defined_tokens"": {{
                                ""{pluginCode}"": {{
                                    ""user_token"": ""YOUR_TOKEN"" 
                                }}
                            }}
                        }}
                    }},
                    ""parameters"": {{}},
                    ""debug"": {{}}
                }}";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                try
                {
                    HttpResponseMessage response = await client.PostAsync(url, content);
    
                    if (response.IsSuccessStatusCode)
                    {
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine("リクエストが成功しました:");
                        Console.WriteLine(responseBody);
                    }
                    else
                    {
                        Console.WriteLine($"リクエストがステータス コード {response.StatusCode} で失敗しました");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"DashScope の呼び出しエラー: {ex.Message}");
                }
            }
        }
    }

    サンプル応答

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "1a1913a9922a401f8eba36df8ea1a062",
            "text": "寮の規則の 2 番目の規則は次のとおりです。
    
    寮のメンバーは、互いに助け合い、互いに気を配り、互いに学び、共に成長する必要があります。寛容で敬意を払い、誠実にお互いを扱う必要があります。
    
    詳細な規則の内容については、さらに指定してください。"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 66,
                    "model_id": "qwen-max",
                    "input_tokens": 802
                }
            ]
        },
        "request_id": "04bac806-c5e6-9fab-a846-a66641862be9"
    }

    Go

    サンプルリクエスト

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// 環境変数が構成されていない場合は、次の行を apiKey := "sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID"           // 実際のアプリケーション ID に置き換えます
    	pluginCode := "YOUR_PLUGIN_CODE" // 実際のプラグイン ID に置き換えます
    
    	if apiKey == "" {
    		fmt.Println("DASHSCOPE_API_KEY が設定されていることを確認してください。")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// リクエスト本文を作成します
    	requestBody := map[string]interface{}{
    		"input": map[string]interface{}{
    			"prompt": "寮の規則の内容",
    			"biz_params": map[string]interface{}{
    				"user_defined_params": map[string]interface{}{
    					pluginCode: map[string]interface{}{
    						"article_index": 10,
    					},
    				},
    				"user_defined_tokens": map[string]interface{}{
    					pluginCode: map[string]interface{}{
    						"user_token": "YOUR_USER_TOKEN", // 実際の認証トークン (API キーなど) に置き換えます
    					},
    				},
    			},
    		},
    		"parameters": map[string]interface{}{},
    		"debug":      map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("JSON のマーシャリングに失敗しました: %v\n", err)
    		return
    	}
    
    	// HTTP POST リクエストを作成します
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("リクエストの作成に失敗しました: %v\n", err)
    		return
    	}
    
    	// リクエスト ヘッダーを設定します
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    
    	// リクエストを送信します
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("リクエストの送信に失敗しました: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// レスポンスを読み取ります
    	body, err := io.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Printf("レスポンスの読み取りに失敗しました: %v\n", err)
    		return
    	}
    
    	// レスポンスを処理します
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("リクエストが成功しました:")
    		fmt.Println(string(body))
    	} else {
    		fmt.Printf("リクエストがステータス コード %d で失敗しました\n", resp.StatusCode)
    		fmt.Println(string(body))
    	}
    }

    応答例

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "b8e051ba7e954ff8919208e7b84430fa",
            "text": "寮の規則の 10 番目の規則では、寮のメンバーは協力して清潔で整頓された、美しく文化的に洗練された寮環境を作り、維持する必要があると述べています。寮の規則の内容全体を理解する必要がある場合は、他の条項を確認するか、寮の管理部門に直接問い合わせる必要がある場合があります。詳しく知りたい具体的な部分はありますか?"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 70,
                    "model_id": "qwen-max",
                    "input_tokens": 855
                }
            ]
        },
        "request_id": "0921ee34-2754-9616-a826-cea33a0e0a14"
    }

スタムノードパラメーター

このトピックでは、市の行政区クエリを例として、アプリケーションを呼び出す際にカスタムノードパラメーターを渡す方法を説明します

説明

カスタムノードパラメーターは、[ワークフローアプリケーション] の開始ノード、または[エージェントオーケストレーションアプリケーション] のアプリケーションノードを介して渡されます。

次の例は、[ワークフロー アプリケーション] の開始ノードにカスタム パラメータを渡す方法を示しています。

使用方法

ステップ 1:ノードパラメーターのカスタマイズ

[マイアプリケーション]に移動し、[ワークフローアプリケーション] を選択または作成し、[開始ノード] のパラメーターをカスタマイズします。

city パラメーターを渡す例については、以下をご参照ください。開始ノードで、String 型の変数 city を設定し、[プロンプト] に city 変数と query 変数を挿入し、アプリケーションを [公開] します。

image

ステップ 2: API の使用

呼び出すときは、biz_params フィールドを介して都市を渡し、prompt フィールドを介してクエリを渡します。

Python

サンプルリクエスト

import os
from http import HTTPStatus
import dashscope
from dashscope import Application
# ワークフローおよびエージェント オーケストレーション アプリケーションのカスタム パラメータ パススルー

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
biz_params = {"city": "Hangzhou"}
response = Application.call(
    # 環境変数が構成されていない場合は、次の行を api_key="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    app_id='YOUR_APP_ID',  # 実際のアプリケーション ID に置き換えます
    prompt='この都市の行政区をクエリします',
    biz_params=biz_params  # ビジネス パラメータを渡します
)

if response.status_code != HTTPStatus.OK:
    print(f'request_id={response.request_id}')
    print(f'code={response.status_code}')
    print(f'message={response.message}')
    print(f'ドキュメントを参照してください: https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
else:
    print(f'{response.output.text}')  # テキスト出力のみを処理します

サンプル応答

浙江省の省都である杭州には、10 の区があります。上城区、拱墅区、西湖区、滨江区、萧山区、余杭区、临平区、钱塘区、富阳区、临安区です。各区には独自の特徴と開発の重点があります。

- 上城区: 杭州の中心部に位置し、杭州の政治、経済、文化の中心地の 1 つです。
- 拱墅区: 運河文化が特徴で、数多くの歴史的および文化的遺産があります。
- 西湖区: 有名な西湖の景勝地がこの区にあり、観光の重要な目的地となっています。
- 滨江区: ハイテク産業クラスターであり、アリババなどの企業の本拠地です。
- 萧山区: 南東部の行政区で、特に製造業において急速な経済発展を遂げています。
- 余杭区: 近年急速に発展しており、特にインターネット経済セクターで、アリババの本社がここにあります (注: アリババの本社は実際には滨江区にあります)。
- 临平区: 新しく設立された行政区で、この地域の包括的な経済社会発展の促進を目指しています。
- 钱塘区: 最近の行政区調整の結果でもあり、革新的な開発と生態系保護の組み合わせを重視しています。
- 富阳区: 杭州の南西に位置し、豊かな自然景観と長い歴史と文化で知られています。
- 临安区: 杭州の西部に位置し、美しい生態系と深い文化的遺産で知られています。

特定の都市計画は時間の経過とともに変化する可能性があるため、最新の公式情報をご参照ください。

Java

サンプルリクエスト

import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import com.alibaba.dashscope.utils.Constants;

public class Main {
  static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void appCall() throws NoApiKeyException, InputRequiredException {

        String bizParams =
                "{\"city\":\"Hangzhou\"}";
        ApplicationParam param = ApplicationParam.builder()
                // 環境変数が構成されていない場合は、次の行を .apiKey("sk-xxx") に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .appId("YOUR_APP_ID")
                .prompt("この都市の行政区をクエリします")
                .bizParams(JsonUtils.parse(bizParams))
                .build();

        Application application = new Application();
        ApplicationResult result = application.call(param);
        System.out.printf("%s\n",
                result.getOutput().getText());
    }

    public static void main(String[] args) {
        try {
            appCall();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.printf("Exception: %s", e.getMessage());
            System.out.println("ドキュメントを参照してください: https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
        }
        System.exit(0);
    }
}

サンプル応答

杭州は浙江省の省都であり、その行政区には主に 10 の区が含まれます。上城区、拱墅区、西湖区、滨江区、萧山区、余杭区、临平区、钱塘区、富阳区、临安区です。各区には独自の特徴と開発の重点があります。

- 上城区: 杭州の中心部に位置し、多くの歴史的および文化的遺産があります。
- 拱墅区: 大運河文化で有名であり、重要な商業および住宅地でもあります。
- 西湖区: 有名な西湖の景勝地を含む、美しい自然景観で知られています。
- 滨江区: ハイテク産業クラスターであり、杭州国家ハイテク産業開発区が位置しています。
- 萧山区: 特に製造業において急速な経済発展を遂げています。
- 余杭区: 近年、アリババなどのハイテク企業の発展に伴い急速に台頭しています。
- 临平区: 2021 年に元の余杭区の一部から調整され、生態系の構築と技術革新に重点を置いています。
- 钱塘区: 2021 年にも設立され、杭州東部の新しい交通ハブおよび産業開発の拠点としての地位を確立しています。
- 富阳区: 長い歴史を持つ歴史と文化の都市であり、製紙業の重要な拠点でもあります。
- 临安区: 杭州の西部に位置し、森林被覆率が高く、良好な生態環境です。

これらの地域が一緒になって、杭州独自の地理的パターンと社会経済構造を形成しています。特定の地域に興味がある場合、またはより詳細な情報が必要な場合は、お知らせください。

HTTP

curl

サンプルのリクエスト

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "prompt": "この都市の行政区をクエリします",
        "biz_params": {
        "city": "Hangzhou"}
    },
    "parameters":  {}
}'
YOUR_APP_ID を実際のアプリケーション ID に置き換えます。

サンプル応答

{"output":{"finish_reason":"stop","session_id":"c211219896004b50a1f6f66f2ec5413e",
"text":"杭州には 10 の区、1 つの県があり、2 つの県レベルの都市を管理しています。つまり、上城区、拱墅区、西湖区、滨江区、萧山区、余杭区、临平区、钱塘区、富阳区、临安区、桐庐県、淳安県、建德市、諸暨市です。諸暨市は浙江省によって直接管理され、杭州と紹興によって共同で管理されていることに注意してください。"},"usage":{},
"request_id":"02c3c9e1-7912-9505-91aa-248d04fb1f5d"}

PHP

リクエストのサンプル

<?php

# 環境変数が構成されていない場合は、次の行を $api_key="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
$api_key = getenv("DASHSCOPE_API_KEY");
$application_id = 'YOUR_APP_ID'; // 実際のアプリケーション ID に置き換えます
$url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";

// リクエスト データを構築します
$data = [
    "input" => [
        'prompt' => 'この都市の行政区をクエリします',
        'biz_params' => [
            'city' => 'Hangzhou'
        ]
    ],
];
// データを JSON としてエンコードします
$dataString = json_encode($data);

// json_encode が成功したかどうかを確認します
if (json_last_error() !== JSON_ERROR_NONE) {
    die("JSON エンコード エラー: " . json_last_error_msg());
}

// curl セッションを初期化します
$ch = curl_init($url);

// curl オプションを設定します
curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
curl_setopt($ch, curlOPT_RETURNTRANSFER, true);
curl_setopt($ch, curlOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $api_key
]);

// リクエストを実行します
$response = curl_exec($ch);

// curl の実行が成功したかどうかを確認します
if ($response === false) {
    die("curl エラー: " . curl_error($ch));
}

// HTTP ステータス コードを取得します
$status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
// curl セッションを閉じます
curl_close($ch);
// レスポンス データをデコードします
$response_data = json_decode($response, true);
// レスポンスを処理します
if ($status_code == 200) {
    if (isset($response_data['output']['text'])) {
        echo "{$response_data['output']['text']}\n";
    } else {
        echo "レスポンスにテキストがありません。\n";
    }
} else {
    if (isset($response_data['request_id'])) {
        echo "request_id={$response_data['request_id']}\n";
    }
    echo "code={$status_code}\n";
    if (isset($response_data['message'])) {
        echo "message={$response_data['message']}\n";
    } else {
        echo "message=不明なエラー\n";
    }
}

サンプル応答

杭州は浙江省の省都であり、その行政区には主に 10 の区が含まれます。上城区、拱墅区、西湖区、滨江区、萧山区、余杭区、临平区、钱塘区、富阳区、临安区です。

各区には独自の特徴と開発の重点があります。たとえば、
- **上城区** と **拱墅区** は杭州の中心部に位置し、賑やかな商業と長い歴史があります。
- **西湖区** は美しい西湖で有名であり、重要な科学、教育、文化地区でもあります。
- **滨江区** はハイテク産業開発で知られています。
- **萧山区**、**余杭区** などは、近年の都市開発に伴い急速に台頭してきた新しい都市部または経済開発区です。
- **临安区**、**富阳区** などの地域は、より多くの自然景観と田園地帯の特徴を保持しています。

中国の行政区は国家政策に応じて変更される場合があるため、公式チャネルを通じて最新情報を入手してください。

Node.js

依存関係:

npm install axios

サンプルリクエスト

const axios = require('axios');

async function callDashScope() {
    // 環境変数が構成されていない場合は、次の行を apiKey='sk-xxx' に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
    const apiKey = process.env.DASHSCOPE_API_KEY;
    const appId = 'YOUR_APP_ID'; // 実際のアプリケーション ID に置き換えます

    const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;

    const data = {
        input: {
            prompt: "この都市の行政区をクエリします",
            biz_params: {
                'city': 'Hangzhou',
            },
        },
        parameters: {},
        debug: {},
    };

    try {
        console.log("DashScope API にリクエストを送信しています...");

        const response = await axios.post(url, data, {
            headers: {
                'Authorization': `Bearer ${apiKey}`,
                'Content-Type': 'application/json'
            }
        });

        if (response.status === 200) {
            if (response.data.output && response.data.output.text) {
                console.log(`${response.data.output.text}`);
            }
        } else {
            console.log("リクエストが失敗しました:");
            if (response.data.request_id) {
                console.log(`request_id=${response.data.request_id}`);
            }
            console.log(`code=${response.status}`);
            if (response.data.message) {
                console.log(`message=${response.data.message}`);
            } else {
                console.log('message=不明なエラー');
            }
        }
    } catch (error) {
        console.error(`DashScope の呼び出しエラー: ${error.message}`);
        if (error.response) {
            console.error(`レスポンス ステータス: ${error.response.status}`);
            console.error(`レスポンス データ: ${JSON.stringify(error.response.data, null, 2)}`);
        }
    }
}

callDashScope();

サンプル応答

杭州は浙江省の省都であり、その行政区には 10 の区が含まれます。具体的には次のとおりです。

1. 上城区 (Shàngchéng Qū): 杭州の中南部に位置し、杭州で最も古く、文化的遺産が最も深い地域の 1 つです。
2. 拱墅区 (Gǒngshù Qū): 元の下城区と拱墅区を合併して形成された新しい区で、杭州の北部にあります。
3. 西湖区 (Xīhú Qū): 世界文化遺産である西湖で有名であり、豊かな自然と文化の景観があります。
4. 滨江区 (Bīnjiāng Qū): 钱塘江の南岸に位置し、ハイテク産業クラスターです。
5. 萧山区 (Xiāoshān Qū): 杭州の東部に位置し、中国の重要な製造拠点の 1 つです。
6. 余杭区 (Yúháng Qū): かつて中国の 4 つの有名な町の 1 つである临平の本拠地であり、現在は杭州の重要な経済開発区となっています。
7. 富阳区 (Fùyáng Qū): 杭州の南西部に位置し、そこを流れる富春江にちなんで名付けられました。
8. 临安区 (Lín'ān Qū): 杭州の西部の山岳地帯に位置し、美しい自然景観で知られています。
9. 钱塘区 (Qiántáng Qū): 2021 年に設立され、元の大江東産業クラスターと萧山区の一部から形成され、杭州東部の開発を促進することを目的としています。
10. 临平区 (Lín Píng Qū): 余杭区から分離された新しい行政区で、主に余杭区の元临平街などの地域をカバーしています。

上記の情報は、前回の更新時点の状況を反映しています。行政区は変更される場合があるため、最新の公式発表をご参照ください。

C#

サンプルリクエスト

using System.Text;

class Program
{
    static async Task Main(string[] args)
    {
        //環境変数が構成されていない場合は、次の行を apiKey="sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。 
        string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("DASHSCOPE_API_KEY environment variable is not set.");
        string appId = "YOUR_APP_ID"; // 実際のアプリケーション ID に置き換えます
        string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
            string jsonContent = @"{
                ""input"": {
                    ""prompt"": ""この都市の行政区をクエリします"",
                    ""biz_params"":{
                        ""city"":""Hangzhou""
                    }
                },
                ""parameters"": {},
                ""debug"": {}
            }";

            HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");

            try
            {
                HttpResponseMessage response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("リクエストが成功しました:");
                    Console.WriteLine(responseBody);
                }
                else
                {
                    Console.WriteLine($"リクエストがステータス コード {response.StatusCode} で失敗しました");
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"DashScope の呼び出しエラー: {ex.Message}");
            }
        }
    }
}

サンプル応答

{
    "output": {
        "finish_reason": "stop",
        "session_id": "7a9ff57eec7d475fa5d487de5f5178d2",
        "text": "杭州は浙江省の省都であり、10 の区があります。上城区、拱墅区、西湖区、滨江区、萧山区、余杭区、临平区、钱塘区、富阳区、临安区です。各区には独自の地理的位置と開発の特徴があります。たとえば、西湖区は美しい自然景観、特に有名な杭州西湖で知られています。一方、滨江区はハイテク産業開発でより知られています。さらに、都市の発展に伴い、行政区も調整される場合があるため、公式の情報源から発表された最新情報に注意してください。"
    },
    "usage": {

    },
    "request_id": "d2c2fcc9-f821-98c9-9430-8704a2a41225"
}

Go

サンプルリクエスト

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	// 環境変数が構成されていない場合は、次の行を apiKey := "sk-xxx" に置き換えて、Model Studio API キーを使用できます。ただし、本番環境では API キーをコードに直接ハードコーディングすることはお勧めしません。API キーが漏洩するリスクを軽減するためです。
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	appId := "YOUR_APP_ID" // 実際のアプリケーション ID に置き換えます

	if apiKey == "" {
		fmt.Println("DASHSCOPE_API_KEY が設定されていることを確認してください。")
		return
	}

	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)

	// リクエスト本文を作成します
	requestBody := map[string]interface{}{
		"input": map[string]interface{}{
			"prompt": "この都市の行政区をクエリします",
			"biz_params": map[string]interface{}{
				"city": "Hangzhou",
			},
		},
		"parameters": map[string]interface{}{},
		"debug":      map[string]interface{}{},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		fmt.Printf("JSON のマーシャリングに失敗しました: %v\n", err)
		return
	}

	// HTTP POST リクエストを作成します
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	if err != nil {
		fmt.Printf("リクエストの作成に失敗しました: %v\n", err)
		return
	}

	// リクエスト ヘッダーを設定します
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// リクエストを送信します
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Printf("リクエストの送信に失敗しました: %v\n", err)
		return
	}
	defer resp.Body.Close()

	// レスポンスを読み取ります
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("レスポンスの読み取りに失敗しました: %v\n", err)
		return
	}

	// レスポンスを処理します
	if resp.StatusCode == http.StatusOK {
		fmt.Println("リクエストが成功しました:")
		fmt.Println(string(body))
	} else {
		fmt.Printf("リクエストがステータス コード %d で失敗しました\n", resp.StatusCode)
		fmt.Println(string(body))
	}
}

サンプル応答

{
    "output": {
        "finish_reason": "stop",
        "session_id": "2dc3e1a9dcd248c6bb9ca92bffc3e745",
        "text": "杭州 (略称「杭」) は浙江省の省都です。最新の行政区調整によると、杭州には現在 10 の区、2 つの県レベルの都市、1 つの県があります。具体的には次のとおりです。

- 区 (10): 上城区、拱墅区、西湖区、滨江区、萧山区、余杭区、临平区、钱塘区、富阳区、临安区。
- 県レベルの都市 (2): 建德市、桐庐県 (桐庐はここでは県レベルの都市として扱われていますが、厳密に言えば県です)。
- 県 (1): 淳安県。

行政区は時間の経過とともに変化する可能性があるため、最新の公式発表をご参照ください。上記の情報は比較的最近の資料に基づいて編集されています。最新の変更については、政府の公式 Web サイトにアクセスして、最も正確な情報を入手することをお勧めします。"
    },
    "usage": {

    },
    "request_id": "d3c8f368-b645-9446-bfe4-20ca51821a02"
}

参考資料

カスタム プラグインを作成する

アプリケーション呼び出し手順と例

アプリケーション呼び出し API のパラメータ リストと API リファレンス