更新时间:2025-07-03 GMT+08:00
分享

大模型API类商品使用

本文介绍的是:当用户在云商店购买大模型API商品后,如何调用大模型API接口。

API认证方式概述

在调用API商品时,云商店AI大模型和Agent类型的API商品,支持API Key认证。

API Key认证(兼容OpenAI API格式鉴权):AI大模型和Agent类型的API商品支持该种鉴权方式,API Key需要通过买家中心-API Keys菜单创建生成,客户端程序将API Key放到Request Header中,从而进行身份认证。

API Key请求说明

获取API Key

在调用商家基于云商店Agents网关部署的大模型或Agent服务时,需要填写API Key用于接口的鉴权认证。

  1. 前往我的云商店>已购买服务>按需/套餐包>API Key管理。

  2. 在“API Key管理”页面,单击“创建API Key”,填写描述信息后,单击“创建”会返回“您的密钥”,请复制保存密钥,单击“关闭”后将无法再次查看密钥

    • 最多支持创建20个密钥,密钥只会在新建后显示一次,请妥善保存。
    • 当密钥丢失将无法找回,请新建API Key获取新的访问密钥。
    • 如调用接口,http状态码返回如下情况时,请等API商品开通成功后再尝试调用。
      {
          "error_msg": "can not find control info by path",
          "error_code": "96010001"
      }

通过API Key 调用

参照如下代码示例。注意:不同大模型的参数可能略有区别,请以商品详情页的API接口详情为准。

  • Python示例代码如下所示:
    • 使用普通requests包调用。
      import requests
      import json
       
      if __name__ == '__main__':
          url = "https:/example.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de06*****/v1/chat/completions"
          api_key = "<your_apiKey>"  # 把<your_apiKey>替换成已获取的API Key。
       
          # Send request.
          headers = {
              'Content-Type': 'application/json',
              'Authorization': f'Bearer {api_key}'
          }
          data = {
              "model": "******",  # 调用时的模型名称。
              "max_tokens": 1024,  # 最大输出token数。
              "messages": [
                  {"role": "system", "content": "You are a helpful assistant."},
                  {"role": "user", "content": "hello"}
              ],
              # 是否开启流式推理,默认为False,表示不开启流式推理。
              "stream": False,
              # 在流式输出时是否展示使用的token数目。只有当stream为True时该参数才会生效。
              # "stream_options": {"include_usage": True},
              # 控制采样随机性的浮点数,值较低时模型更具确定性,值较高时模型更具创造性。"0"表示贪婪取样。默认为0.6。
              "temperature": 0.6
          }
           response = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
           # Print result.     
           print(response.status_code)     
           print(response.text)
      
    • 使用OpenAI SDK调用。
      from openai import OpenAI
       
      if __name__ == '__main__':
           base_url = "https://example.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de06******/v1"
           api_key = "<your_apiKey>"  # 把<your_apiKey>替换成已获取的API Key。
       
           client = OpenAI(api_key=api_key, base_url=base_url)
       
           response = client.chat.completions.create(
                model="******",
                messages=[
                     {"role": "system", "content": "You are a helpful assistant"},
                     {"role": "user", "content": "Hello"},
                ],
                max_tokens=1024,
                temperature=0.6,
                stream=False
           )
           # Print result.     
              print(response.choices[0].message.content)
    • curl命令示例如下所示:
      curl -X POST "https://example.com/v1/infers/937cabe5-d673-47f1-9e7c-2b4de06*****/v1/chat/completions" -H "Content-Type: application/json"  -H "Authorization: Bearer yourApiKey"  -d '{"model": "******", "max_tokens": 1024, "messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "hello"}], "stream": false, "temperature": 0.6 }' --insecure
  • 请求参数说明

    参数

    是否必选

    参数类型

    描述

    model

    Str

    调用时的模型名称。

    messages

    Array

    请求输入的问题。

    stream_options

    Object

    该参数用于配置在流式输出时是否展示使用的token数目。只有当stream为True的时候该参数才会激活生效。如果您需要统计流式输出模式下的token数目,可将该参数配置为 stream_options={"include_usage":True}。

    max_tokens

    Int

    每个输出序列要生成的最大Tokens数量。

    top_k

    Int

    控制要考虑的前几个Tokens的数量的整数。设置为“-1”表示考虑所有Tokens。适当降低该值可以减少采样时间。

    top_p

    Float

    控制要考虑的前几个Tokens的累积概率的浮点数。取值范围:0~1 设置为“1”表示考虑所有Tokens。

    temperature

    Float

    控制采样的随机性的浮点数。较低的值使模型更加确定性,较高的值使模型更加随机。 “0”表示贪婪采样。

    stop

    None/ Str/List

    用于停止生成的字符串列表。返回的输出将不包含停止字符串。例如,设置为["你","好"]时,在生成文本过程中,遇到“你”或者“好”将停止文本生成。

    stream

    Bool

    是否开启流式推理。默认为“False”,表示不开启流式推理。

    n

    Int

    返回多条正常结果。

    ● 不使用beam_search场景下,n取值建议为1≤n≤10。如果n>1时,必须确保不使用greedy_sample采样,也就是top_k > 1,temperature > 0。

    ● 使用beam_search场景下,n取值建议为 1

    use_beam_search

    Bool

    是否使用beam_search替换采样。使用该参数时,如下参数必须按要求设置。

    ● n:大于1

    ● top_p:1.0

    ● top_k:-1

    ● temperature:0.0

    presence_penalty

    Float

    presence_penalty表示会根据当前生成的文本中新出现的词语进行奖惩。取值范围 [-2.0,2.0]。

    frequency_penalty

    Float

    frequency_penalty会根据当前生成的文本中各个词语的出现频率进行奖惩。取值范围 [-2.0,2.0]。

    length_penalty

    Float

    length_penalty表示在beam search过程中,对于较长的序列,模型会给予较大的惩罚。使用该参数时,必须添加如下三个参数,且必须按要求设置。

    ● top_k:-1

    ● use_beam_search:true

    ● best_of:大于1

    ignore_eos

    Bool

    ignore_eos表示是否忽略EOS并且继续生成 Token。

  • 普通requests包、OpenAI SDK、curl命令的返回示例如下所示:
    {
        "id": "cmpl-29f7a172056541449eb1f9d31c*****",
        "object": "chat.completion",
        "created": 17231*****,
        "model": "Qwen2-7B",
        "choices": [
            {
                "index": 0,
                "message": {
                    "role": "assistant",
                    "content": "你好!很高兴能为你提供帮助。有什么问题我可以回答或帮你解决吗?"
                },
                "logprobs": null,
                "finish_reason": "stop",
                "stop_reason": null
            }
        ],
        "usage": {
            "prompt_tokens": 20,
            "total_tokens": 38,
            "completion_tokens": 18
        }
    }
  • 思维链模型的返回示例如下所示:
    messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
    response = client.chat.completions.create(model=model, messages=messages)
    reasoning_content = response.choices[0].message.reasoning_content
    content = response.choices[0].message.content
    print("reasoning_content:", reasoning_content)
    print("content:", content)
  • 返回参数说明

参数

参数类型

描述

id

Str

请求ID。。

object

Str

请求任务。

created

Int

请求生成的时间戳。

model

Str

调用的模型名。

choices

Array

模型生成内容。

usage

Object

请求输入长度、输出长度和总长度。

reasoning_content

Str

当模型支持思维链时,模型的思考内容。对于支持思维链的模型,开启流式输出时,会首先在reasoning_content字段输出思考内容,然后在content中输出回答内容。

content

Str

模型的回答内容。

相关文档