小餐馆营销自动化实战:Python+本地LLM把单篇文案从3小时压缩到15分钟
开餐馆最头疼的不是做菜,而是想文案。菜单介绍、Instagram 贴文、邮件标题……请人要花钱,自己写又慢。今天分享一套小餐馆营销自动化实战方案:用 Python 脚本 + 本地大模型(LLM),把单篇文案的产出时间从 3 小时压缩到 15 分钟,数据还完全私有。
1. 为什么选本地大模型
很多老板担心把菜单、价格、顾客信息发到网上。本地运行 LLM 就能解决这个痛点:
- 数据不出户:所有信息都在自己电脑或服务器里,不上传云端。
- 风格可控:换一行提示词,就能从“家庭温馨风”变成“文艺探店风”。
- 结构理解强:把配料、价格、烹饪时间做成字典喂给它,能生成准确的菜单描述。
2. 搭一块“提示词模板板”(Prompt Board)
写文案不要每次都从零开始。把常用的要求拆成固定模块,像搭积木一样复用。
一套 Prompt Board 通常包括:
- 人设口吻:例如“ friendly 家庭餐馆老板,说话热情带点幽默”。
- SEO 关键词:例如“ Baltimore vegan brunch ”或“ DC 甜品店”。
- 内容格式:Instagram 贴文、邮件标题、菜单描述。
- 约束条件:字数上限、emoji 数量、结尾行动号召(CTA)。
举个例子,巴尔的摩一家叫 Ramsay’s Pizzeria 的店想推新款花椰菜披萨,提示词可以这样写:
You are a copywriter for Ramsay’s Pizzeria, a family‑friendly spot in Uptown Baltimore known for inventive vegan pies.
Task: Write a 150‑word Instagram caption.
Tone: Playful and slightly poetic.
SEO: Must include “Baltimore vegan pizza” twice.
Emoji: Use up to 3 relevant emojis.
Ending CTA: “Reserve a slice today at ramsays.com”.
只要把餐厅名、城市、关键词抽成变量,就能批量套用。
3. 用 Python 把流程串起来
下面这段脚本使用 llama_cpp 库(用于本地运行 LLaMA 兼容模型)来加载本地大模型,并自动执行上面的提示词。
# 环境准备:pip install llama-cpp-python
import json
from llama_cpp import Llama
# 加载本地大模型(请替换成你自己的模型文件路径)
model = Llama(
model_path="models/claude-3-200k.json", # 指向本地 .bin 或 .q4_0 文件
n_ctx=4096, # 设置上下文窗口大小
temperature=0.7, # 控制生成随机性,越低越保守
top_p=0.9, # 核采样参数
)
def generate_copy(prompt: str, max_tokens: int = 256) -> str:
# 调用模型生成文案
response = model(
prompt=prompt,
max_tokens=max_tokens,
stop=["\n\n"] # 遇到连续两个换行符时停止生成
)
# 提取并返回生成的文本,同时去除首尾空白
return response["choices"][0]["text"].strip()
# 示例数据:餐厅基本信息
restaurant = {
"name": "Ramsay’s Pizzeria",
"location": "Uptown Baltimore",
"vegan_focus": True,
"website": "ramsays.com"
}
# 组装提示词,将变量嵌入模板
prompt = f"""
You are a copywriter for {restaurant['name']}, a family‑friendly spot in {restaurant['location']} known for inventive vegan pies.
Task: Write a 150‑word Instagram caption.
Tone: Playful and slightly poetic.
SEO: Must include “Baltimore vegan pizza” twice.
Emoji: Use up to 3 relevant emojis.
Ending CTA: “Reserve a slice today at {restaurant['website']}”.
"""
# 执行生成并打印结果
caption = generate_copy(prompt)
print("Short Link:", restaurant['website'])
print("Caption:", caption)
代码做了啥?
- 从本地加载模型,保护隐私。
- 用 Python f-string 把餐厅信息动态塞进提示词。
- 模型返回文案后,可以直接接入你的社媒发布系统或内容管理系统(CMS)。
把脚本封装成命令行工具后,跑一趟只要 2 秒钟,一天能批量产出几十条。
4. 让菜单数据自动变“种草”文案
餐厅最值钱的素材就是菜单。别给模型甩一大段文字,而是把菜单拆成结构化数据(名字、配料、价格、烹饪时间),让它自动生成带 SEO 的描述。
# 定义菜单项数据结构
menu_item = {
"name": "Cauliflower Pesto Pizza",
"ingredients": ["Cauliflower crust", "Sun‑dried tomato pesto", "Fresh basil", "Pomodoro", "Vegan mozzarella"],
"prep_time": "18 min",
"price": "$15.99",
"location": "Baltimore"
}
# 使用 f-string 将结构化数据注入提示词
prompt = f"""
Write a 80‑word menu description for a pizza.
Dish: {menu_item['name']}
Ingredients: {', '.join(menu_item['ingredients'])}
Preparation: {menu_item['prep_time']}
Price: {menu_item['price']}
SEO: Include “Baltimore vegan pizza” twice.
Keep tone adventurous.
"""
# 调用生成函数,限制最大 token 数为 120
description = generate_copy(prompt, max_tokens=120)
print(description)
生成效果示例:
“Kick‑start your night with our Cauliflower Pesto Pizza, a crispy cauliflower crust kissed by tangy sun‑dried tomato pesto, fresh basil, and velvety pomodoro. Topped with creamy vegan mozzarella, this culinary adventure pairs perfectly with a glass of house‑made sparkling water. It’s cost‑effective, nutritious, and ready in just 18 min. A must‑try Baltimore vegan pizza for the daring foodie in you.”
可以看到,模型把结构化数据、SEO 关键词和想要的口吻都融合得不错。
5. 微调出你独有的“店味”
想更进一步?可以用自己过去两年的菜单、网站文案和社媒帖子(大约 2000 词)做一遍轻量级微调:
- 收集自家历史文案。
- 用
Transformers库的Trainer接口,在 1 亿参数级别的小模型上微调一层。 - 微调后还是通过
llama_cpp本地部署。
微调后,模型会减少“AI 味”,更懂你的品牌 slang,比如分清“cheesecake”和自家招牌“cheese‑bite”的区别。
6. 实战效果:Ramsay’s Pizzeria 的转化提升
Ramsay’s Pizzeria 落地这套工作流后,数据变化很明显:
- Instagram 平均触达率:从 12% 提升到 27%
- 网站预订点击量:从每天 45 次涨到 78 次
- 单篇内容从写到发:从 3 小时压缩到 15 分钟
预订量上涨,直接归功于文案里高频出现的本地 SEO 关键词(如“Baltimore vegan pizza”)和有力的行动号召。发布周期缩短后,营销团队甚至能根据季节随时换菜单,把淡季也带起来。
7. 迭代最佳实践
想让这套系统越跑越顺,建议做好下面几点:
- 给每批文案打标签:在生成的内容里埋一个模板 ID,方便后续用 Google Analytics 分析哪种 Prompt 的点击率(CTR)更高。
- 建一个 Prompt 日志库:用 SQLite 或 Postgres 记录“用了什么提示词、生成什么内容、曝光和点击是多少”。用数据反哺,逐步优化提示词。
- 动态调整生成参数:如果发现文案开始“发腻”,就调一调
temperature或repetition_penalty,换换口味。 - 保留人工审核环节:再强的模型也可能出错,加一个“编辑+审批”的队列(比如用 SQS 驱动),确保发出的内容万无一失。
8. 总结
这套方案的核心逻辑很简单:把提示词模板化,把输入数据结构化,用 Python 脚本串成流水线。对小餐馆来说,这意味着 copywriting 从“人力瓶颈”变成了可批量复制的自动化环节。
你不需要成为机器学习专家,只要有一台能跑模型的电脑,再加上几十行 Python,就能拥有一个 7×24 小时干活的“AI 文案助理”。
如果你想直接开箱即用,省去自己搭环境的过程,可以看看这个已经搭好的工具:
