# yao-open-prompts

> 来源：[GitHub](https://github.com/yaojingang/yao-open-prompts) · ⭐ 1115 stars

```markdown
# Yao Open Prompts：中文 AI 提示词工程的开源实践

## 项目简介

在 ChatGPT、Claude 等大语言模型席卷全球的浪潮中，一个被严重低估的环节是**提示词工程（Prompt Engineering）**。同样的模型，不同的提示词可能产出天壤之别的结果。然而中文互联网长期面临优质提示词分散、英文模板水土不服、场景覆盖不全的痛点。`yao-open-prompts` 项目正是瞄准这一缺口，由开发者 `yaojingang` 发起维护，目前已积累 1115 Star，成为中文社区颇具影响力的开源提示词库。

该项目的核心价值在于**"场景化"与"可工程化"**的双重突破。不同于网络上零散的"万能提示词"搬运，yao-open-prompts 将提示词按工作、学习、内容创作、营销运营、日常生活五大维度系统化组织，并以 Python 项目形式提供可编程接口。这意味着开发者不仅能"复制粘贴"，更能将提示词管理纳入 CI/CD 流程，实现团队协作中的版本控制、动态加载与效果追踪。

## 核心特性

- **五维场景全覆盖**：工作（简历优化、会议总结、代码审查）、学习（论文研读、概念解释、考试复习）、内容（短视频脚本、小红书文案、技术博客）、营销（SEO 优化、用户画像、竞品分析）、生活（旅行规划、菜谱推荐、健身计划）——每个场景均经过中文语境适配

- **结构化提示词模板**：采用 "角色-背景-任务-约束-输出格式" 的标准化设计，降低模型理解偏差。例如营销类提示词明确指定目标平台算法特征，避免"放之四海皆不准"

- **Python 原生工程化支持**：提供 `PromptLoader` 类实现动态加载，支持按标签筛选、变量注入、A/B 测试对比，可直接嵌入 Flask/FastAPI 后端或数据处理流水线

- **社区驱动持续迭代**：通过 GitHub Issues 收集真实使用反馈，提示词版本跟随模型能力演进（如针对 GPT-4 Turbo 长上下文优化多轮对话模板）

- **轻量化零依赖**：核心模块仅依赖 Python 标准库，单文件即可运行，降低接入门槛

## 技术实现

从源码架构看，yao-open-prompts 的设计体现了**"数据驱动"优于"代码驱动"**的工程哲学。项目并未将提示词硬编码为 Python 字符串，而是采用 YAML/JSON 作为存储介质，通过 `src/prompts/` 下的层级目录实现逻辑分类：

```
src/prompts/
├── work/
│   ├── resume_optimization.yaml
│   └── meeting_minutes.yaml
├── content/
│   ├── xiaohongshu.yaml      # 小红书风格适配
│   └── zhihu_answer.yaml     # 知乎体特征
└── _base/
    └── meta_schema.json      # 提示词元数据校验
```

这种设计的技术深意在于**解耦提示词内容与执行引擎**。YAML 文件中的每个提示词遵循统一 Schema：

```yaml
id: content.xiaohongshu.v2
version: "2.1.0"
model_compat: ["gpt-4", "gpt-3.5-turbo", "claude-3"]
variables:
  - product: {required: true, type: str, desc: "产品名称"}
  - tone: {required: false, default: "活泼", enum: ["活泼", "专业", "治愈"]}
template: |
  你是一位小红书 {tone} 风格博主，粉丝画像为18-30岁一二线城市女性。
  请为【{product}】撰写一篇种草笔记，要求：
  1. 标题含emoji，前10字出现核心卖点
  2. 正文分3段，每段不超过100字
  3. 结尾引导互动，使用"姐妹们冲"等社群用语
```

`PromptLoader` 类的实现则展现了 Python 元编程的巧思。通过 `__init__.py` 中的动态导入机制，项目支持运行时按标签过滤与模板渲染：

```python
# 核心加载逻辑简析
import yaml
from string import Template
from pathlib import Path

class PromptLoader:
    def __init__(self, prompts_dir: str = "src/prompts"):
        self._registry = {}
        self._scan(Path(prompts_dir))
    
    def _scan(self, path: Path):
        # 递归注册所有 YAML 提示词
        for file in path.rglob("*.yaml"):
            data = yaml.safe_load(file.read_text())
            self._registry[data["id"]] = data
    
    def render(self, prompt_id: str, **kwargs) -> str:
        raw = self._registry[prompt_id]["template"]
        # 预校验变量完整性
        required = {v for v, meta in self._registry[prompt_id]["variables"].items() 
                   if meta.get("required")}
        missing = required - set(kwargs.keys())
        if missing:
            raise ValueError(f"缺失必需变量: {missing}")
        return Template(raw).safe_substitute(kwargs)
```

值得关注的是 `model_compat` 字段的设计——这是提示词工程从" artisanal craft（手工作坊）"走向" software engineering（软件工程）"的关键标志。不同模型的上下文窗口、指令遵循能力、中文语料占比差异显著，显式标注兼容性可避免生产环境的隐性故障。

## 快速上手

安装与基础使用极为简洁：

```python
# 克隆仓库后直接使用
from yao_open_prompts import PromptLoader

loader = PromptLoader()

# 加载并渲染小红书文案提示词
prompt = loader.render(
    "content.xiaohongshu.v2",
    product="降噪蓝牙耳机",
    tone="专业"
)
print(prompt)

# 直接送入 OpenAI API
import openai
response = openai.ChatCompletion.create(
    model="gpt-4",
    messages=[{"role": "user", "content": prompt}]
)
```

进阶场景：批量 A/B 测试不同提示词版本的效果：

```python
from itertools import product

# 对比两种语气 × 两种结构变体的效果
variants = product(["活泼", "专业"], ["v2", "v3-beta"])
results = []
for tone, version in variants:
    pid = f"content.xiaohongshu.{version}"
    prompt = loader.render(pid, product="降噪蓝牙耳机", tone=tone)
    # 调用模型并记录评分...
```

## 应用场景

**智能客服中台建设**：某电商 SaaS 公司将 yao-open-prompts 的售后处理模板集成至客服系统，通过 `variables` 注入订单状态、用户等级等动态数据，使 GPT-4 生成的回复既符合平台话术规范，又能灵活处理退换货、补偿协商等复杂场景。提示词的版本化管理让运营团队无需发版即可调整策略。

**自媒体矩阵运营**：MCN 机构利用内容创作类提示词批量生成适配抖音、视频号、小红书不同平台特性的脚本。关键突破在于项目将"平台算法特征"编码为提示词约束（如抖音前3秒完播率钩子、小红书关键词密度），使 AI 输出从"通用废话"升级为"流量感知内容"。

**开发者文档助手**：技术团队将 `work/code_review.yaml` 模板接入 GitLab CI，在 Merge Request 阶段自动触发代码审查。提示词中预设的审查维度（安全性、性能、可维护性、Pythonic 程度）使审查标准从"因人而异"变为"团队共识"。

## 总结

yao-open-prompts 的价值远超"又一个提示词合集"——它代表了中文开发者社区对 AI 工程化的务实探索。项目以 Python 为锚点，将提示词从"聊天技巧"重构为"可版本控制、可测试、可复用的软件资产"，这一范式转换对正在构建 AI 原生应用的团队尤为关键。无论是独立开发者快速验证产品原型，还是企业级用户寻求提示词治理方案，该项目都提供了经得起生产环境检验的基础设施。随着多模态模型与 Agent 架构的演进，其"结构化提示词 + 动态渲染"的设计哲学或将延伸至更复杂的工具调用与视觉理解场景。
```