Prompt Engineering 实战指南:用 DeepSeek API 写出高质量提示词

Prompt Engineering 实战指南:用 DeepSeek API 写出高质量提示词

从零开始掌握提示词工程核心技巧,结合 DeepSeek API 实战演示,让你的 AI 对话精准高效。

前言

你有没有遇到过这样的情况:给大模型提了一个问题,回答总是"答非所问"或者"泛泛而谈"?

问题往往不在模型,而在提示词(Prompt)

本文将带你从原理到实战,系统掌握 Prompt Engineering 的核心技巧。


一、环境准备:调用 LLM API

1.1 初始化客户端

以 DeepSeek 为例,使用 OpenAI 兼容接口:

python 复制代码
from openai import OpenAI

client = OpenAI(
    api_key="your-api-key",
    base_url="https://api.deepseek.com"
)

DeepSeek、Gemini、Claude 等主流模型都兼容 OpenAI 接口格式,JS 也借鉴了 Python 的模块化引入方式。

1.2 封装调用函数

python 复制代码
def get_completion(prompt, model='deepseek-chat'):
    response = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.5,   # 自由度参数:0 严谨,1 随机性强
        max_tokens=1024     # 问题+回复的 token 数量上限
    )
    return response.choices[0].message.content

关键参数:

参数 说明 取值范围
temperature 控制模型随机性 0(完全确定)~ 1(完全随机)
max_tokens 控制生成最大 token 数 1 ~ 1024,默认 1024

二、Prompt 核心原则

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

目标:让大模型回答符合预期,不偏离主题或出错。

具体一些,为大模型提供完整的说明与背景信息(上下文)

python 复制代码
text = f"""
你应当通过尽可能清晰、具体的指令,来明确你希望模型完成的任务。
这能引导模型产出符合预期的结果,同时降低回复内容偏离主题或出现错误的概率。
不要把编写清晰的提示词和精简提示词混为一谈。
很多时候,篇幅更长的提示词能为模型提供更完整的说明与背景信息,
进而让输出内容更加详实、贴合需求。
"""

prompt = f"""
将三个反引号之间的文本总结为一句话
```{text}```
"""

print(get_completion(prompt))
# 输出:清晰的指令应具体而非精简,长提示词能提供更完整背景,
#       从而提升模型输出的准确性和相关性。

关键认知:清晰的提示词 ≠ 精简的提示词。篇幅更长但信息完整的提示词,效果往往更好。

2.2 原则二:引导模型逐步推理

将复杂任务拆解为多个步骤,让模型按步骤执行。

示例:提取操作步骤

python 复制代码
text_1 = f"""
泡一杯茶其实很简单!首先把水烧开。烧水的同时,拿出茶杯,放入
茶包。水烧开后,将热水冲入杯中浸泡茶包。静置片刻让茶香析出。
几分钟后,根据个人口味,还可以加入糖或牛奶。这样一杯美味的
茶饮就泡好了。
"""

prompt = f"""
你将收到由三引号包裹的文本。若文本中包含一系列操作指令,
请按照下述格式重新整理这些指令。
步骤 一  ...
步骤 二  ...
...
步骤 N ...
如果文本中没有一系列操作指引,直接输出**"没有操作步骤。"**
\"\"\"{text_1}\"\"\"
"""

print(get_completion(prompt))
# 输出:
# 步骤 一 把水烧开。
# 步骤 二 烧水的同时,拿出茶杯,放入茶包。
# 步骤 三 水烧开后,将热水冲入杯中浸泡茶包。
# 步骤 四 静置片刻让茶香析出。
# 步骤 五 根据个人口味,加入糖或牛奶。

无操作步骤的文本也能正确处理:

python 复制代码
text_2 = f"""
今日阳光明媚,鸟儿欢唱。这样的好天气很适合去公园散步。
花儿竞相绽放,树木在微风中轻轻摇曳。
人们纷纷出门,享受这宜人的天气。
"""

prompt = f"""
你将收到由三引号包裹的文本。若内容包含一系列操作指令,请按以下格式重新整理:
第 1 步 - ...
第 2 步 - ...
如果文本中没有相关操作指令,直接输出:未提供步骤。
\"\"\"{text_2}\"\"\"
"""

print(get_completion(prompt))
# 输出:未提供步骤

三、进阶技巧

3.1 指定输出格式

让模型以特定格式(如 JSON)输出,方便后续程序处理:

python 复制代码
prompt = f"""
请列出四大名著,并标注对应的作者与书籍类型。
使用JSON格式呈现,需包含以下字段:
book_id(数据编号)、title(书名)、author(作者)、
desc(简介)、genre(书籍类型)
"""

print(get_completion(prompt))
# 输出 JSON 格式的四大名著数据

3.2 Few-Shot 少量样本提示

通过提供示例,让模型保持统一的风格:

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

print(get_completion(prompt))
# 输出:
# 能弯折千次而不折断的竹,因根须深扎岩缝;
# 能穿越沙漠的旅人,因脚印刻着不灭的星斗;
# 能重燃的灰烬,因火种藏在风干的骨血里。

Few-Shot 利用 LLM 的随机性,通过示例"校准"输出风格,效果显著。

3.3 多任务组合

在一个 Prompt 中要求模型完成多个操作:

python 复制代码
text = f"""
在一座风光宜人的小村庄里,姐弟俩杰克和吉尔动身前往山顶的水井取水。
两人一路欢歌向上攀登,不料意外突生
------ 杰克被石头绊倒,滚下山坡,吉尔也跟着摔了下去。
二人虽受了些轻伤,还是回到了家中,得到家人温柔的安抚。
这场小意外并未磨灭他们冒险的兴致,此后他们依旧满心欢喜地四处游玩。
"""

prompt = f"""
执行以下操作:
1. 将三个反引号内的文本概括为一句话。
2. 把这句摘要翻译成法语。
3. 列出法语摘要中出现的所有人名。
4. 输出JSON对象,包括字段:french_summary、num_names。
5. 答案分行展示。
文本:
```{text}```
"""

print(get_completion(prompt))

输出:

perl 复制代码
杰克和吉尔在取水途中摔倒受伤,但回家得到安抚后仍继续快乐冒险。
Jack et Gil sont tombés et se sont blessés en allant chercher de l'eau,
mais après avoir été réconfortés chez eux, ils ont continué à s'amuser joyeusement.

{"french_summary": "Jack et Gil sont tombés...", "num_names": 2}

四、警惕:LLM 的幻觉问题

大模型会"一本正经地胡说八道",这是使用时必须注意的:

python 复制代码
prompt = f"""
介绍以下李宁品牌的喜多多饮料
"""

print(get_completion(prompt))
# 模型会编造一段看似合理的回答,但实际上李宁从未推出过喜多多饮料

应对策略:对关键信息进行事实核查,不要盲目信任模型输出。


五、实用模板总结

场景 Prompt 模板
文本摘要 将以下文本总结为一句话/N个要点:{text}
格式转换 将以下内容转换为JSON/Markdown/表格格式:{text}
步骤提取 若文本包含操作指令,按步骤格式整理:{text}
风格模仿 保持以下风格作答。示例:{example} 提问:{question}
多任务 执行以下操作:1. ... 2. ... 3. ... 文本:{text}

六、总结

本文涵盖了 Prompt Engineering 的核心要点:

  1. 清晰具体:提供完整上下文,不要吝啬提示词的篇幅
  2. 逐步推理:将复杂任务拆解为多个步骤
  3. 指定格式:用 JSON 等结构化格式方便程序处理
  4. Few-Shot:通过示例校准输出风格
  5. 多任务组合:一个 Prompt 完成多个操作
  6. 警惕幻觉:对模型输出进行事实核查

写好 Prompt 是一门实践的艺术,多写多试,你会找到最适合自己场景的表达方式。


如果本文对你有帮助,欢迎点赞、收藏、评论!有任何问题可以在评论区留言讨论。

标签Prompt Engineering DeepSeek LLM AI 提示词工程 Python

相关推荐
笨鸟先飞,勤能补拙15 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能16 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂17 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
武子康17 小时前
GPT-5.6 Luna 降价 80%:Agent 真正该重算的是单次成功成本
人工智能·chatgpt·llm
Gu Gu Study17 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境18 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境18 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd12318 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy123931021619 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb0019 小时前
一个项目带你入门AI应用开发01
python