不要为已消尽之年华叹息,必须正视匆匆溜走的时光。——布莱希特

来点“真有用又好玩的”——今天我们聊一个超多人收藏的中文仓库:PlexPt/awesome-chatgpt-prompts-zh

一句话版(来自仓库 description):ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话。

这个仓库到底是什么

  • 一个“中文场景化提示词合集”,帮你把 ChatGPT(或兼容模型)调教得更贴近你的具体需求。
  • 内容以中文为主,覆盖多种场景,附有使用说明(见 README 与 USEAGE.md)。
  • 许可证:MIT(放心学习、参考与二次使用;具体条款请看 LICENSE)。
  • 官方主页(仓库提供):chat.aimakex.com
  • 仓库主文件与结构(节选)
  • 默认分支:main
  • Topics:chat-gpt、chatgpt、chatgpt3、chatgpt4、gpt

说明:上述文件/目录清单来自一次性接口结果,可能不完整;更多请直接在 GitHub 浏览仓库根目录:完整文件列表(/tree/main)

为什么它火

  • 用中文直接给出“场景化提示词”,减少自己从零写 prompt 的成本。
  • README 与 USEAGE.md 给出了使用指南,降低上手门槛。
  • 同时提供简体与繁体 JSON(prompts-zh.json、prompts-zh-TW.json),方便不同语系用户。

怎么“食用”最省心

  • 先读 README.md:了解项目理念、适用场景与注意事项。
  • 再看 USEAGE.md:快速掌握“怎么用”的姿势与节奏。
  • 按需挑选 prompts-zh.json 或 prompts-zh-TW.json:
    • 如果你是简体中文用户,就从 prompts-zh.json 开始。
    • 如果你面向繁体中文用户,就用 prompts-zh-TW.json。
  • cat.md:常用于分类或索引(具体以文件内容为准),帮助你快速定位场景。

不乱编的“代码小例子”
目标:安全、稳妥、通用。因为我们不对 JSON 的具体结构做假设,所以以下示例会先探测数据结构,再选择一个条目来用。

示例 A:Python 读取 prompts-zh.json,自动探测结构并抽取一个提示词,用 OpenAI 风格 API 做最小调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import os
import json
import requests

# 1) 读取本地 prompts(请先 git clone 或下载到当前目录)
PROMPTS_FILE = "prompts-zh.json"

with open(PROMPTS_FILE, "r", encoding="utf-8") as f:
data = json.load(f)

# 2) 自动探测结构,尽量拿到一段可用的 prompt 文本
prompt_text = None
if isinstance(data, list) and len(data) > 0:
# 常见结构可能是列表,每个元素是一个对象或字符串
first = data[0]
if isinstance(first, dict):
# 如果是对象,优先尝试常见字段名���不做硬假设,逐个尝试)
for key in ("prompt", "content", "text", "instruction"):
if key in first and isinstance(first[key], str):
prompt_text = first[key]
break
# 如果没找到,就把第一个字符串字段拿出来(兜底)
if prompt_text is None:
for v in first.values():
if isinstance(v, str):
prompt_text = v
break
elif isinstance(first, str):
prompt_text = first
elif isinstance(data, dict) and len(data) > 0:
# 如果是字典,拿到第一个字符串值
for v in data.values():
if isinstance(v, str):
prompt_text = v
break

if not prompt_text:
raise ValueError("未能从 prompts-zh.json 自动抽取到文本,请查看文件结构后手动选择字段。")

print("选取的提示词片段:")
print(prompt_text[:200] + ("..." if len(prompt_text) > 200 else ""))

# 3) 用 OpenAI 兼容接口(或任意同类 API)进行最小调用
BASE_URL = os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1")
API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_KEY")
MODEL = os.getenv("OPENAI_MODEL", "gpt-4o-mini") # 替换为你的模型

resp = requests.post(
f"{BASE_URL}/chat/completions",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": MODEL,
"messages": [
{"role": "system", "content": "你是一个乐于助人的中文助手。"},
{"role": "user", "content": prompt_text}
]
},
timeout=30
)
resp.raise_for_status()
print("\n模型回复:")
print(resp.json()["choices"][0]["message"]["content"])

示例 B:Node.js(JavaScript)读取 prompts-zh-TW.json 并调用 OpenAI 风格 API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import fs from "node:fs";
import path from "node:path";

const PROMPTS_FILE = path.resolve("prompts-zh-TW.json");
const raw = fs.readFileSync(PROMPTS_FILE, "utf-8");
const data = JSON.parse(raw);

// 自动探测结构
let promptText = null;
if (Array.isArray(data) && data.length > 0) {
const first = data[0];
if (typeof first === "object" && first !== null) {
for (const key of ["prompt", "content", "text", "instruction"]) {
if (typeof first[key] === "string") {
promptText = first[key];
break;
}
}
if (!promptText) {
for (const v of Object.values(first)) {
if (typeof v === "string") {
promptText = v;
break;
}
}
}
} else if (typeof first === "string") {
promptText = first;
}
} else if (typeof data === "object" && data !== null) {
for (const v of Object.values(data)) {
if (typeof v === "string") {
promptText = v;
break;
}
}
}

if (!promptText) {
throw new Error("未能自动抽取提示词文本,请查看 JSON 结构后手动选择。");
}

console.log("選取的提示詞片段:");
console.log(promptText.slice(0, 200) + (promptText.length > 200 ? "..." : ""));

// 使用 fetch 調用 OpenAI 風格 API
const BASE_URL = process.env.OPENAI_BASE_URL || "https://api.openai.com/v1";
const API_KEY = process.env.OPENAI_API_KEY || "YOUR_KEY";
const MODEL = process.env.OPENAI_MODEL || "gpt-4o-mini";

const resp = await fetch(`${BASE_URL}/chat/completions`, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: MODEL,
messages: [
{ role: "system", content: "你是一位中文助理,請使用繁體中文回覆。" },
{ role: "user", content: promptText }
]
})
});

const json = await resp.json();
console.log("\n模型回覆:");
console.log(json.choices?.[0]?.message?.content ?? "(空)");

示例 C:给自己的提示词做“微模板”封装(不依赖具体仓库结构,示范如何落地)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def build_prompt(role: str, goal: str, constraints: list[str], steps: list[str]) -> str:
lines = [
f"角色:{role}",
f"目标:{goal}",
"限制:",
*[f"- {c}" for c in constraints],
"执行步骤:",
*[f"{i+1}. {s}" for i, s in enumerate(steps)],
"输出要求:",
"- 清晰的结构化结果",
"- 必要时给出理由与引用"
]
return "\n".join(lines)

prompt = build_prompt(
role="资深运营顾问",
goal="为新用户增长制定一周策略",
constraints=["不能超预算", "尽量可复用", "数据口径要明确"],
steps=["分析现状", "明确目标", "制定方案", "拆解行动项", "预估效果与风险"]
)
print(prompt)

这类“微模板”是把场景描述结构化,方便你在仓库的提示词基础上“再加工”。

使用建议(真心话)

  • 用前先读 README 与 USEAGE.md:掌握推荐的使用方式和注意事项,避免误用。
  • 结合 cat.md 或目录中的分类文件,找到适合你场景的提示词集合。
  • 不要把提示词当“万金油”,场景、角色、约束、输出要求都要贴近你的业务。
  • 持续迭代:记下效果最好的提示词,做版本化管理;必要时引入 A/B 测试。
  • 合理设置系统消息(system prompt):给模型“定位”,减少偏题。

合规与开源

  • 许可证:MIT License(详见 LICENSE
  • 二次使用与商业用途请遵循 MIT 条款;如需在企业内部推广,建议对提示词做审计/分类管理。

最后,把重要链接再摆一遍