目录
- [LLM 两大核心接口体系](#LLM 两大核心接口体系)
- [Prompt 四大核心设计原则(工程规范)](#Prompt 四大核心设计原则(工程规范))
- [LLM 常见问题:模型幻觉](#LLM 常见问题:模型幻觉)
- [LLM 核心超参详解(控制模型性格)](#LLM 核心超参详解(控制模型性格))
- [企业级 LLM 接口函数封装](#企业级 LLM 接口函数封装)
- [f-string 模版:Prompt 工程必备字符串语法](#f-string 模版:Prompt 工程必备字符串语法)
- [全套实战 Prompt 案例](#全套实战 Prompt 案例)
- 全文总结
- 核心知识点复盘
- [常见问题 & 避坑指南](#常见问题 & 避坑指南)
很多人认为大模型"聪明、自适应",实际开发中却频繁遇到:答非所问、格式乱、随机性强、编造内容、无法结构化输出。不是模型不行,是 Prompt 不规范、接口不会调、参数不会控。
本文从零讲清 Prompt 设计底层原则、LLM 两大核心接口、参数调优、f-string 模版用法、幻觉成因与规避,附带企业级可复用代码与全套实战案例,适合用于项目开发与技术分享。
LLM 两大核心接口体系
Completion 文本续写接口
早期大模型核心接口,主打「文本续写、文本生成、单次 Prompt 输出」。输入一段文字,模型自动向后续写,适合简单生成、文案创作场景。
特点:无角色概念、无多轮上下文、结构简单、功能单一。
Chat 对话接口(现代主流)
目前所有商业大模型(DeepSeek、GPT、Claude)的主力接口,也是我们开发中100%优先使用的接口。
核心设计:角色机制 + 多轮会话
- user:用户提问、输入指令
- assistant:AI 模型返回的回答
通过 messages 数组顺序拼接多轮对话,实现上下文记忆、连续聊天、任务接续。
Prompt 四大核心设计原则(工程规范)
Prompt 不是随便写一句话,而是给模型的一套可执行代码。规范 Prompt 可以彻底解决模型随机性、胡说八道、输出混乱问题。
指令清晰、具体、完整(最重要 )
模糊指令 = 随机输出。不要简写、不要缺上下文、不要省略约束。
模型不会"猜你的想法",只会根据你给出的信息概率生成文本。信息越少,随机性越高。
优质 Prompt 必须包含:任务目标 + 背景信息 + 约束条件 + 输出要求。
引导模型分步推理
复杂任务(总结、翻译、解题、分析)必须要求模型"一步步思考",能大幅降低幻觉、提升准确率。
强制固定输出格式
业务开发必须固定输出格式:JSON、列表、步骤、表格。否则程序无法解析模型返回内容。
提供样本示例(Few-Shots )
少量示例可以统一模型文风、句式、回答结构,解决每次回答风格不一样的问题。
LLM 常见问题:模型幻觉
什么是 LLM 幻觉?
大模型基于概率预测生成文字,不是基于事实检索。遇到小众知识、不存在内容、模糊提问,会编造看似通顺、实则错误的内容,这就是幻觉。
幻觉高发场景
- 查询小众品牌、冷门人物、不存在的资料
- Prompt 缺少背景信息、描述模糊
- 要求模型强行输出结果
幻觉规避方案
- 补充详细背景文本
- 限制模型:不知道就说不知道,禁止编造
- 给出参考资料,让模型基于资料回答
LLM 核心超参详解(控制模型性格)
temperature 随机性参数
取值范围:0 ~ 1
- 0:完全严谨、无随机、答案固定(代码、问答、检索)
- 0.5:均衡稳定(日常业务通用)
- 1:极度随机、创意、发散(写诗、文案)
max_tokens 最大输出长度
控制提问+回答总 Token 上限,防止内容截断、超长刷屏。常规业务设置 1024 / 2048。
企业级 LLM 接口函数封装
借鉴 ES6 默认参数思想,封装高复用、高灵活度的通用请求函数,适配 DeepSeek / GPT 所有对话场景。
(在 .ipynb 文件上执行)
python
# 导入 OpenAI 兼容 SDK
from openai import OpenAI
# 初始化客户端
client = OpenAI(
api_key="你的密钥",
base_url="https://api.deepseek.com/v1"
)
# ES6 默认参数思想:让函数更灵活
def get_completion(prompt, model = 'deepseek-chat'):
"""
大模型通用对话请求函数
:param prompt: 用户提示词
:param model: 模型名称,默认 deepseek-chat
:return: 模型纯文本回答
"""
response = client.chat.completions.create(
model = model,
# 角色消息队列:支持多轮对话
messages = [
{"role": "user", "content": prompt}
],
temperature = 0.5, # 平衡严谨与创意
max_tokens = 1024 # 控制输出长度
)
# 固定解析返回内容
return response.choices[0].message.content
# 简单测试
print(get_completion("写一首夏天游玩的七言诗"))
运行结果(每次运行都不相同):
f-string 模版:Prompt 工程必备字符串语法
f-string 支持多行文本 + 变量嵌套,是 Prompt 工程的标准写法,相当于前端模版字符串 ${}。
语法:f""" 你的语句(支持换行)"""
优势:结构清晰、可读性强、方便拼接大段提示词。
全套实战 Prompt 案例
下面的 prompt 都附带执行结果
文本总结 Prompt
python
text = """
你应当通过尽可能清晰、具体的指令,来明确你希望模型完成的任务。
这能引导模型产出符合预期的结果,同时降低回复内容偏离主题或出现错误的概率。
不要把编写清晰的提示词和精简提示词混为一谈。
很多时候,篇幅更长的提示词能为模型提供更完整的说明与背景信息,进而让输出内容更加详实、贴合需求。
"""
prompt = f"""
将三个反引号之间的文本总结为一句话
```{text}```
"""
print(get_completion(prompt))

结构化 JSON 输出
python
prompt = f"""
请列出四大名著,并标注对应的作者与书籍类型。
使用json格式呈现,需包含一下字段:book_id(书籍编号)、title(书名)、author(作者)、desc(简介)、gender(书籍类型)
"""
print(get_completion(prompt))

文本步骤拆解(条件判断)
python
text = """
泡一杯茶其实很简单!首先把水烧开。烧水的同时,拿出茶杯,放入茶包。
水烧开后将热水冲入茶包,静置片刻后,让茶香析出,几分钟后根据个人口味
,还可以加入糖或牛奶,这样一杯美味的茶饮就泡好了。
"""
prompt =f"""
你将收到由三引号包裹的文本,若文本中包含一系列操作指令,
请按照格式重新整理这些指令
步骤一 ...
步骤二 ...
...
步骤n ...
如果文本中没有一系列操作指令,直接输出**"没有提供步骤。"**
\"\"\" {text} \"\"\"
"""
print(get_completion(prompt))

Few-Shots 风格统一
python
prompt=f"""
你的任务是保持统一的行文风格作答。
提问:请讲讲何为耐心。
回答:能凿出幽深峡谷的江河,源自涓涓细流;
恢弘壮阔的交响乐起于单个音符;
精美繁复的织锦始于一缕丝绒。
请问:请讲讲何为韧性。
"""
print(get_completion(prompt))

多任务分步推理
python
text = """
在一座风光宜人的小村庄里,姐弟俩杰克和吉尔动身前往山顶的水井取水。
两人一路欢歌向上攀登,不料意外突生
------ 杰克被石头绊倒,滚下山坡,吉尔也跟着摔了下去。
二人虽受了些轻伤,还是回到了家中,得到家人温柔的安抚。
这场小意外并未磨灭他们冒险的兴致,此后他们依旧满心欢喜地四处游玩。
"""
prompt = f"""
请执行以下操作:
1.将三个反引号内的文本概括为一句话
2.把这句摘要翻译成法语
3.列出法语摘要中出现的所有人名
4.输出JSON对象,包含字段:french_summary、num_names
文本:
```{text}```
"""
print(get_completion(prompt))

幻觉测试案例
python
# 不存在的小众品牌,极易触发幻觉
prompt = f"""
介绍一下博依品牌的喜多多饮料
"""
print(get_completion(prompt))
全文总结
本篇我们掌握了Prompt 工程体系 + LLM 接口开发,从模型原理、参数调优、提示词规范、企业级封装、实战场景全覆盖。
Prompt 工程的本质:用精准、完整、结构化的语言,约束大模型的概率生成行为,让 AI 从"随机说话"变成"按需求精准交付"。
核心知识点复盘
- LLM 分为 Completion 续写接口、Chat 对话接口,开发优先使用 Chat 接口
- Chat 接口依靠 user / assistant 角色实现多轮上下文对话
- Prompt 四大原则:具体指令、分步推理、固定格式、样本参考
- temperature 控制随机性,0 严谨、1 创意
- max_tokens 控制输出长度,防止截断丢失内容
- f-string 是 Prompt 工程标准模版写法
- 大模型幻觉源于概率生成,可通过约束与背景资料规避
常见问题 & 避坑指南
- 回答不稳定、每次不一样:降低 temperature、增加 Few-Shots 样本
- 无法用于代码解析:Prompt 必须强制指定 JSON/固定格式
- 模型乱编内容:缺少背景资料、提问过于宽泛
- 内容截断不完整:max_tokens 设置过小
- 多轮对话错乱:messages 必须严格 user/assistant 交替
- Prompt 越短越差:完整信息 > 简短精简