import json import os mapping = { # 编程技术 "软件工程,glue_coding_用提示词": "编程技术", "前端复刻流程": "编程技术", "输入转单行JSON": "编程技术", "序列图生成": "编程技术", "流程图": "编程技术", "函数化万物": "编程技术", "编程知识库": "编程技术", "网页UI逆向分析提示词": "编程技术", "用户优化前端设计": "编程技术", "图像特征提取": "编程技术", "前端通用设计": "编程技术", # 逻辑工具箱 "哲学工具箱": "逻辑工具箱", "逻辑工具箱": "逻辑工具箱", "批判性思维分析": "逻辑工具箱", "思维模型": "逻辑工具箱", "政治批判工具箱": "逻辑工具箱", "未来视角": "逻辑工具箱", "层级结构分析": "逻辑工具箱", "问题分类识别": "逻辑工具箱", "分析": "逻辑工具箱", "终极本质分析": "逻辑工具箱", "事实核查": "逻辑工具箱", "关键词图谱": "逻辑工具箱", "语言分析元prompt": "逻辑工具箱", "逻辑分析": "逻辑工具箱", "黄金圈解释": "逻辑工具箱", "谋士": "逻辑工具箱", "经验": "逻辑工具箱", "道": "逻辑工具箱", "法": "逻辑工具箱", "术": "逻辑工具箱", "器": "逻辑工具箱", "心经口诀创作提示词": "逻辑工具箱", "临界知识": "逻辑工具箱", "项目分析": "逻辑工具箱", "对话提问": "逻辑工具箱", "思维导图": "逻辑工具箱", # 内容创作 "文案逆向": "内容创作", "x_prompt收集": "内容创作", "x提示词收集": "内容创作", "x爆款文案生成器": "内容创作", "推文制作提示词": "内容创作", "李继刚文选": "内容创作", "解释提示词": "内容创作", "一句话描述任何内容": "内容创作", "子弹总结": "内容创作", "文本转md语法电子书处理": "内容创作", "排版和图片,视频转文本": "内容创作", "艺术风格描述": "内容创作", "视频生成提示词": "内容创作", "图片逆向": "内容创作", "排版": "内容创作", "内容提炼": "内容创作", "简讯提示词": "内容创作", "艺术": "内容创作", "人话写作": "内容创作", "小红书": "内容创作", "组织语言": "内容创作", "正向人物生平报告官方文案": "内容创作", "gemini字幕处理": "内容创作", # 学习教育 "学习提示词": "学习教育", "学习用提示词": "学习教育", "ai学习用提示词": "学习教育", "书籍结构化分析": "学习教育", "典籍句子学习": "学习教育", "anki卡片格式输出": "学习教育", "notebookllm用提示词": "学习教育", "英文学习": "学习教育", "速成学习": "学习教育", "论文解读": "学习教育", "真传一句话": "学习教育", "学习音频": "学习教育", "豆包听书": "学习教育", "最小知识框架": "学习教育", # 商业分析 "grok商业金融分析提示词": "商业分析", "投资调研": "商业分析", "行业分析": "商业分析", "需求对齐": "商业分析", "需求结构化描述": "商业分析", "麦肯锡行业分析": "商业分析", "产品策略": "商业分析", "行业咨询": "商业分析", "需求解析": "商业分析", "SOP制作": "商业分析", # 提示词工程 "元提示词": "提示词工程", "提示词模块": "提示词工程", "根据内容逆向提示词": "提示词工程", "系统提示词": "提示词工程", "AI使用思维": "提示词工程", "使用ai的思维": "提示词工程", "最小字数系统提示词": "提示词工程", "ChatGPT": "提示词工程", "Reddit提示词": "提示词工程", "好prompt生成器": "提示词工程", "思维协议": "提示词工程", "grok抓取提示词": "提示词工程", # 其他 "AI_交易系统提示词": "综合杂项", "面向CZ": "综合杂项", } id_map = { "编程技术": 1, "逻辑工具箱": 2, "内容创作": 3, "学习教育": 4, "商业分析": 5, "提示词工程": 6, "综合杂项": 7 } input_file = "prompt_jsonl/prompt_docs_2025_1222_004537.jsonl" output_file = "prompt_jsonl/prompt_docs_refactored.jsonl" def process(): stats = {} with open(input_file, 'r', encoding='utf-8') as fin, \ open(output_file, 'w', encoding='utf-8') as fout: for line in fin: if not line.strip(): continue data = json.loads(line) old_cat = data.get('category', '') new_cat = mapping.get(old_cat, "综合杂项") # Keep original category in tags if it doesn't exist? # Or just replace. The user said "只调整 'category'" data['category'] = new_cat data['category_id'] = id_map.get(new_cat, 7) fout.write(json.dumps(data, ensure_ascii=False) + '\n') stats[new_cat] = stats.get(new_cat, 0) + 1 print("Refactor complete.") for cat, count in stats.items(): print(f"{cat}: {count}") if __name__ == "__main__": process()