Prompt 就像点外卖:写清楚"备注",AI 才能给你送对"菜

🔥 从 Python 字典到 LLM Prompt:我的"打怪升级"笔记

用真实代码带你"躺赢" Prompt 工程,顺便搞懂 Python 数据结构!


📋 目录

  1. [先从 Python 字典开始](#先从 Python 字典开始 "#%E5%85%88%E4%BB%8E-python-%E5%AD%97%E5%85%B8%E5%BC%80%E5%A7%8B")
  2. [快速上手 LLM API](#快速上手 LLM API "#%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B-llm-api")
  3. [Prompt 设计实战:6 个真实"骚操作"](#Prompt 设计实战:6 个真实"骚操作" "#prompt-%E8%AE%BE%E8%AE%A1%E5%AE%9E%E6%88%98")
  4. 总结与心得

📚 先从 Python 字典开始

在学 Prompt 之前,先撸一遍 Python 数据结构,你会发现它们和 Prompt 设计简直是"失散多年的亲兄弟"!

字典 Dict:快到飞起的查找

python 复制代码
# 来自 未命名2.ipynb
d = {'Michale':95,'bob':75,'tracy': 85}
d['bob']  # 直接找到,不用从第一个人开始点名

原理:字典用哈希表(Hash Table),通过 key 直接算出 value 住在哪,就像查字典翻索引页一样,谁还会从第一页开始找"张三"啊!

添加和查找元素(带"保险"的那种)

python 复制代码
# 来自 未命名2.ipynb
d['Adam'] = 67    # 新人报到
d['Thomas'] = 99  # 插班生也来了
d['Thomas']       # 喊名字立马答应

# 万一有人没来怎么办?
print(d.get('Thomas'))        # 没人?→ None(不报错!)
print(d.get('Thomas', -1))    # 没人?→ 给你个 -1(自定义备胎值)
print(d.get('bob', -1))       # 有人?→ 75(正常返回)

Set 集合:专治"重复症"

python 复制代码
# 来自 未命名2.ipynb
s = {1, 2, 3}
s = set([1, 2, 3, 1, 5])  # 自动去重 → {1, 2, 3, 5}(1 重复了两次直接被踢)

s.add(4)     # 加个新人
s.remove(4)  # 看你不爽,踢了

# 搞点社交
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1 & s2  # 共同好友(交集)→ {2, 3}
s1 | s2  # 朋友圈大合影(并集)→ {1, 2, 3, 4}

🚀 快速上手 LLM API

让我们看一下 未命名3.ipynb 里的"真香"代码!

初始化 OpenAI 客户端(就像加个微信)

python 复制代码
# 来自 未命名3.ipynb
from openai import OpenAI

client = OpenAI(
    api_key="sk-你的密钥别硬编码",  # 建议用环境变量,别把密码贴代码里
    base_url="https://api.deepseek.com"
)

封装调用函数(一键使唤 AI)

python 复制代码
# 来自 未命名3.ipynb
def get_completion(prompt, model='deepseek-chat'):
    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        temperature=0.5,   # 0 是"老干部",2 是"诗人"(越大约放飞自我)
        max_tokens=1024    # 控制 AI 话痨程度
    )
    return response.choices[0].message.content

# 测试一下:让 AI 写首诗
get_completion("写一首冬天游玩的七言诗")

AI 输出

erlang 复制代码
《冬游》
寒云凝雪覆千峰,策杖寻幽兴未穷。
冰瀑垂帘悬玉练,霜枝缀玉舞琼风。
踏痕印石苔痕冷,鸟迹藏踪兽迹空。
忽见山家烟起处,一壶浊酒暖炉红。

赏析:这首作品以冬日游山为背景...

写的确实不赖


💡 Prompt 设计实战:6 个真实"骚操作"

案例 1:文本总结(把长文"压缩成薯片")

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

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

print(get_completion(prompt))

输出

复制代码
清晰的指令应具体而非精简,更长的提示词能提供更完整的背景信息,从而引导模型产出更贴合需求的输出。

案例 2:JSON 格式输出(让 AI 乖乖填表)

python 复制代码
# 来自 未命名3.ipynb
prompt = f"""
请列出四大名著,并标出对应的作者与书籍类型。
使用JSON格式呈现,需包含一下字段,book_id(书籍编号),title(书名),author(作者),desc(简介),
genre(书籍内容)
"""

print(get_completion(prompt))

输出(AI 乖乖填表中):

json 复制代码
[
  {
    "book_id": 1,
    "title": "三国演义",
    "author": "罗贯中",
    "desc": "描写了从东汉末年到西晋初年之间近百年的历史风云...",
    "genre": "历史演义小说"
  },
  ...
]

案例 3:步骤提取(把"流水账"变成"说明书")

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

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

{text}

scss 复制代码
"""

print(get_completion(prompt))

输出(秒变"泡茶大师"):

复制代码
步骤 一 把水烧开。  
步骤 二 烧水的同时,拿出茶杯,放入茶包。  
步骤 三 水烧开后,将热水冲入杯中浸泡茶包。  
步骤 四 静置片刻让茶香析出。  
步骤 五 几分钟后,根据个人口味,加入糖或牛奶。

案例 4:没有步骤时的处理(AI 也会"打太极")

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

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

{text_2}

scss 复制代码
"""

print(get_completion(prompt))

输出

复制代码
未提供步骤

案例 5:风格保持(给 AI"定人设")

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

print(get_completion(prompt))

输出(AI 秒变"哲学家"):

复制代码
能擎起整座穹顶的竹,先要弯下腰身;
能劈开顽石的滴水,须得日夜不歇;
能渡尽千帆的锚链,必在浪中锻打。

案例 6:引导模型逐步推理(让 AI"写过程不直接给答案")

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

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

{text}

scss 复制代码
"""

print(get_completion(prompt))

输出(AI 一步步来,不偷懒):

json 复制代码
{
  "french_summary": "Dans un charmant petit village...",
  "num_names": 2
}

⚠️ 注意:LLM 的"幻觉"(AI 也会"吹牛")

python 复制代码
# 来自 未命名3.ipynb
prompt = f"""
介绍一下李宇刚品牌的喜多多饮料
"""

print(get_completion(prompt))

输出(AI 开始一本正经地胡说八道):

erlang 复制代码
你好!关于你提到的"博一品牌"的"喜多多饮料",我需要先帮你澄清一下...

注意:LLM 可能会编造不存在的东西!就像你问它"如何制造时光机",它也能给你编出一堆步骤,所以重要信息要自己验证哦!


🎯 总结与心得

Python 数据结构教会我的"人生哲理"

数据结构 特点 Prompt 设计启示
Dict 通过 key 直接定位 Prompt 要具体、清晰,别让 AI"猜谜语"
List 要顺序查找(慢) 模糊的 Prompt 效率低,AI 要"瞎蒙"半天
Set 自动去重 Prompt 要避免说废话,一句话能说清别绕三圈

Prompt 设计"三字经"(来自 readme.md

  1. 写清楚 - 别让 AI 猜,不然它会给你"惊喜"
  2. 分步走 - 让 AI 一步步思考,不容易出错
  3. 用模板 - f-string 太香了,可复用还易维护

核心"小抄"

  • 三引号包裹 - 把内容和指令分清楚,就像外卖备注和菜品分开
  • 指定输出格式 - JSON、列表、步骤...想要什么格式直接说
  • 温度参数 - 0 是"严谨老教授",2 是"文艺青年",按需取用
  • 少样本学习 - 给几个例子,AI 一看就懂

相关推荐
黄敬峰1 小时前
从 Python 模块化到提示词工程:构建高效的 LLM 交互流程
程序员
阿里嘎多学长6 小时前
2026-05-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
七牛开发者21 小时前
如何从零开发一个工业级的 SKILL
人工智能·程序员·agent
CSDN不脱发的程序猿1 天前
如何让Skill同时跑在Cursor、Codex和Claude Code 里?
程序员
多租户观察室1 天前
信通院标准体系2.0深度解读:低代码管理平台进入“精品竞争”时代
前端·低代码·程序员
修己xj2 天前
一个西瓜背后的思考:当爹后才明白的事
程序员
程序员cxuan2 天前
还在用 xigh 拉满跑?大错特错
人工智能·后端·程序员
阿里嘎多学长2 天前
2026-05-28 GitHub 热点项目精选
开发语言·程序员·github·代码托管
TigerOne2 天前
第9章 工具调用循环——Agent的行动闭环
人工智能·程序员