全部產品
Search
文件中心

Alibaba Cloud Model Studio:首次調用通義千問API

更新時間:May 29, 2025

阿里雲百鍊支援通過API調用大模型,涵蓋OpenAI相容介面、DashScope SDK等接入方式。

本文以通義千問為例,引導您完成大模型API調用。您將瞭解到:

  • 如何擷取 API Key

  • 如何配置本地開發環境

  • 如何調用通義千問 API

帳號設定

  1. 註冊帳號:如果沒有阿里雲帳號,您需要先註冊阿里雲帳號。

    使用RAM帳號時,請由主帳號所有者將其添加至預設業務空間(授予訪客/管理員角色)。詳情請參見為RAM使用者授予百鍊業務空間許可權
  2. 開通阿里雲百鍊:使用阿里雲主帳號前往阿里雲百鍊控制台,開通阿里雲百鍊的模型服務,以獲得免費額度

    image

  3. 擷取API Key:前往API-KEY頁面,單擊建立我的API-KEY然後在已建立的API Key操作列,單擊查看,擷取API KEY,用於通過API調用大模型。

    建立新的API Key時,歸屬業務空間推薦選擇預設業務空間。使用子空間API Key需由主帳號管理員為對應子空間開通模型授權(如本文使用通義千問-Plus模型),詳情請參見授權子業務空間模型調用、訓練和部署

配置API Key到環境變數

建議您把API Key配置到環境變數,從而避免在代碼裡顯式地配置API Key,降低泄漏風險。

配置步驟

Linux系統

添加永久性環境變數

如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以添加永久性環境變數。

  1. 執行以下命令來將環境變數設定追加到~/.bashrc 檔案中。

    # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
    echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc

    也可以手動修改~/.bashrc 檔案。

    手動修改

    執行以下命令,開啟~/.bashrc 檔案。

    nano ~/.bashrc

    在設定檔中添加以下內容。

    # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
    export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

    在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。

  2. 執行以下命令,使變更生效。

    source ~/.bashrc
  3. 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。

    echo $DASHSCOPE_API_KEY

添加臨時性環境變數

如果您僅希望在當前會話中使用該環境變數,可以添加臨時性環境變數。

  1. 執行以下命令。

    # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
    export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
  2. 執行以下命令,驗證該環境變數是否生效。

    echo $DASHSCOPE_API_KEY

macOS系統

添加永久性環境變數

如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以添加永久性環境變數。

  1. 在終端中執行以下命令,查看預設Shell類型。

    echo $SHELL
  2. 根據預設Shell類型進行操作。

    Zsh
    1. 執行以下命令來將環境變數設定追加到 ~/.zshrc 檔案中。

      # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
      echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc

      也可以手動修改~/.zshrc 檔案。

      手動修改

      執行以下命令,開啟Shell設定檔。

      nano ~/.zshrc

      在設定檔中添加以下內容。

      # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
      export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

      在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。

    2. 執行以下命令,使變更生效。

      source ~/.zshrc
    3. 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。

      echo $DASHSCOPE_API_KEY
    Bash
    1. 執行以下命令來將環境變數設定追加到 ~/.bash_profile 檔案中。

      # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
      echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile

      也可以手動修改~/.bash_profile 檔案。

      手動修改

      執行以下命令,開啟Shell設定檔。

      nano ~/.bash_profile

      在設定檔中添加以下內容。

      # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
      export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

      在nano編輯器中,按Ctrl + X,接著按Y,再按Enter以儲存並關閉檔案。

    2. 執行以下命令,使變更生效。

      source ~/.bash_profile
    3. 重新開啟一個終端視窗,運行以下命令檢查環境變數是否生效。

      echo $DASHSCOPE_API_KEY

添加臨時性環境變數

如果您僅希望在當前會話中使用該環境變數,可以添加臨時性環境變數。

以下命令適用於 Zsh 和 Bash。
  1. 執行以下命令。

    # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
    export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
  2. 執行以下命令,驗證該環境變數是否生效。

    echo $DASHSCOPE_API_KEY

Windows系統

在Windows系統中,您可以通過系統屬性、CMD或PowerShell配置環境變數。

系統屬性

說明
  • 此方式配置的環境變數永久生效。

  • 修改系統內容變數需具備管理員權限。

  • 配置環境變數後不會立即影響已經開啟的命令視窗、IDE或其他正在啟動並執行應用程式。您需要重新啟動這些程式或者開啟新的命令列使環境變數生效。

  1. 在Windows系統案頭中按Win+Q鍵,在搜尋方塊中搜尋編輯系統內容變數,單擊開啟系統屬性介面。

  2. 系統屬性視窗,單擊環境變數,然後在系統變數地區下單擊建立變數名填入DASHSCOPE_API_KEY變數值填入您的DashScope API Key。

    image

  3. 依次單擊三個視窗的確定,關閉系統屬性配置頁面,完成環境變數配置。

  4. 開啟CMD(命令提示字元)視窗或Windows PowerShell視窗,執行如下命令檢查環境變數是否生效。

    • CMD查詢命令:

      echo %DASHSCOPE_API_KEY%

      image

    • Windows PowerShell查詢命令:

      echo $env:DASHSCOPE_API_KEY

      image

CMD

添加永久性環境變數

如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以按如下操作。

  1. 在CMD中運行以下命令。

    # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
    setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
  2. 開啟一個新的CMD視窗。

  3. 在新的CMD視窗運行以下命令,檢查環境變數是否生效。

    echo %DASHSCOPE_API_KEY%

    image

添加臨時性環境變數

如果您僅希望在當前會話中使用該環境變數,可以在CMD中運行以下命令。

# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY

您可以在當前會話運行以下命令檢查環境變數是否生效。

echo %DASHSCOPE_API_KEY%

image

PowerShell

添加永久性環境變數

如果您希望API Key環境變數在目前使用者的所有新會話中生效,可以按如下操作。

  1. 在PowerShell中運行以下命令。

    # 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
    [Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)
  2. 開啟一個新的PowerShell視窗。

  3. 在新的PowerShell視窗運行以下命令,檢查環境變數是否生效。

    echo $env:DASHSCOPE_API_KEY

    image

添加臨時性環境變數

如果您僅希望在當前會話中使用該環境變數,可以在PowerShell中運行以下命令。

# 用您的阿里雲百鍊API Key代替YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"

您可以在當前會話運行以下命令檢查環境變數是否生效。

echo $env:DASHSCOPE_API_KEY

image

選擇開發語言

選擇您熟悉的語言或工具,用於調用大模型API。

Python

步驟 1:配置Python環境

檢查您的Python版本

您可以在終端中輸入以下命令查看當前計算環境是否安裝了Python和pip:

您的Python需要為3.8或以上版本,請您參考安裝Python進行安裝。

python -V
pip --version

以Windows的CMD為例:

image

常見問題

Q:執行python -Vpip --version報錯:

  • 'python' 不是內部或外部命令,也不是可啟動並執行程式或批次檔。

  • 'pip' 不是內部或外部命令,也不是可啟動並執行程式或批次檔。

  • -bash: python: command not found

  • -bash: pip: command not found

解決辦法如下:

Windows系統
  1. 請確認是否已參考安裝Python,在您的計算環境中安裝Python,並將python.exe添加至環境變數PATH中。image

  2. 如果已安裝了Python並添加了環境變數,仍報此錯,請關閉當前終端,重新開啟一個新的終端視窗,再進行嘗試。

Linux、macOS系統

  1. 請確認是否已參考安裝Python,在您的計算環境中安裝的Python。

  2. 如果已安裝Python後,仍報此錯,請輸入which python pip命令查詢系統中是否有pythonpip

    • 如果返回如下結果,請關閉當前串連終端,重新開啟一個新的終端視窗,再進行嘗試。

      /usr/bin/python
      /usr/bin/pip
    • 如果返回如下結果,則再次輸入which python3 pip3查詢。

      /usr/bin/which: no python in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
      /usr/bin/which: no pip in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)

      如果返回結果如下,則使用python3 -Vpip3 --version查詢版本。

      /usr/bin/python3
      /usr/bin/pip3

配置虛擬環境(可選)

如果您的Python已安裝完成,可以建立一個虛擬環境來安裝OpenAI Python SDK或DashScope Python SDK,這可以協助您避免與其它專案發生依賴衝突。

  1. 建立虛擬環境

    您可以運行以下命令,建立一個命名為.venv的虛擬環境:

    # 如果運行失敗,您可以將python替換成python3再運行
    python -m venv .venv
  2. 啟用虛擬環境

    如果您使用Windows系統,請運行以下命令來啟用虛擬環境:

    .venv\Scripts\activate

    如果您使用macOS或者Linux系統,請運行以下命令來啟用虛擬環境:

    source .venv/bin/activate

安裝OpenAI Python SDK或DashScope Python SDK

您可以通過OpenAI的Python SDK或DashScope的Python SDK來調用阿里雲百鍊平台上的模型。

安裝OpenAI Python SDK

通過運行以下命令安裝OpenAI Python SDK:

# 如果運行失敗,您可以將pip替換成pip3再運行
pip install -U openai

image

當終端出現Successfully installed ... openai-x.x.x的提示後,表示您已經成功安裝OpenAI Python SDK。

安裝DashScope Python SDK

通過運行以下命令安裝DashScope Python SDK:

# 如果運行失敗,您可以將pip替換成pip3再運行
pip install -U dashscope

image

當終端出現Successfully installed ... dashscope-x.x.x的提示後,表示您已經成功安裝DashScope Python SDK。

說明

如果在安裝SDK過程中出現WARNING: You are using pip version xxx; however, version xxx is available.提示,此為pip工具版本更新通知,與SDK安裝無關,請直接忽略即可。

步驟 2:調用大模型API

OpenAI Python SDK

如果您安裝完成了Python以及OpenAI的Python SDK,可以參考以下步驟發送您的API請求。

  1. 建立一個檔案,命名為hello_qwen.py

  2. 將以下代碼複製到hello_qwen.py中並儲存。

    import os
    from openai import OpenAI
    
    try:
        client = OpenAI(
            # 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
        )
    
        completion = client.chat.completions.create(
            model="qwen-plus",  # 模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
            messages=[
                {'role': 'system', 'content': 'You are a helpful assistant.'},
                {'role': 'user', 'content': '你是誰?'}
                ]
        )
        print(completion.choices[0].message.content)
    except Exception as e:
        print(f"錯誤資訊:{e}")
        print("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code")
  3. 通過命令列運行python hello_qwen.pypython3 hello_qwen.py

    若提示No such file or directory,則需在檔案名稱前指定具體檔案路徑。

    運行後您將會看到輸出結果:

    我是阿里雲開發的一款超大規模語言模型,我叫通義千問。

DashScope Python SDK

如果您安裝完成了Python以及DashScope的Python SDK,可以參考以下步驟發送您的API請求。

  1. 建立一個檔案,命名為hello_qwen.py

  2. 將以下代碼複製到hello_qwen.py中並儲存。

    import os
    from dashscope import Generation
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    
    messages = [
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': '你是誰?'}
        ]
    response = Generation.call(
        # 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key = "sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"), 
        model="qwen-plus",   # 模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
        messages=messages,
        result_format="message"
    )
    
    if response.status_code == 200:
        print(response.output.choices[0].message.content)
    else:
        print(f"HTTP返回碼:{response.status_code}")
        print(f"錯誤碼:{response.code}")
        print(f"錯誤資訊:{response.message}")
        print("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code")
  3. 通過命令列運行python hello_qwen.pypython3 hello_qwen.py

    說明

    本樣本使用的運行命令需在Python檔案所在目錄執行,如果想要在任意位置執行,請在檔案名稱前指定具體檔案路徑。

    運行後您將會看到輸出結果:

    我是來自阿里雲的大規模語言模型,我叫通義千問。

Node.js

步驟 1:配置Node.js環境

檢查Node.js安裝狀態

您可以在終端中輸入以下命令查看當前計算環境是否安裝了Node.js和npm:

node -v
npm -v

以Windows的CMD為例:

image

這將列印出您當前Node.js 版本。如果您的環境中沒有Node.js,請訪問Node.js官網進行下載。

安裝模型調用SDK

您可以在終端運行以下命令:

npm install --save openai
# 或者
yarn add openai
說明

如果安裝失敗,您可以通過配置鏡像源的方法來完成安裝,如:

npm config set registry https://registry.npmmirror.com/

配置鏡像源後,您可以重新運行安裝SDK的命令。

image

當終端出現added xx package in xxs的提示後,表示您已經成功安裝OpenAI SDK。您可以使用npm list openai查詢具體版本資訊。

步驟 2:調用大模型API

  1. 建立一個hello_qwen.mjs檔案。

  2. 將以下代碼複製到檔案中。

    import OpenAI from "openai";
    
    try {
        const openai = new OpenAI(
            {
                // 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:apiKey: "sk-xxx",
                apiKey: process.env.DASHSCOPE_API_KEY,
                baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
            }
        );
        const completion = await openai.chat.completions.create({
            model: "qwen-plus",  //模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
            messages: [
                { role: "system", content: "You are a helpful assistant." },
                { role: "user", content: "你是誰?" }
            ],
        });
        console.log(completion.choices[0].message.content);
    } catch (error) {
        console.log(`錯誤資訊:${error}`);
        console.log("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
    }
  3. 通過命令列運行以下命令來發送API請求:

    node hello_qwen.mjs
    說明
    • 本樣本使用的運行命令需在hello_qwen.mjs檔案所在目錄執行,如果想要在任意位置執行,請在檔案名稱前指定具體檔案路徑。

    • 請確保已在hello_qwen.mjs檔案所在目錄中安裝了SDK,如果SDK與檔案不在同一目錄下,則會報錯Cannot find package 'openai' imported from xxx

    運行成功後您將會看到輸出結果:

    我是來自阿里雲的語言模型,我叫通義千問。

Java

步驟 1:配置Java環境

檢查您的Java版本

您可以在終端運行以下命令:

java -version
# (可選)如果使用maven管理和構建java專案,還需確保maven已正確安裝到您的開發環境中
mvn --version

以Windows的CMD為例:

image

為了使用DashScope Java SDK,您的Java需要在Java 8或以上版本。您可以查看列印資訊中的第一行確認Java版本,例如列印資訊:openjdk version "16.0.1" 2021-04-20表明當前Java版本為Java 16。如果您當前計算環境沒有Java,或版本低於Java 8,請前往Java下載進行下載與安裝。

安裝模型調用SDK

如果您的環境中已安裝Java,請安裝DashScope Java SDK。SDK的版本請參考:DashScope Java SDK。執行以下命令來添加 Java SDK 依賴,並將 the-latest-version 替換為最新的版本號碼。

XML

  1. 開啟您的Maven專案的pom.xml檔案。

  2. <dependencies>標籤內添加以下依賴資訊。

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dashscope-sdk-java</artifactId>
        <!-- 請將 'the-latest-version' 替換為最新版本號碼:https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
        <version>the-latest-version</version>
    </dependency>
  3. 儲存pom.xml檔案。

  4. 使用Maven命令(如mvn compilemvn clean install)來更新專案依賴,這樣Maven會自動下載並添加DashScope Java SDK到您的專案中。

以Windows的IDEA整合式開發環境為例:

image

Gradle

  1. 開啟您的Gradle專案的build.gradle檔案。

  2. dependencies塊內添加以下依賴資訊。

    dependencies {
        // 請將 'the-latest-version' 替換為最新版本號碼:https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
        implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: 'the-latest-version'
    }
  3. 儲存build.gradle檔案。

  4. 在命令列中,切換到您的專案根目錄,執行以下Gradle命令來更新專案依賴。這將會自動下載並添加DashScope Java SDK到您的專案中。

    ./gradlew build --refresh-dependencies

以Windows的IDEA整合式開發環境為例:

image

步驟 2:調用大模型API

您可以運行以下代碼來調用大模型API。

import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        Message systemMsg = Message.builder()
                .role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant.")
                .build();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("你是誰?")
                .build();
        GenerationParam param = GenerationParam.builder()
                // 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:.apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
                .model("qwen-plus")
                .messages(Arrays.asList(systemMsg, userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("錯誤資訊:"+e.getMessage());
            System.out.println("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
        }
        System.exit(0);
    }
}

運行後您將會看到對應的輸出結果:

我是阿里雲開發的一款超大規模語言模型,我叫通義千問。

curl

您可以通過OpenAI相容的HTTP方式或DashScope的HTTP方式來調用阿里雲百鍊平台上的模型。模型列表請參考:模型列表

說明

若沒有配置環境變數,請用阿里雲百鍊API Key將:-H "Authorization: Bearer $DASHSCOPE_API_KEY" \ 換為:-H "Authorization: Bearer sk-xxx" \ 。

OpenAI相容-HTTP

您可以運行以下命令發送API請求:

Windows

在CMD(命令提示字元)中執行如下命令:

curl -X POST "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions" ^
-H "Authorization: Bearer %DASHSCOPE_API_KEY%" ^
-H "Content-Type: application/json" ^
-d "{
    \"model\": \"qwen-plus\",
    \"messages\": [
        {
            \"role\": \"system\",
            \"content\": \"You are a helpful assistant.\"
        },
        {
            \"role\": \"user\",
            \"content\": \"你是誰?\"
        }
    ]
}"

Linux/macOS

在Terminal(終端)中執行如下命令:

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-plus",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "你是誰?"
        }
    ]
}'

發送API請求後,可以得到以下回複:

{
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "我是來自阿里雲的大規模語言模型,我叫通義千問。"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 22,
        "completion_tokens": 16,
        "total_tokens": 38
    },
    "created": 1728353155,
    "system_fingerprint": null,
    "model": "qwen-plus",
    "id": "chatcmpl-39799876-eda8-9527-9e14-2214d641cf9a"
}

DashScope-HTTP

您可以運行以下命令發送API請求:

Windows

在CMD(命令提示字元)中執行如下命令:

curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" ^
-H "Authorization: Bearer %DASHSCOPE_API_KEY%" ^
-H "Content-Type: application/json" ^
-d "{
  \"model\": \"qwen-plus\",
  \"input\": {
    \"messages\": [
      {
        \"role\": \"system\",
        \"content\": \"You are a helpful assistant.\"
      },
      {
        \"role\": \"user\",
        \"content\": \"你是誰?\"
      }
    ]
  },
  \"parameters\": {
    \"result_format\": \"message\"
  }
}"

Linux/macOS

在Terminal(終端)中執行如下命令:

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-plus",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "你是誰?"
            }
        ]
    },
    "parameters": {
        "result_format":"message"
    }
}'

發送API請求後,可以得到以下回複:

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": "我是來自阿里雲的大規模語言模型,我叫通義千問。"
                }
            }
        ]
    },
    "usage": {
        "total_tokens": 38,
        "output_tokens": 16,
        "input_tokens": 22
    },
    "request_id": "87f776d7-3c82-9d39-b238-d1ad38c9b6a9"
}

其它語言

調用大模型API

package main

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

type Message struct {
	Role    string `json:"role"`
	Content string `json:"content"`
}
type RequestBody struct {
	Model    string    `json:"model"`
	Messages []Message `json:"messages"`
}

func main() {
	// 建立 HTTP 用戶端
	client := &http.Client{}
	// 構建請求體
	requestBody := RequestBody{
		// 模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
		Model: "qwen-plus",
		Messages: []Message{
			{
				Role:    "system",
				Content: "You are a helpful assistant.",
			},
			{
				Role:    "user",
				Content: "你是誰?",
			},
		},
	}
	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		log.Fatal(err)
	}
	// 建立 POST 請求
	req, err := http.NewRequest("POST", "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", bytes.NewBuffer(jsonData))
	if err != nil {
		log.Fatal(err)
	}
	// 佈建要求頭
	// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:apiKey := "sk-xxx"
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")
	// 發送請求
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	// 讀取響應體
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	// 列印響應內容
	fmt.Printf("%s\n", bodyText)
}
<?php
// 佈建要求的URL
$url = 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions';
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:$apiKey = "sk-xxx";
$apiKey = getenv('DASHSCOPE_API_KEY');
// 佈建要求頭
$headers = [
    'Authorization: Bearer '.$apiKey,
    'Content-Type: application/json'
];
// 佈建要求體
$data = [
    "model" => "qwen-plus",
    "messages" => [
        [
            "role" => "system",
            "content" => "You are a helpful assistant."
        ],
        [
            "role" => "user",
            "content" => "你是誰?"
        ]
    ]
];
// 初始化cURL會話
$ch = curl_init();
// 設定cURL選項
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// 執行cURL會話
$response = curl_exec($ch);
// 檢查是否有錯誤發生
if (curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
}
// 關閉cURL資源
curl_close($ch);
// 輸出響應結果
echo $response;
?>
using System.Net.Http.Headers;
using System.Text;

class Program
{
    private static readonly HttpClient httpClient = new HttpClient();

    static async Task Main(string[] args)
    {
        // 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:string? apiKey = "sk-xxx";
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");

        if (string.IsNullOrEmpty(apiKey))
        {
            Console.WriteLine("API Key 未設定。請確保環境變數 'DASHSCOPE_API_KEY' 已設定。");
            return;
        }
        string url = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions";
        // 模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
        string jsonContent = @"{
            ""model"": ""qwen-plus"",
            ""messages"": [
                {
                    ""role"": ""system"",
                    ""content"": ""You are a helpful assistant.""
                },
                {
                    ""role"": ""user"", 
                    ""content"": ""你是誰?""
                }
            ]
        }";

        // 發送請求並擷取響應
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);

        // 輸出結果
        Console.WriteLine(result);
    }

    private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
    {
        using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
        {
            // 佈建要求頭
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // 發送請求並擷取響應
            HttpResponseMessage response = await httpClient.PostAsync(url, content);

            // 處理響應
            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }
            else
            {
                return $"請求失敗: {response.StatusCode}";
            }
        }
    }
}

API參考

常見問題

調用大模型API後報錯Model.AccessDenied,如何處理?

A:該報錯是因為您使用子業務空間的API Key,子業務空間無法訪問預設業務空間的應用或模型。使用子空間API Key需由主帳號管理員為對應子空間開通模型授權(如本文使用通義千問-Plus模型)。詳細操作步驟請參見授權子業務空間模型調用、訓練和部署

下一步

查看更多模型

範例程式碼以 qwen-plus 模型為例,阿里雲百鍊還支援其他通義千問模型,支援的模型以及對應的API參考文檔請參見模型列表

瞭解進階用法

範例程式碼僅完成了簡單問答,如果您想瞭解通義千問 API 的更多用法,如流式輸出結構化輸出工具調用等,請參見文本產生目錄。

線上體驗大模型

如果您想像Qwen Chat一樣,通過對話方塊與大模型互動,請訪問模型體驗