跳到主要内容

调用语言大模型接口

提示

前置条件:

  1. 三选一:准备好 python 或 nodejs 开发环境 或 创建一个在线应用
  2. 二选一:创建访问令牌 购买 Serverless API 或 使用免费的临时 token

通过 curl 快速使用大模型能力

一些框架、插件封装度较高,curl 可清晰了解请求路径、参数的原始情况:

curl https://ai.gitee.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 你的 Gitee AI 访问令牌" \
-d '{
"model": "Qwen2.5-72B-Instruct",
"stream": false,
"messages": [
{
"role": "system",
"content": "你是聪明的助手"
},
{
"role": "user",
"content": "老鼠生病了可以吃老鼠药治好吗?"
}
]
}'

AI 模型响应:

{
"id": "chat-476266af435142d2bb7d342ea54694f2",
"object": "chat.completion",
"created": 1731401912,
"model": "Qwen2.5-72B-Instruct",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "不可以。老鼠药是用于杀死老鼠的毒药,而不是治疗老鼠的疾病。如果老鼠生病了,应该寻求兽医的帮助。",
"tool_calls": []
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null
}],
"usage": {
"prompt_tokens": 27,
"total_tokens": 57,
"completion_tokens": 30
},
"prompt_logprobs": null
}

使用 openai 客户端调用 Gitee AI 模型 API

Gitee AI 的 Serverless API 兼容开发者喜爱且社区流行的 OpenAI 风格 API。

所有支持 OpenAI API 的工具都可以直接使用 Gitee AI 的 Serverless API 工作。

以 openai 客户端为例,首先安装依赖:pip install openai -i https://mirrors.cloud.tencent.com/pypi/simple

提示

如果你有 javascript 经验可使用 openai nodejs 客户端

app.py 文件如下:

from openai import OpenAI
import json

base_url = "https://ai.gitee.com/v1"

model_name = "Qwen2.5-72B-Instruct"

# https://ai.gitee.com/dashboard/settings/tokens 获取你的 api_key
client = OpenAI(base_url=base_url, api_key="GITEE_AI_API_KEY")

completion = client.chat.completions.create(
model=model_name, # 指定模型名称 例如 Qwen2.5-72B-Instruct,可访问 https://ai.gitee.com/serverless-api 查看
stream=True,
temperature=0.7,
top_p=0.95,
frequency_penalty=1.05,
messages=[
{"role": "system", "content": "你是一个有用的助手。"},
{"role": "user", "content": "写一个 python 简明教程"}
]
)

for chunk in completion:
print(chunk.choices[0].delta.content, end="")

请求体常见参数说明

  • model:指定要使用的模型名称,比如 "Qwen2.5-72B-Instruct" 或 "Yi-1.5-34B-Chat".

  • messages:消息列表,用于设置对话的上下文,每条消息包含 role 和 content。通过控制此列表,可实现多轮对话。这里的 messages 就是常说的 “prompt” 。

    • role:表示消息的角色类型,可以是以下三种:
      • system:系统角色,通常用于设定 AI 的行为和性格,比如 "你是一个专家"。
      • user:用户角色,表示用户的问题或指令。
      • assistant:助手角色,表示 AI 的回答,可以用来模拟多轮对话。
    • content:消息的具体文本内容。
  • temperature:用于控制生成内容的随机性,取值范围为 0-1。值越低,输出越稳定;值越高,输出越有创造性。

  • top_p:值在 0-1 之间,控制生成内容的保守性或多样性。

  • max_tokens:限制生成文本的长度,防止过长的回复。

  • stream:布尔值,true 将逐字响应,避免等待时间过长。

  • frequency_penalty:用于控制模型在生成内容时的重复程度。它的值在 -2.0 到 2.0 之间,建议设置 > 1。

  • tools:用于定义工具列表,

  • tool_choice: 支持 "auto" 由模型自动选择工具,也支持强制选择工具,写法如下:

"tool_choice": {"type": "function", "function": {"name": "function_name"}},
  • guided_json:让模型以指定的 JSON Schema 响应。不建议与 tools、guided_json 同时传入。

JSON Schema 更多信息可参阅:JSON Schema

  • guided_choice: 让模型选择提供的字符串列表之一,不建议与 tools、guided_json 同时传入。

    例如判断用户输入正负面性可传入:

"guided_choice": ["正面", "负面", "中性"]