构建基于Wikiprompt数据集的AI应用
开发者指南:基于Wikiprompt公开的55,000+提示词数据集,构建提示词搜索界面、每日提示词机器人、浏览器扩展或Discord机器人,包含数据摄取代码和归属说明。

在Wikiprompt数据集上构建AI应用
每个尝试构建“提示词库”应用的独立开发者都会在第一天撞上同一堵墙:你需要种子内容,而爬取既慢又脆弱,还会对目标服务器不友好。Wikiprompt刚刚拆掉了这堵墙。整个目录,超过55,000条提示词,覆盖ChatGPT、Claude、Gemini、Midjourney、GPT Image、Veo、Kling、Seedance、Nano Banana、Grok等,现在以公开批量数据集的形式提供。无需密钥,无需限流协商,无需爬取。就是JSON。
这篇帖子是构建日志,不是新闻稿。四个你本周末就能上线的小应用,以及实现它们所需的确切管道。
你实际要处理的内容
先访问清单文件:
curl "https://www.wikiprompt.org/dataset"
它返回total_prompts、每行记录中可预期的record_fields,以及分页方案。真实数据位于/dataset/prompts,使用键集游标分页:每页给你一个next URL,你跟随它直到next返回null。每页最多500条记录。
curl "https://www.wikiprompt.org/dataset/prompts?limit=500"
每条记录是一个小而实用的对象:slug、url、title、description、content(你会粘贴到模型里的实际提示词文本)、category、tags、media(当提示词生成图像或视频时的URL)、model(它针对或运行于哪个模型)、metadata(结构化字段,如媒体类型、宽高比、风格和质量评估)、author、original_source(它来源的原始推文或帖子),以及时间戳。这些足以构建一个真实UI,而无需任何额外的API调用。
这是Python中的完整摄取循环,大约15行代码就能写入本地SQLite缓存:
import requests, sqlite3
db = sqlite3.connect("wikiprompt.db")
db.execute("""create table if not exists prompts(
slug text primary key, title text, description text,
content text, category text, model text, url text)""")
url = "https://www.wikiprompt.org/dataset/prompts?limit=500"
while url:
data = requests.get(url).json()
for p in data["records"]:
db.execute(
"insert or replace into prompts values (?,?,?,?,?,?,?)",
(p["slug"], p["title"], p["description"],
p["content"], p["category"], p.get("model"), p["url"]),
)
db.commit()
url = data.get("next")
运行一次,你就有了整个目录的本地可查询副本。CORS完全开放(Access-Control-Allow-Origin: *),响应经过边缘缓存,所以从浏览器运行也很友好,不只是后端任务。
四件值得构建的东西
一个提示词搜索UI。 数据集免费提供category、tags、model和metadata,这意味着分面搜索基本上就是一个SQL WHERE子句的事:“Midjourney提示词,标签为人像”或“Claude的编码提示词”可以解析为一个过滤器,而不是一个研究项目。如果你不想自己构建索引,wikiprompt已经运行了一个:搜索API接受?q=并返回排序后的JSON,足以在你写一行检索代码之前就原型化一个搜索框。
一个“每日提示词”机器人。 定时任务,从你的本地缓存中随机选一行(或按category=creative过滤以获取主题化内容),发布title + content + url回到来源。media字段意味着你可以附加实际输出图像或视频到帖子,而不仅仅是文本。这大约40行代码,同样适用于Slack机器人、Telegram机器人,或一个发布到X的cron任务。
一个浏览器扩展。 右键点击任何文本字段,“插入提示词”,按类别或模型搜索你的本地缓存,粘贴content。由于初始同步后数据是本地的,这可以离线且即时工作,每次按键无需网络往返。
一个Discord机器人。 /prompt image midjourney斜杠命令,按category和model过滤你的缓存,回复title、content,并将媒体作为嵌入内容。如果有人想看原始内容,在页脚链接original_source,这样归属在同一消息中就覆盖了。
真正使用metadata字段
对于任何与媒体相关的内容,metadata是有趣信息所在:宽高比、风格标签、质量评估。如果你在构建一个排序或推荐提示词的应用(而不仅仅是列出它们),这就是你的信号。一个“最佳Midjourney人像提示词,3:4宽高比,高质量评分”的过滤器,一旦你摄取了该字段,就是几个额外的WHERE子句,无需单独的评分管道。
为了体验一条好的提示词记录的完整流程,浏览几个实时页面:一个数据物理化图像提示词、一个未来主义蛛形纲角色转换,以及一个神秘游牧旅行者角色设计。每一个在数据集中也是一条完整记录,同样的字段,同样的content,你可以直接复制到模型中。
归属不是可选的,而且也不难
Wikiprompt聚合了原始作者公开帖子的提示词;它不是许可证持有者,而是图书管理员。如果你的应用展示一条提示词,请同时显示original_source,并注明wikiprompt.org是你获取目录的来源。这就是约定,数据集让遵守它变得轻而易举,因为original_source已经存在于每条记录中。不要仅仅因为你的模式还没有对应列,就在摄取时剥离它。
如果你不想运行自己的索引
根据你想拥有多少基础设施,有三个选项。如果你想完全控制,通过你自己的搜索/推荐层运行批量数据集。如果你只需要结果而不是管道,直接调用搜索API。或者,如果你在构建一个代理而不是应用,将其指向MCP服务器,它暴露搜索、类别和单个提示词作为工具,Claude和其他代理可以原生调用。还有llms.txt,如果你想一次获取就让模型理解整个表面区域。
从这里开始
curl "https://www.wikiprompt.org/dataset/prompts?limit=500" | head -c 2000
看看返回的内容,从上面四个想法中选一个,你就能在咖啡冷掉之前做出能用的东西。困难的部分,超过55,000条跨十几个模型的精选提示词,已经完成了。你用它们构建什么,才是有趣的部分。
Related Articles
- Laya vs. Jev: Die Open-Source-Antwort auf die Entscheidungsmodell-Welle
Sep 22, 2026 · 5 min read
- Laya contre Jev : La réponse open-source à la vague des modèles de décision
Sep 22, 2026 · 5 min read
- Laya vs Jev: La respuesta de código abierto a la ola de modelos de decisión
Sep 22, 2026 · 5 min read
- Laya vs Jev: 오픈소스로 답하는 의사결정 모델 물결
Sep 22, 2026 · 5 min read
- लाया बनाम जेव: निर्णय-मॉडल लहर का ओपन-सोर्स उत्तर
Sep 22, 2026 · 5 min read