大家好,我是链上杯子(掘金:链上杯子)。
失业一年了,天天想着怎么翻身。最近发现每次写提示词都从头拼接,代码重复得烦人。把生成逻辑封装成一个函数后,只要调用 generate_prompt(role, task, style),就能快速出结果。改参数也不用到处找,维护起来轻松不少。函数这东西,用在 AI 提示词上真的很合适。
本课目标:学会定义和调用函数(def),理解参数、返回值的基本用法。通过封装 generate_prompt 函数,实现代码复用,快速生成不同配置的 AI 提示词。
核心代码实战
1. 最简单的函数 —— 无参数、无返回
def say_hello():
print("欢迎使用 AI 提示词生成工具!")
print("今天也要和模型玩得开心~")
# 调用函数
say_hello()
say_hello() # 可以重复调用
我运行后看到:
欢迎使用 AI 提示词生成工具!
今天也要和模型玩得开心~
欢迎使用 AI 提示词生成工具!
今天也要和模型玩得开心~
2. 带参数的函数 —— 生成基本提示词
def generate_prompt(role, task, constraint=""):
prompt = f"你现在是{role}。\n任务:{task}"
if constraint:
prompt += f"\n要求:{constraint}"
prompt += "\n请直接开始输出,不要多余解释。"
return prompt
# 调用并打印
p1 = generate_prompt("专业文案高手", "写5条小红书爆款标题", "风格俏皮可爱,每条不超过30字")
print("提示词1:")
print(p1)
p2 = generate_prompt("冷峻科幻作家", "写一段关于量子纠缠的短故事开头")
print("\n提示词2:")
print(p2)
我运行后看到:
提示词1:
你现在是专业文案高手。
任务:写5条小红书爆款标题
要求:风格俏皮可爱,每条不超过30字
请直接开始输出,不要多余解释。
提示词2:
你现在是冷峻科幻作家。
任务:写一段关于量子纠缠的短故事开头
请直接开始输出,不要多余解释。
3. 更完整的函数 —— 支持可选参数 + few-shot 示例
def generate_prompt(role, task, style="", length=300, examples=None):
prompt = f"你是一个{role}。\n请完成以下任务:{task}。"
if style:
prompt += f"\n风格与语气:{style}。"
prompt += f"\n字数控制在约{length}字。"
if examples:
prompt += "\n参考示例如下:"
for ex in examples:
prompt += f"\n{ex}"
prompt += "\n请一步步思考后直接输出结果。"
return prompt
# 示例调用
few_shot = [
"示例1:输入「失恋」,输出:那场雨下得像眼泪一样多,却洗不掉心里的影子。",
"示例2:输入「重逢」,输出:多年后街角偶遇,你还是老样子,我却忘了怎么打招呼。"
]
p = generate_prompt(
role="情感短文写手",
task="写一段关于「错过的夏天」的治愈短文",
style="温柔细腻,带点淡淡的遗憾",
length=400,
examples=few_shot
)
print("生成的提示词:")
print(p)
我运行后看到(节选):
生成的提示词:
你是一个情感短文写手。
请完成以下任务:写一段关于「错过的夏天」的治愈短文。
风格与语气:温柔细腻,带点淡淡的遗憾。
字数控制在约400字。
参考示例如下:
示例1:输入「失恋」,输出:那场雨下得像眼泪一样多,却洗不掉心里的影子。
示例2:输入「重逢」,输出:多年后街角偶遇,你还是老样子,我却忘了怎么打招呼。
请一步步思考后直接输出结果。
小练习(2 道)
练习1(基础)
定义一个函数 print_welcome(name),参数是用户的名字,函数里打印“欢迎 [name] 进入 AI 提示词世界!”
调用两次,分别传入不同名字,看输出。
练习2(进阶)
扩展 generate_prompt 函数,增加一个参数 format_type(可选:"markdown" 或 "纯文本")。
如果传入 "markdown",在提示词末尾加“请使用 Markdown 格式输出,包括标题、加粗和列表”。
测试不同参数组合,生成 2–3 个提示词并打印。建议复制其中一个到大模型实际试效果。
本课小结
本课介绍了函数的定义(def)、参数、return 返回值。
通过封装 generate_prompt,代码从重复拼接变成一次定义、多次调用,适合不同角色/任务/风格的提示词生成场景,为后续高级函数和模块化打基础。
下节预告
下一课:高级函数 + lambda —— 批量处理提示词、简单函数式编程。
欢迎在评论区贴出练习代码或生成的提示词,有问题可以留言。