260条ChatGPT中文提示语资源:JSON角色库与检索实战

发布时间:2026/9/28 23:24:29
260条ChatGPT中文提示语资源:JSON角色库与检索实战 简介这份资源是面向 AI 应用爱好者、内容创作者与产品从业者的中文提示语合集共收录 260 条 ChatGPT 角色提示语覆盖计算机、心理学、健康等多个行业与领域可帮助读者快速为对话模型设定专业身份解决提示词编写门槛高、角色设定缺乏参考的问题。压缩包内共 1 个文件为 json 格式体积约 40KB结构轻量便于直接导入或按需检索调用。内容按角色名称与对应提示语组织例如计算机领域涵盖 UX/UI 开发人员、开发者关系顾问、IT 架构师、全栈软件开发人员、高级前端开发人员等角色心理学领域包含心理健康顾问、心理学家健康领域则涉及私人厨师、人生教练、牙医、虚拟医生等场景跨度较大。目前已有 1057 人学习下载适合希望提升提示词质量、拓展角色库或进行二次整理的中级使用者参考借鉴。1. 260 条中文提示语资源一份能直接抄的角色库到底长什么样很多人第一次接触提示词工程都是从「收藏一堆提示词」开始的。我也不例外。但收藏夹里躺着的那些零散截图、聊天记录片段真正要用的时候根本找不到更别说复用。这份 260 条 ChatGPT 中文提示语资源解决的就是这个问题——它把散落在各个领域的角色提示语整理成了一个结构化的 JSON 文件每个条目包含角色名称和对应的角色提示语覆盖计算机、心理学、健康、教育、商业等多个行业。它适合谁如果你刚开始用 ChatGPT 做具体任务不知道怎么给模型设定角色这份资源可以当字典查如果你已经在做 AI 编程提示词或提示词设计它可以当基线模板省去从零写系统提示的时间。不适合谁指望复制粘贴就能让模型输出完美结果的人——提示语只是起点参数调优和上下文管理才是后面的事。2. 拆开 JSON 看结构260 条提示语的组织逻辑与字段含义2.1 文件格式与字段设计拿到压缩包后解压出来是一个.json文件。常见做法是把它当成一个数组每个元素是一个对象包含角色名称和提示语正文。我用 Python 读了一下结构大致如下import json with open(260_chatgpt_prompts.json, r, encodingutf-8) as f: prompts json.load(f) # 查看第一条数据的字段 print(prompts[0].keys()) # 输出示例dict_keys([role, prompt, category]) # 查看计算机领域的前三条 for item in prompts: if item.get(category) 计算机: print(item[role], -, item[prompt][:60])这段代码做了三件事加载 JSON、查看字段名、按分类筛选。role是角色名称prompt是具体的角色提示语category是行业分类。如果你的文件字段名不同先打印keys()确认别硬套。参数说明encodingutf-8必须加中文提示语不加编码会报UnicodeDecodeError。item.get(category)用get而不是[]是因为部分条目可能没有分类字段直接索引会抛KeyError。2.2 分类分布与角色粒度260 条不是均匀分布的。计算机领域占比最大包括 UX/UI 开发人员、开发者关系顾问、IT 架构师、全栈软件开发人员、高级前端开发人员、软件开发人员等角色。心理学领域有心理健康顾问、心理学家健康领域有私人厨师、人生教练、牙医、虚拟医生。这种粒度意味着什么同一个领域下不同角色的提示语侧重点不同。比如「IT 架构师」的提示语会强调系统设计、技术选型、可扩展性「高级前端开发人员」则聚焦组件设计、性能优化、浏览器兼容。你选角色时不是选领域而是选具体职责。我一般会先按category分组统计每个分类下的角色数量再决定用哪个。下面这段代码可以快速生成分类统计from collections import Counter categories [item.get(category, 未分类) for item in prompts] counter Counter(categories) for cat, count in counter.most_common(): print(f{cat}: {count} 条)Counter会自动按数量降序排列most_common()不传参数返回全部。这样你能一眼看出哪个领域的角色最丰富优先从那里找模板。2.3 提示语长度与信息密度我统计了一下prompt字段的字符长度大部分在 100 到 300 字之间。这个长度是有讲究的太短模型抓不住角色边界太长挤占上下文窗口影响后续对话。常见做法是把角色提示语控制在 200 字左右既说清职责又不至于让模型「演过头」。你可以用下面这段代码看长度分布lengths [len(item[prompt]) for item in prompts] print(f最短: {min(lengths)}, 最长: {max(lengths)}, 平均: {sum(lengths)//len(lengths)})如果发现某条特别长比如超过 500 字用的时候可以手动精简去掉重复的修饰词。提示词设计的一个基本原则是每个词都要有信息量形容词堆砌反而会让模型困惑。3. 把提示语接进工作流从 JSON 到可复用系统提示的完整操作3.1 提取单条提示语并注入对话最直接的用法是找到你需要的角色把prompt字段的内容复制出来作为系统提示system prompt发给 ChatGPT。手动复制适合偶尔用一次但如果你要频繁切换角色最好写个脚本自动提取。def get_prompt_by_role(prompts, role_name): 根据角色名称精确匹配提示语 for item in prompts: if item[role] role_name: return item[prompt] return None # 示例提取 IT 架构师的提示语 architect_prompt get_prompt_by_role(prompts, IT 架构师) if architect_prompt: print(architect_prompt) else: print(未找到该角色检查名称是否完全匹配)逻辑说明get_prompt_by_role做的是精确匹配角色名称必须完全一致。如果你不确定名称可以先打印所有角色名roles [item[role] for item in prompts] for r in roles: print(r)参数说明role_name传入字符串区分大小写和空格。常见翻车点是名称里有全角空格或不可见字符复制的时候容易带进去。解决方法是先用strip()清洗role_name role_name.strip()3.2 批量导出为 Markdown 或纯文本如果你想把提示语导入到其他工具比如 Notion、Obsidian或者做成自己的提示词库批量导出更实用。下面这段代码把每条提示语写成一个独立的 Markdown 文件import os output_dir prompts_md os.makedirs(output_dir, exist_okTrue) for item in prompts: # 用角色名做文件名替换掉不能用于文件名的字符 safe_name item[role].replace(/, _).replace(\\, _).replace(:, _) filepath os.path.join(output_dir, f{safe_name}.md) with open(filepath, w, encodingutf-8) as f: f.write(f# {item[role]}\n\n) f.write(f分类{item.get(category, 未分类)}\n\n) f.write(item[prompt])逻辑说明os.makedirs的exist_okTrue保证目录已存在时不报错。文件名替换是因为角色名里可能有/或:在 Windows 上会导致OSError。写入时先写标题和分类再写正文方便后续检索。参数说明output_dir可以改成你想要的路径。如果提示语里有换行f.write会原样保留Markdown 渲染时正常显示。3.3 在 API 调用中动态切换角色如果你用 OpenAI API 做自动化任务可以把这份 JSON 当成角色库根据任务类型动态加载对应的系统提示。下面是一个最小示例import openai openai.api_key 你的 API Key def chat_with_role(prompts, role_name, user_input): system_prompt get_prompt_by_role(prompts, role_name) if not system_prompt: return 角色不存在 response openai.ChatCompletion.create( modelgpt-3.5-turbo, messages[ {role: system, content: system_prompt}, {role: user, content: user_input} ], temperature0.7 ) return response.choices[0].message.content逻辑说明system消息承载角色提示语user消息是具体问题。temperature0.7是通用起点需要严谨输出时降到 0.3需要创意时升到 1.0。参数说明model按你实际可用的填别照抄。messages列表的顺序不能乱system必须在最前面。常见错误是把角色提示语放在user里模型会把它当成普通输入角色设定效果大打折扣。提示API 调用有成本批量测试时先用短提示语验证流程确认无误再换完整角色提示。4. 避坑与排查提示语用不对多半是这几个地方翻了车4.1 角色提示语被后续对话覆盖现象第一轮对话模型还按角色回答聊到第三四轮就开始「出戏」回复风格完全变了。原因上下文窗口里后续的 user 和 assistant 消息会稀释 system 提示的权重。模型不是人它没有「记住角色」的自觉全靠每次推理时重新读上下文。解决每轮对话都重新发送 system 提示或者把角色关键约束提炼成一句话放在每轮 user 消息的开头。我一般会在第三轮之后主动补一句「请继续保持 XX 角色的设定」。4.2 中文提示语里的全角标点导致解析失败现象用脚本读取 JSON 时正常但把提示语拼进 API 请求后报编码错误或返回乱码。原因部分提示语里混用了全角逗号、全角引号某些 HTTP 库在序列化时处理不一致。解决在发送前统一做一次清洗import re def clean_prompt(text): # 全角转半角保留中文标点 text text.replace(“, ).replace(”, ) text text.replace(‘, ).replace(’, ) # 去掉不可见字符 text re.sub(r[\x00-\x08\x0b\x0c\x0e-\x1f], , text) return textre.sub那行是去掉 ASCII 控制字符这些字符肉眼看不见但会让 JSON 解析或 HTTP 传输出问题。4.3 角色名称匹配不上现象get_prompt_by_role返回None但你明明看到列表里有这个角色。原因名称里有空格差异、全角半角差异或者你复制的时候带了换行符。解决打印repr(item[role])看真实字符repr会把不可见字符显示出来。然后用strip()和replace统一格式。别用in做模糊匹配容易匹配到错误的角色。4.4 提示语太长导致截断现象API 返回This models maximum context length is exceeded。原因角色提示语加上对话历史超过了模型的 token 上限。解决先算 token 数。粗略估算中文 1 个字约等于 1.5 到 2 个 token。260 条里最长的提示语如果超过 500 字加上几轮对话就可能超限。精简提示语或者换用上下文窗口更大的模型。4.5 直接套用角色提示语但任务不匹配现象用了「牙医」的提示语但问的是编程问题模型回答得四不像。原因角色提示语是为特定任务设计的跨领域使用会干扰模型判断。解决先明确任务类型再选角色。这份资源的价值在于分类清晰别偷懒随便抓一条就用。我一般会建一个映射表把任务关键词和角色名称对应起来用的时候先查表。5. 进阶用法把 260 条提示语变成可检索的本地知识库手动翻 JSON 找角色条目少的时候还行260 条翻起来就累了。我的做法是把它变成一个可检索的本地知识库用关键词就能定位到相关角色。5.1 用 TF-IDF 做提示语检索不需要向量数据库用 scikit-learn 的 TF-IDF 就能做基础检索。下面这段代码把每条提示语向量化然后根据查询词返回最相关的角色from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # 准备语料角色名 提示语拼接 corpus [f{item[role]} {item[prompt]} for item in prompts] vectorizer TfidfVectorizer( analyzerchar, ngram_range(2, 3), max_features5000 ) tfidf_matrix vectorizer.fit_transform(corpus) def search_prompts(query, top_k5): query_vec vectorizer.transform([query]) similarities cosine_similarity(query_vec, tfidf_matrix).flatten() top_indices similarities.argsort()[-top_k:][::-1] results [] for idx in top_indices: if similarities[idx] 0: results.append((prompts[idx][role], similarities[idx])) return results # 示例搜索和「前端性能优化」相关的角色 for role, score in search_prompts(前端性能优化): print(f{role} (相关度: {score:.3f}))逻辑说明analyzerchar表示按字符切分适合中文。ngram_range(2, 3)表示用 2 到 3 个字符的组合做特征能捕捉「前端」「性能」「优化」这类词组。cosine_similarity计算查询向量和每条提示语向量的夹角余弦值值越大越相关。参数说明max_features5000控制特征数量太小会丢信息太大计算慢。260 条数据用 5000 足够。top_k5返回前 5 个结果按需调整。5.2 检索结果验证与人工兜底TF-IDF 是统计方法不理解语义。搜「前端性能优化」可能返回「高级前端开发人员」也可能返回「IT 架构师」因为两者都包含相关词汇。我的习惯是检索结果只作为候选最终选哪个角色还是人工判断。验证方法很简单把检索到的角色提示语打印出来看它的职责描述和你的任务是否匹配。如果前 5 个都不合适换关键词再搜。常见做法是准备几个同义词比如「前端」换成「Web」、「性能」换成「优化」、「调优」。5.3 把检索封装成命令行工具如果你经常用可以封装成一个命令行脚本输入关键词直接输出角色名和提示语import sys if __name__ __main__: query sys.argv[1] if len(sys.argv) 1 else 软件开发 results search_prompts(query, top_k3) for role, score in results: print(f\n{*40}) print(f角色{role} 相关度{score:.3f}) print(f{*40}) prompt get_prompt_by_role(prompts, role) print(prompt[:200] ... if len(prompt) 200 else prompt)运行方式python search.py 前端性能。输出会列出最相关的三个角色和提示语摘要。这样你不需要打开 JSON 文件直接在终端就能查。从那以后我每次拿到新的提示语资源都会先跑一遍检索流程确认能快速定位再入库。提示语本身不是银弹但一份整理好的角色库能省下大量重复劳动。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询