文档

首次调用通义千问API

更新时间:

百炼支持通过API调用大模型,涵盖OpenAI兼容接口、DashScope SDK等接入方式。

说明

如果您已经熟悉大模型调用,也可以直接查看API参考文档通过API使用通义千问

本文以通义千问为例,引导您完成大模型API调用。您将了解到:

  • 如何获取API Key

  • 如何配置本地开发环境

  • 如何调用通义千问API

账号设置

  1. 开通服务:首先您需要注册登录阿里云账号,然后前往模型广场开通模型服务。

  2. 获取API Key:为了能够通过API调用大模型,您还需要在API Key管理界面创建API Key请务必妥善保管API Key,避免明文写入代码中造成泄露。

选择开发语言

您可以选择您熟悉的语言或工具,用于后续调用大模型API。

Python

步骤 1:配置 Python 环境

检查您的Python计算环境

您可以在终端中输入以下命令查看当前计算环境是否安装了Python:

# 如果运行失败,您可以将python替换成python3再运行
python -V

您的Python需要为3.8或以上版本。如果您没有安装Python,或Python环境不满足3.8或以上版本,请您参考安装Python进行安装。

配置虚拟环境(可选)

如果您的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

安装 SDK

您可以通过OpenAI的Python SDK或DashScope的Python SDK来调用百炼平台上的模型。

安装OpenAI Python SDK

通过运行以下命令安装OpenAI Python SDK:

pip3 install -U openai

安装DashScope Python SDK

通过运行以下命令安装DashScope Python SDK:

pip3 install -U dashscope

步骤 2:配置 API Key 到环境变量

Windows

在Windows系统中,您可以使用CMD或PowerShell(推荐)运行命令。

CMD

当您使用CMD中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

方式二:对当前用户添加永久性环境变量

当您在CMD中需要为当前用户添加永久性环境变量时,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

PowerShell

当您使用PowerShell中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,您可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您在PowerShell中需要为当前用户添加永久性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

Linux

当您使用Linux系统(如Ubuntu、CentOS等)中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,可以把以下命令语句复制并添加到~/.bashrc文件中:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.bashrc中:

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

添加完成后,您可以运行以下命令使环境变量生效:

source ~/.bashrc

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

macOS

当您使用macOS系统中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,您可以根据您使用的Shell类型把以下命令复制并添加到~/.zshrc~/.bash_profile文件中。

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.zshrc~/.bash_profile中:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
## 如果您的Shell类型是Zsh,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc

## 如果您的Shell类型是Bash,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile

添加完成后,您可以根据使用的Shell类型运行以下命令使得环境变量生效:

# 如果您的Shell类型是Zsh,运行以下命令
source ~/.zshrc

# 如果您的Shell类型是Bash,运行以下命令
source ~/.bash_profile

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

步骤 3:调用大模型 API

OpenAI Python SDK

如果您安装完成了Python以及OpenAI的Python SDK,可以参考以下代码发送您的API请求。您可以新建一个python文件,命名为hello_qwen.py,将以下代码复制到hello_qwen.py中并保存。

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-turbo",
    messages=[
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': '你是谁?'}
    ],
    temperature=0.8
)

print(completion.choices[0].message.content)

复制完成后,您可以通过命令python hello_qwen.py运行。运行后您将会看到对应的输出结果:

我是阿里云开发的一款超大规模语言模型,我叫通义千问。
说明

如果运行失败,您可以将python替换成python3再运行。

DashScope Python SDK

如果您安装完成了Python以及DashScope的Python SDK,可以参考以下代码发送您的API请求。您可以新建一个python文件,命名为hello_qwen.py,将以下代码复制到hello_qwen.py中并保存。

from dashscope import Generation

messages = [
    {'role': 'system', 'content': 'You are a helpful assistant.'},
    {'role': 'user', 'content': '你是谁?'}
    ]
response = Generation.call(
    model="qwen-turbo",
    messages=messages,
    temperature=0.8,
    result_format='message'
)

print(response.output.choices[0].message.content)

复制完成后,您可以通过命令python hello_qwen.py运行。运行后您将会看到对应的输出结果:

我是阿里云开发的一款超大规模语言模型,我叫通义千问。
说明

如果运行失败,您可以将python替换成python3再运行。

Node.js

步骤1:配置Node.js环境

百炼兼容OpenAI的接口规范,您可以通过OpenAI SDK调用百炼提供的部分模型服务

检查您的Node.js计算环境

您可以在终端中输入以下命令查看当前计算环境是否安装了Node.js:

node -v

这将打印出您当前Node.js 版本。如果您的环境中没有Node.js,请访问Node.js官网进行下载。

安装 SDK

您可以在终端运行以下命令:

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

如果安装失败,您可以通过配置镜像源的方法来完成安装,如:

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

配置镜像源后,您可以重新运行安装SDK的命令。

步骤 2:配置 API Key 到环境变量

Windows

在Windows系统中,您可以使用CMD或PowerShell(推荐)运行命令。

CMD

当您使用CMD中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

方式二:对当前用户添加永久性环境变量

当您在CMD中需要为当前用户添加永久性环境变量时,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

PowerShell

当您使用PowerShell中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,您可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您在PowerShell中需要为当前用户添加永久性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

Linux

当您使用Linux系统(如Ubuntu、CentOS等)中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,可以把以下命令语句复制并添加到~/.bashrc文件中:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.bashrc中:

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

添加完成后,您可以运行以下命令使环境变量生效:

source ~/.bashrc

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

macOS

当您使用macOS系统中的命令行添加API Key为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,您可以根据您使用的Shell类型把以下命令复制并添加到~/.zshrc~/.bash_profile文件中。

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.zshrc~/.bash_profile中:

# 用您的 API Key 代替 YOUR_DASHSCOPE_API_KEY
## 如果您的Shell类型是Zsh,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc

## 如果您的Shell类型是Bash,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile

添加完成后,您可以根据使用的Shell类型运行以下命令使得环境变量生效:

# 如果您的Shell类型是Zsh,运行以下命令
source ~/.zshrc

# 如果您的Shell类型是Bash,运行以下命令
source ~/.bash_profile

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

步骤 3:调用大模型 API

您可以新建一个hello_qwen.js文件,将以下代码复制到文件中。

import OpenAI from "openai";

const openai = new OpenAI(
    {
        apiKey: process.env.DASHSCOPE_API_KEY,
        baseURL:"https://dashscope.aliyuncs.com/compatible-mode/v1"
    }
);

async function main() {
  const completion = await openai.chat.completions.create({
    messages: [
      {role: "system", content: "You are a helpful assistant." },
      {role: "user", content: "你是谁?" }
    ],
    model: "qwen-max",
  });

  console.log(completion.choices[0]['message']['content']);
}

main();

您的package.json文件需要有"type"键,类似于:

{
  "type": "module",
  "dependencies": {
    "openai": "^4.53.2"
  }
}

您可以在命令行中运行以下命令来发送API请求:

node hello_qwen.js

运行后您将会看到对应的输出结果:

我是阿里云开发的一款超大规模语言模型,我叫通义千问。

Java

步骤 1:配置 Java 环境

检查您的Java计算环境

您可以在终端运行以下命令:

java -version

为了使用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 替换为最新的版本号。

<!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dashscope-sdk-java</artifactId>
    <version>the-latest-version</version>
</dependency>
// https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: 'the-latest-version'

步骤 2:配置 API Key 到环境变量

Windows

在Windows系统中,您可以使用CMD或PowerShell(推荐)运行命令。

CMD

当您使用CMD中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

方式二:对当前用户添加永久性环境变量

当您在CMD中需要为当前用户添加永久性环境变量时,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

PowerShell

当您使用PowerShell中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,您可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您在PowerShell中需要为当前用户添加永久性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

Linux

当您使用Linux系统(如Ubuntu、CentOS等)中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,可以把以下命令语句复制并添加到~/.bashrc文件中:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.bashrc中:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc

添加完成后,您可以运行以下命令使环境变量生效:

source ~/.bashrc

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

macOS

当您使用macOS系统中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,您可以根据您使用的Shell类型把以下命令复制并添加到~/.zshrc~/.bash_profile文件中。

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.zshrc~/.bash_profile中:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
## 如果您的Shell类型是Zsh,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc

## 如果您的Shell类型是Bash,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile

添加完成后,您可以根据使用的Shell类型运行以下命令使得环境变量生效:

# 如果您的Shell类型是Zsh,运行以下命令
source ~/.zshrc

# 如果您的Shell类型是Bash,运行以下命令
source ~/.bash_profile

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

步骤 3:调用大模型 API

您可以运行以下代码来调用大模型API。

import java.util.Arrays;
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;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        Generation gen = new Generation();
        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()
                .model("qwen-turbo")
                .messages(Arrays.asList(systemMsg, userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .temperature(0.8f)
                .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("An error occurred while calling the generation service: " + e.getMessage());
        }
        System.exit(0);
    }
}

运行后您将会看到对应的输出结果:

我是阿里云开发的一款超大规模语言模型,我叫通义千问。

curl

步骤 1:配置 curl

检查并安装 curl

您可以在终端运行以下命令:

curl --version
说明

如果您使用PowerShell,请运行curl.exe --version

以上命令会打印出您环境中curl的版本。如果您的环境中没有curl,请参考curl工具安装进行安装。

步骤 2:配置 API Key 到环境变量

Windows

在Windows系统中,您可以使用CMD或PowerShell(推荐)运行命令。

CMD

当您使用CMD中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
set DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

方式二:对当前用户添加永久性环境变量

当您在CMD中需要为当前用户添加永久性环境变量时,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"

您需要重新打开一个CMD窗口,运行以下命令检查环境变量是否生效:

echo %DASHSCOPE_API_KEY%

PowerShell

当您使用PowerShell中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,您可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您在PowerShell中需要为当前用户添加永久性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $env:DASHSCOPE_API_KEY

Linux

当您使用Linux系统(如Ubuntu、CentOS等)中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,可以把以下命令语句复制并添加到~/.bashrc文件中:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.bashrc中:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc

添加完成后,您可以运行以下命令使环境变量生效:

source ~/.bashrc

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

macOS

当您使用macOS系统中的命令行添加API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。

方式一:添加临时性环境变量

如果您仅需要在当前会话中添加并使用临时性环境变量,可以运行以下命令:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

您可以在当前会话运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

方式二:对当前用户添加永久性环境变量

如果您需要对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,您可以根据您使用的Shell类型把以下命令复制并添加到~/.zshrc~/.bash_profile文件中。

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

或直接运行以下命令将上述命令语句添加到~/.zshrc~/.bash_profile中:

# 用您的 API-KEY 代替 YOUR_DASHSCOPE_API_KEY
## 如果您的Shell类型是Zsh,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc

## 如果您的Shell类型是Bash,运行以下命令
echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile

添加完成后,您可以根据使用的Shell类型运行以下命令使得环境变量生效:

# 如果您的Shell类型是Zsh,运行以下命令
source ~/.zshrc

# 如果您的Shell类型是Bash,运行以下命令
source ~/.bash_profile

您可以新建一个会话,运行以下命令检查环境变量是否生效:

echo $DASHSCOPE_API_KEY

步骤 3:调用大模型 API

您可以通过OpenAI兼容的HTTP方式或DashScope的HTTP方式来调用百炼平台上的模型。

OpenAI兼容-HTTP

您可以运行以下命令发送API请求:

curl --location "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-turbo",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "你是谁?"
        }
    ],
    "temperature":0.8
}'

发送API请求后,可以得到以下回复:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "我是阿里云开发的一款超大规模语言模型,我叫通义千问。"
      },
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null
    }
  ],
  "object": "chat.completion",
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 17,
    "total_tokens": 39
  },
  "created": 1722235747,
  "system_fingerprint": null,
  "model": "qwen-turbo",
  "id": "chatcmpl-e0584183-f0c5-9301-ba3c-e80a5b27ee1d"
}

DashScope-HTTP

您可以运行以下命令发送API请求:

curl --location "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-turbo",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "你是谁?"
            }
        ]
    },
    "parameters": {
        "temperature":0.8,
        "result_format":"message"
    }
}'

发送API请求后,可以得到以下回复:

{
  "output": {
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": "我是阿里云开发的一款超大规模语言模型,我叫通义千问。"
        }
      }
    ]
  },
  "usage": {
    "total_tokens": 39,
    "output_tokens": 17,
    "input_tokens": 22
  },
  "request_id": "48ba66e5-fa6b-9d46-922c-98fd67af718a"
}

常见问题

  1. 通义千问、灵积、DashScope、百炼是什么关系?

    • 通义千问是阿里云研发的大语言模型。

    • 灵积(也称为DashScope)是阿里云推出的模型服务平台,提供了包括通义千问在内的多种模型的调用接口。

    • 百炼是阿里云推出的一站式大模型应用开发平台,同时也集成了灵积来提供模型调用服务。

  2. 我如果想调用通义千问模型,是要通过灵积平台还是百炼平台?

    通过灵积平台与百炼平台调用通义千问模型都是通过DashScope SDK或OpenAI兼容或HTTP方式实现。两个平台都可以获取到API-KEY,且是同步的。因此您只需在两个平台任选其一创建API-KEY,即可发起通义千问模型的调用。

    灵积即将合入百炼,您可以优先选择在百炼控制台创建API-KEY。

下一步