展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 编程开发 > LLM API 调用与 Prompt 工程基础指南

LLM API 调用与 Prompt 工程基础指南

有效使用大语言模型需掌握API调用与提示词设计。提示词应清晰具体,善用分隔符与结构化输出,并可通过思维链提升复杂任务准确性。API调用分为同步与流式两种方式,后者能实现逐字输出的实时交互。温度参数控制模型输出的随机性与创造性,需根据任务类型调整。

大语言模型的能力确实强大,但要让它们真正为你所用,关键在于两件事:一是通过API建立连接,二是用合适的提示词(Prompt)进行沟通。这篇文章,我们就来把这两件事彻底讲清楚,让你能立刻上手实践。

LLM API 调用与 Prompt 工程基础指南

无论你是刚入门的新手,还是希望优化工作流的开发者,接下来的内容都将围绕几个核心问题展开:如何设计高质量的提示词?如何调整关键参数来控制模型行为?以及如何用代码实现同步和异步调用?准备好了吗?我们开始。

1. Prompt 设计:让模型听懂你的话

简单来说,你发给大模型的所有输入,都叫提示词(Prompt),而模型返回的结果,则被称为完成内容(Completion)。想让模型输出你想要的答案,就得学会如何“下指令”。这背后有几个核心原则和关键要素。

一个高质量的提示词,通常需要遵循几个原则:指令要清晰明确,背景信息要充分必要,表达要简洁扼要。同时,善用分隔符来结构化你的指令,并主动要求模型以特定格式(如JSON)输出,能极大提升沟通效率。

在具体实践中,提示词主要分为两大类,它们扮演着不同的角色:

类型 定义 作用 示例
System Prompt 在整个会话中持续生效的“高级”Prompt 全局设定与角色扮演。用于定义模型的人设、风格或工作原则,通常会持久影响后续所有对话。 "你是一个幽默风趣的个人知识库助手"
User Prompt 用户当前提出的具体问题或指令 下达当前任务。这是最常见的Prompt,需要模型立即做出响应。 "我今天有什么事务?"

1.1 两大核心原则

原则一:编写清晰、具体的指令

模型不会读心术。模糊的指令只会让它猜测你的意图,结果往往南辕北辙。清晰的指令至少要包含以下要素中的一个:明确的角色设定(通过System Prompt)、清晰的任务边界(做什么、不做什么)、指定的输出格式(JSON、列表等),或者对长度和风格的约束。

看看下面的对比,感受一下差别:

模糊指令 清晰指令
“写点关于AI的东西” “请用三个要点向初中生解释人工智能,每点不超过30字。”
“判断情感” “判断下面评论的情感是正面还是负面,只输出一个词。”

这里有几个实战技巧:

  • 使用分隔符:用 ###"""--- 将指令和输入数据明确分开,帮助模型准确识别。
  • 要求结构化输出:直接告诉模型你想要的格式,比如 “请以 JSON 格式输出,包含以下键:name, age, city”
  • 设定否定条件:明确告诉模型不要做什么,例如 “不要添加任何额外的解释,只输出数字答案。”

原则二:给予模型充足思考时间(思维链 CoT)

对于数学、逻辑推理或多步骤任务,直接让模型给出最终答案,出错率往往很高。诀窍在于强制模型先展示它的推理过程,这能显著提升答案的准确性。

具体怎么做呢?有两种主流方法:

  • 零样本思维链:直接在Prompt后面加上一句“让我们一步一步思考。”,引导模型自行推导。
  • 少样本思维链:先给模型提供一个完整的“推理过程 → 答案”示例,让它模仿这种思考模式。

1.2 Zero-shot、Few-shot

根据你提供的示例数量,提示词工程可以分为几种模式:

模式 示例数量 适用场景
Zero-shot 0 简单问答、分类
One-shot 1 格式单一的任务
Few-shot 2~5 格式化输出、专业领域

举个例子,对于情感分类任务:

  • Zero-shot:直接问 “评论:床太硬了。情感:”,模型需要自己理解任务并输出“负面”。
  • Few-shot:先提供两个例子 “外卖很快 → 正面;服务差 → 负面”,再让它判断新评论,模型就能更快地掌握规则。

2. API 调用

2.1 同步调用

这是最直观的调用方式。程序发出请求后会一直等待,直到模型生成完整的回复后才继续执行。这种方式简单直接,适用于翻译、摘要、一次性内容生成等不需要实时交互的场景。

下面是一个使用智谱AI SDK进行同步调用的基础代码示例:

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,异步)

如果你用过ChatGPT的网页版,对那种逐字出现的“打字机效果”一定不陌生。这背后就是Server-Sent Events (SSE) 技术在支撑。开启流式输出后,模型不会等所有内容都生成完再一次性返回,而是边生成边推送,实现了极低的首字延迟和实时交互感。

  • 特点:逐字返回,体验流畅,非常适合需要即时反馈的场景。
  • 适用:聊天机器人、需要实时显示生成过程的任何应用。

实现流式调用的代码也很简单,关键在于将 stream 参数设为 True,然后遍历返回的数据块:

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

如果说Prompt是给模型下的“指令”,那么temperature(温度)参数就是控制模型“想象力”的旋钮。这个值通常在0到1之间,它直接影响输出内容的随机性和创造性。

温度值 行为 适用场景
0 ~ 0.2 确定性、保守 代码生成、数学计算
0.3 ~ 0.6 平衡 摘要、翻译
0.7 ~ 0.9 创意、多样 故事写作、头脑风暴

简单来说,温度越低,模型越保守、可预测;温度越高,模型越天马行空、富有创意。在API调用中,你可以这样设置它:

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "写一首关于月亮的诗"}],
    temperature=0.9  # 高温度增加新颖性
)

4. 智谱 AI 新版 SDK 快速上手

4.1 Conda 环境配置

首先,我们创建一个独立的Python环境来管理依赖,避免版本冲突。使用Conda可以很方便地做到这一点:

conda create -n llm-universe python=3.10 -y
conda activate llm-universe
pip install zai-sdk
conda env config vars set ZAI_API_KEY="your-api-key"
conda activate llm-universe   # 重新激活使变量生效

4.2 同步调用示例

环境配置好后,一个基础的同步调用脚本如下。这里使用了python-dotenv来从.env文件安全地加载API密钥。

from zai import ZhipuAiClient
import os
from dotenv import load_dotenvload_dotenv()client = ZhipuAiClient(api_key=os.getenv("ZAI_API_KEY"))
resp = client.chat.completions.create(
    model="glm-4.7",
    messages=[{"role": "user", "content": "你好"}]
)
print(resp.choices[0].message.content)

4.3 流式调用示例

流式调用的代码结构与同步调用类似,区别在于开启了stream=True,并且需要循环处理返回的数据流。

import os
from zai import ZhipuAiClient
from dotenv import load_dotenvload_dotenv()  # 加载环境变量
client = ZhipuAiClient(api_key=os.getenv("ZHIPU_API_KEY"))  # 从环境变量中获取 API Keystream = 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="")

5. 完整脚本:同步/异步 + Prompt 控制,指导模型行为

理论讲完了,是时候动手实践了。下面这个脚本将前面提到的知识点整合在一起,包含了同步和流式两种调用方式,并且展示了如何通过System Prompt和Temperature参数来精确指导模型的行为。你可以直接复制运行,作为你的开发起点。

import os
from zai import ZhipuAiClient
from dotenv import load_dotenvload_dotenv()# ==================== 配置区 ====================
# 建议使用环境变量设置 API_KEY
API_KEY = os.getenv("ZHIPU_API_KEY")  
MODEL_NAME = "glm-4.5"  # 可选:glm-5.1 等# ==================== 1. 同步调用 ====================
def sync_chat(prompt: str, system_prompt: str = None, temperature: float = 0.7):
    """
    同步调用智谱大模型 API
    :param prompt: 用户输入的提示词(必填)
    :param system_prompt: 系统角色设定(可选,用于指导模型行为)
    :param temperature: 温度参数,控制随机性(范围0-1,默认0.95,建议0.3-0.9)
    :return: 模型返回的文本
    """
    client = ZhipuAiClient(api_key=API_KEY)
    
    messages = []
    if system_prompt:
        messages.append({"role": "system", "content": system_prompt})
    messages.append({"role": "user", "content": prompt})
    
    response = client.chat.completions.create(
        model=MODEL_NAME,
        messages=messages,
        temperature=temperature,
        max_tokens=500,      # 限制最大输出长度
        stream=False,        # 同步非流式
    )
    return response.choices[0].message.content# ==================== 2. 流式输出(SSE)====================
def stream_chat(prompt: str, system_prompt: str = None, temperature: float = 0.7):
    """
    流式调用(SSE),逐字输出模型回复
    """
    client = ZhipuAiClient(api_key=API_KEY)
    
    messages = []
    if system_prompt:
        messages.append({"role": "system", "content": system_prompt})
    messages.append({"role": "user", "content": prompt})
    
    response = client.chat.completions.create(
        model=MODEL_NAME,
        messages=messages,
        temperature=temperature,
        max_tokens=500,
        stream=True,  # 开启流式输出
    )
    
    print("模型回复:", end="", flush=True)
    for chunk in response:
        if chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content, end="", flush=True)
    print()  # 换行
# ==================== 使用示例 ====================
# __name__ == "__main__" 这一行的意思是:当这个 Python 文件被直接运行时,下面的代码块会被执行;如果这个文件被作为模块导入到其他文件中,下面的代码块则不会被执行。这是一种常见的 Python 编程习惯,用于区分直接运行和导入两种情况。
if __name__ == "__main__":
    
    # ----- 1. 同步调用示例 -----
    print("=== 同步调用示例 ===")
    result1 = sync_chat(
        prompt="请介绍一下人工智能", 
        system_prompt="你是一位严谨的计算机科学教授,回答必须准确、简洁。",
        temperature=0.3
    )
    print(result1)
    print()
    
    # ----- 2. 流式输出示例(SSE)-----
    print("=== 流式输出示例(SSE)===")
    stream_chat(
        prompt="讲一个关于月亮的简短童话故事",
        system_prompt="你是一个富有想象力的童话故事作家",
        temperature=0.8
    )

6. 自测清单

看到这里,核心知识已经过了一遍。不妨对照下面这个清单,看看自己掌握了多少:

  • 我能说出 Prompt 设计的两大核心原则,并给出示例。
  • 我知道 Zero-shot、Few-shot、思维链的区别与用法。
  • 我能写出同步、流式、异步三种调用方式的代码。
  • 我理解温度参数的作用,并能根据场景调整。
  • 我能在 Conda 中配置智谱 AI 新版 SDK 环境。
  • 我遇到过 404 错误并知道原因(异步接口权限问题)及替代方案。

如果以上大部分你都能自信回答,那么恭喜,你已经掌握了与大语言模型高效协作的基础法门。剩下的,就是在实际项目中不断练习和优化了。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发 Pro
相关文章 更多
精品专题 更多
本月促销

正软商城本月促销专区,汇集办公、设计、安全、影音、系统工具及AI软件等正版软件优惠活动,提供限时折扣、特价授权和优惠购买信息,活动库存及价格以页面实时展示为准。

装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Menuist
Menuist

Menuist 是一款面向 macOS 的 Finder 右键菜单增强工具,主要用来补充新建文件、快捷导航等常用操作,让日常文件管理和访问路径时更高效、更顺手。

Mole
Mole

Mole 是一款专为 Mac 设计的深度清理优化工具,涵盖缓存清理、应用管理及实时状态监控等功能。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

WINDOWS 更多
Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

PinStack
PinStack

PinStack是一款轻量级的Windows平台剪贴板管理工具,优化您的剪贴板使用体验。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Seer
Seer

Seer是一款在Win平台下的空格键功能增强效率工具,只需轻敲空格键,就能预览几乎任何格式的文件。它更适合把零散的小功能集中起来使用,处理高频琐碎任务时会更省事。