Skip to main content
应用调用

调用智能体应用

可通过 DashScope SDK 或 HTTP 请求方式,将阿里云百炼的智能体应用集成至业务系统。

前提条件

在开始之前,请完成以下三个步骤以配置您的开发环境。
  1. 获取凭证
    • API Key:前往密钥管理页面,创建并获取 API Key。
    • 阿里云百炼应用 ID:前往应用管理页面创建智能体应用,并在应用卡片上复制其 APP_ID。
  2. 安装 DashScope SDK
    HTTP 接口调用跳过此步骤。
    请根据您使用的编程语言选择并执行相应的安装命令。
    # 使用此命令,将SDK安装到您的Python 3环境中
    python3 -m pip install -U dashscope
    
  3. 配置环境变量(推荐) 为保障密钥安全并避免在代码中硬编码,建议将 API Key 配置到环境变量。SDK 将自动从此变量读取。

快速开始

import os
from http import HTTPStatus
from dashscope import Application

response = Application.call(
    # 若没有配置环境变量,可用百炼API Key将下行替换为:api_key="sk-xxx"。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    app_id='APP_ID',  # 替换为实际的应用 ID
    prompt='你是谁?')

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://help.aliyun.com/zh/model-studio/developer-reference/error-code')
else:
    print(response.output.text)
响应示例
{
    "output": {
        "finish_reason": "stop",
        "session_id": "232ea2e9e6ef448db6b14465c06a9a56",
        "text": "我是来自阿里云的超大规模语言模型,我叫千问。我是一个能够回答问题、创作文字,还能表达观点、撰写代码的AI助手。如果您有任何问题或需要帮助,请随时告诉我,我会尽力为您提供帮助。"
    },
    "usage": {
        "models": [{"output_tokens": 51, "model_id": "qwen-max", "input_tokens": 121}]
    },
    "request_id": "661c9cad-e59c-9f78-a262-78eff243f151"
}

多轮对话

相比于单轮对话,多轮对话可以让大模型参考历史对话信息,更符合日常交流的场景。
import os
from http import HTTPStatus
from dashscope import Application

def call_with_session():
    response = Application.call(
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        app_id='APP_ID',  # 替换为实际的应用 ID
        prompt='你是谁?')

    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        return response

    responseNext = Application.call(
                api_key=os.getenv("DASHSCOPE_API_KEY"),
                app_id='APP_ID',  # 替换为实际的应用 ID
                prompt='你有什么技能?',
                session_id=response.output.session_id)  # 上一轮response的session_id

    if responseNext.status_code != HTTPStatus.OK:
        print(f'request_id={responseNext.request_id}')
        print(f'code={responseNext.status_code}')
        print(f'message={responseNext.message}')
    else:
        print('%s\n session_id=%s\n' % (responseNext.output.text, responseNext.output.session_id))

if __name__ == '__main__':
    call_with_session()
响应示例
我具备多种技能,可以协助你完成各种任务。以下是一些主要的技能:

1. **信息查询**:提供天气、新闻、历史事实、科学知识等各种信息。
2. **语言处理**:翻译文本、纠正语法错误、生成文章和故事。
3. **技术问题解答**:解答编程、软件使用、技术故障排除等问题。
4. **学习辅导**:帮助解答数学、物理、化学等学科的问题。
5. **生活建议**:提供健康、饮食、旅行、购物等方面的建议。

 session_id=98ceb3ca0c4e4b05a20a00f913050b42

相关文档