内容梳理|新手体会大模型AI接口调用
【学习目标】
1.先掌握API 调用流程:注册平台→获取 API Key→安装 SDK→编写基础调用代码。
2.理解对话上下文管理:messages的结构、角色分工、多轮对话逻辑。
3.学会解析响应与错误处理:提取有效信息、处理异常情况。
4.进阶参数调优与场景定制:通过system提示和生成参数优化结果。
学习入口,代码示例
选择一个模型,我选用的是智谱的,到官网查看文档即可。
一、核心库与 API 调用基础
一)ZhipuAI 库的使用
- 代码中
from zhipuai import ZhipuAI
导入了智谱 AI 的官方 Python SDK,需要先通过pip install zhipuai
安装该库。 - 学习重点:SDK 的基本结构(如客户端初始化、接口调用方式)、版本兼容性(不同版本的方法可能有差异)
- 代码中
二)API 密钥(API Key)的作用
client = ZhipuAI(api_key="")
中的api_key
是访问智谱 AI 服务的身份凭证,需要在智谱 AI 开放平台注册后获取(类似 OpenAI 的 API Key)。- 学习重点:API 密钥的安全管理(不可泄露、避免硬编码在代码中,可通过环境变量加载)。
二、大语言模型对话接口参数
代码中client.chat.completions.create()
是调用对话接口的核心方法,需要理解其参数含义:
一)model
参数- 指定调用的模型名称(如
"glm-4-plus"
),智谱 AI 提供多种模型(如 GLM-3、GLM-4 系列),不同模型的能力、价格、速率限制不同。 - 学习重点:了解各模型的适用场景(如 GLM-4-Plus 适合复杂对话,GLM-4-Flash 适合高并发轻量任务)。
- 指定调用的模型名称(如
二)messages
参数- 这是对话历史列表,每个元素是包含
role
(角色)和content
(内容)的字典,用于构建多轮对话上下文。role
的可选值:"user"
(用户输入)、"assistant"
(模型回复)、"system"
(系统提示,用于设定模型行为)。- 对话逻辑:模型会根据完整的
messages
历史生成回复,确保上下文连贯(例如代码中用户要求 “更精准的口号”,模型会参考之前提到的 “智谱 AI 开放平台” 进行创作)。
- 学习重点:多轮对话的上下文管理(如何动态添加对话历史、控制上下文长度以节省 token)。
- 这是对话历史列表,每个元素是包含
response = client.chat.completions.create(model="glm-4-plus",messages=[{"role": "system", "content": "你是专业的营销文案专家,擅长创作产品口号"},{"role": "user", "content": f"为{product}创作3个口号,突出技术优势"}],# 1. 控制随机性:值越低越稳定、精准(0.1适合需要确定性的场景)temperature=0.1,# 2. 限制输出长度:避免回复过长(每个口号约15字,3个约60token)max_tokens=100,# 3. 设置终止符:遇到"###"自动停止生成(防止冗余内容)stop=["###"],# 4. 控制词汇多样性(0~1,值越低越集中于高概率词汇)top_p=0.7,# 5. 强制生成指定数量的回复(默认1个)n=3)
三、响应结果处理
response
是模型返回的结果对象,需要学习如何解析其中的关键信息:
一)响应结构
智谱 AI 的 API 响应通常包含以下核心字段
{"created": 1703487403,"id": "8239375684858666781","model": "glm-4-plus","request_id": "8239375684858666781","choices": [{"finish_reason": "stop","index": 0,"message": {"content": "以AI绘蓝图 — 智谱AI,让创新的每一刻成为可能。","role": "assistant"}}],"usage": {"completion_tokens": 217,"prompt_tokens": 31,"total_tokens": 248}
}
二)提取回复内容
代码中print(response)
会打印完整响应,实际使用时需提取content
字段:
# 正确提取回复的方式
reply = response.choices[0].message.content
print(reply) # 输出模型生成的口号
请结合上述reponse的结构,理解choices[0].message.content。
学习重点:理解choices
列表(多候选回复场景,通常取第一个)、usage
字段(用于控制成本和 token 消耗)。
四、扩展学习:对话场景优化
一)系统提示(System Prompt)
可在messages
中添加"role": "system"
的消息,提前设定模型行为(如 “请用简洁有力的语言创作口号,不超过 15 字”),示例:messages=[{"role": "system", "content": "你是专业营销顾问,口号需突出产品的AI技术优势"},{"role": "user", "content": "智谱AI开放平台"} ]
二)参数调优
对话接口还支持其他参数控制生成效果(需参考官方文档):temperature
:控制随机性(0~1,值越低越确定,适合 “精准” 需求)。max_tokens
:限制最大输出长度,避免回复过长。stop
:设置终止符(如遇到特定字符串停止生成)。
参数说明与调优技巧:
实际应用建议:
|
三)错误处理
实际调用中需处理可能的异常(如网络错误、API 密钥无效、token 超限等):
try:response = client.chat.completions.create(...)# 处理响应
except Exception as e:print(f"调用失败:{e}")