掌握大语言模型的关键在于API调用技巧与Prompt工程。本文将详解Prompt设计方法、参数调整策略及代码实现,助你快速提升LLM应用能力。
如何设计高质量的 Prompt(Zero-shot、Few-shot、System/User Prompt)
如何调整关键参数(温度、流式输出)
如何编写同步、异步(流式调用)的代码(智谱 AI)
通过本文的学习,你将掌握大语言模型API调用的核心技能,从Prompt设计到代码实现,全面提升LLM应用开发效率。
1. Prompt 设计:让模型听懂你的话
在 llm-universe 中,所有输入被称为 Prompt,模型返回则称为 Completion。优质Prompt需遵循特定原则并包含以下要素:
核心原则与技巧
清晰性:指令明确,避免模糊表述
上下文背景:提供必要背景信息
简洁性:避免冗余,保持言简意赅
结构化:使用分隔符引导模型解析
控制参数:通过 temperature 调节输出特性
关键要素:完整Prompt应包含指令、上下文、输入数据、输出格式等
两种主要的 Prompt 类型
llm-universe 将Prompt分为两类:类型定义作用示例System Prompt持续生效的高级Prompt定义模型人设与工作原则"你是个幽默的知识库助手"User Prompt用户当前的具体指令下达即时任务"我今天的事务安排?"
1.1 两大核心原则
原则一:编写清晰、具体的指令
模糊指令易导致模型偏离预期,清晰指令应包含:
角色设定(通过System Prompt)
任务边界(明确范围)
输出格式(JSON/列表等)
长度或风格约束
指令越模糊,模型越容易出错。 模糊指令 清晰指令"写AI相关内容""用三点向初中生解释AI,每点≤30字""判断情感""判断评论情感,仅输出'正面'或'负面'"
实战技巧
使用分隔符:###、""" 分隔指令与数据
要求结构化输出:指定JSON格式及字段
设定否定条件:明确限制输出内容
原则二:给予模型充足思考时间(思维链 CoT)
复杂任务需让模型展示推理过程:
零样本思维链:Prompt后添加"让我们逐步思考"
少样本思维链:提供完整推理示例供模仿
1.2 Zero-shot、Few-shot模式示例数量适用场景Zero-shot0简单问答One-shot1格式固定任务Few-shot2~5专业领域输出
示例(情感分类):
Zero-shot:"评论:床太硬了。情感:" → 输出"负面"
Few-shot:提供正负面示例后再判断新评论
2. API 调用
2.1 同步调用
特点:阻塞等待完整结果
适用:翻译/摘要等一次性任务
示例代码:
from zai import ZhipuAiClient
client = ZhipuAiClient(api_key=API_KEY)
response = client.chat.completions.create(
model="glm-4-plus",
messages=[{"role": "user", "content": "你好"}],
stream=False
)
print(response.choices[0].message.content)
2.2 流式输出(SSE,异步)
SSE技术实现服务器向客户端实时推送数据:
特点:逐字返回,打字机效果
适用:聊天机器人等实时交互
示例代码:
from zai import ZhipuAiClient
client = ZhipuAiClient(api_key=API_KEY)stream = client.chat.completions.create(
model="glm-4-plus",
messages=[{"role": "user", "content": "讲个故事"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="",flush=True)
3. 关键参数:Temperature温度值行为适用场景0 ~ 0.2确定性输出代码生成0.3 ~ 0.6平衡输出