Skill: yingjiusheng/nl2json (version 1.0.1)

--- name: nl2json description: 将自然语言转换成JSON参数。当用户说"帮我把自然语言转成JSON"、"把这段话转换成JSON参数"、"识别成JSON"、"转成JSON"、"转换成JSON"、"帮我生成JSON"、"用JSON表示"、"提取成JSON"、"解析成JSON"、"把这句话变成JSON"、"帮我做JSON转换"、"查询数据转JSON"、"获取数据转成JSON"、"舆情数据转JSON"、"新闻转JSON"、"用JSON格式输出"等时使用此技能。只要用户需要将自然语言描述转换成结构化的JSON数据，就使用此技能。首先读取templates/default.json模板，严格按照模板中定义的字段进行输出，优先保证模板字段的支持。 --- # 自然语言转JSON参数技能 这个技能帮助用户将自然语言描述转换成结构化的JSON参数。 ## 核心功能 1. **模板优先**：首先读取 `templates/default.json` 模板，严格按照模板字段输出 2. **关键信息提取**：自动从自然语言中提取所有关键信息，填充到模板对应的字段 3. **时间格式转换**：所有时间参数统一转换为 `YYYY-mm-dd H:i:s` 格式 4. **上下文继承**：记住上一次转换的参数，当用户后续输入只有部分信息时，继承上一次的其他参数 ## 上下文继承规则 当用户连续进行多次转换时，检查对话历史： - 如果当前输入是完整查询（包含所有必要信息），按当前输入处理 - 如果当前输入是部分查询（只修改了时间、数量等个别参数），则： - 继承上一次转换的 `other` 对象中的所有参数 - 只用当前输入中的新信息覆盖对应的参数 - 保持其他参数不变 ### 上下文继承示例 **第一次输入：** "转成json，小米汽车头条数据top10最近一周" **第二次输入（部分查询）：** "最近三天呢" **处理逻辑：** 继承第一次的所有参数，只修改时间范围： - 继承：source=头条, subject=小米汽车, data_type=数据, limit=top10 - 更新：start_time 和 end_time 改为最近三天 ## 使用模板 ### 第一步：读取模板 在开始处理前，必须先读取 `templates/default.json` 文件，了解需要输出的字段结构。 ### 第二步：按模板字段提取信息 根据模板中定义的每个字段，从用户的自然语言输入中提取对应的信息： - 对于模板中的 `string` 类型字段，提取对应的文本内容 - 对于模板中的 `object` 类型字段（`{}`），提取相关信息作为嵌套对象 - 对于模板中的 `array` 类型字段（`[]`），提取相关信息作为数组 ### 第三步：填充默认值 对于模板中定义但用户输入中没有提到的字段： - 字符串类型字段：填空字符串 `""` - 对象类型字段：填空对象 `{}` - 数组类型字段：填空数组 `[]` - 不要省略模板中定义的任何字段 ## 时间格式转换规则 所有时间参数必须转换为 `YYYY-mm-dd H:i:s` 格式： ### 相对时间转换示例 | 自然语言描述 | 转换结果 (当前日期: 2026-03-04) | |-------------|----------------------------------| | 今天 | 2026-03-04 00:00:00 | | 昨天 | 2026-03-03 00:00:00 | | 最近1天 | start_time: 2026-03-03 00:00:00, end_time: 2026-03-04 23:59:59 | | 最近7天 | start_time: 2026-02-25 00:00:00, end_time: 2026-03-04 23:59:59 | | 本周 | start_time: 2026-03-02 00:00:00, end_time: 2026-03-08 23:59:59 | | 上周 | start_time: 2026-02-23 00:00:00, end_time: 2026-03-01 23:59:59 | | 本月 | start_time: 2026-03-01 00:00:00, end_time: 2026-03-31 23:59:59 | | 上个月 | start_time: 2026-02-01 00:00:00, end_time: 2026-02-28 23:59:59 | ### 具体时间转换示例 | 自然语言描述 | 转换结果 | |-------------|---------| | 2026年3月5日 | 2026-03-05 00:00:00 | | 2026-3-5 14:30 | 2026-03-05 14:30:00 | | 3月5日下午3点 | 2026-03-05 15:00:00 | | 明天上午9点 | 2026-03-05 09:00:00 | ## 工作流程 1. **读取模板**：首先读取 `templates/default.json` 文件，确认需要输出的字段 2. **检查上下文**：查看对话历史，判断是否有上一次的转换结果 3. **判断查询类型**： - 如果是完整查询（包含source、subject、data_type等主要信息），按新查询处理 - 如果是部分查询（只修改时间、数量等个别参数），继承上一次的参数 4. **接收输入**：接收用户输入的自然语言 5. **提取信息**： - 完整查询：从当前输入中提取所有信息 - 部分查询：从上一次结果中继承参数，用新信息覆盖对应字段 6. **格式转换**：将所有时间参数转换为 `YYYY-mm-dd H:i:s` 格式 7. **填充字段**：按照模板结构填充所有字段，缺失的字段用默认值填充 8. **输出JSON**：直接输出生成的JSON，严格保持模板的字段结构 ## 使用方式 ### 触发短语示例 用户可以用以下任何方式触发此技能： **直接转换类：** - "帮我把这段话转成JSON：..." - "帮我转换JSON，..." - "识别成JSON：..." - "转成JSON：..." - "转换成JSON：..." - "用JSON表示：..." - "提取成JSON：..." - "解析成JSON：..." - "把这句话变成JSON：..." - "帮我做JSON转换：..." **查询数据类：** - "查询数据转JSON：..." - "获取数据转成JSON：..." - "舆情数据转JSON：..." - "新闻转JSON：..." - "搜索结果转JSON：..." **格式输出类：** - "用JSON格式输出：..." - "按JSON格式整理：..." - "输出成JSON：..." - "返回JSON格式：..." ### 使用场景示例 **舆情监控场景：** - "查询人民网最近1天关于小米汽车的负面舆情数据" - "获取微博上本周关于张三的新闻" - "看看抖音上最近7天关于AI的热门话题" **数据查询场景：** - "查找本月关于新能源汽车的报道" - "搜索最近3天的科技新闻" - "获取头条的舆情数据top10" **简单查询场景：** - "获取舆情数据" - "查询新闻" - "查找相关信息" ## 输出格式 假设 `templates/default.json` 模板为： ```json { "input": "string", "question_name": "string", "other": {} } ``` 则输出格式如下（严格按照模板字段）： ```json { "input": "帮我转换JSON，查询人民网最近1天关于小米汽车的负面舆情数据", "question_name": "查询人民网最近1天关于小米汽车的负面舆情数据", "other": { "source": "人民网", "start_time": "2026-03-03 00:00:00", "end_time": "2026-03-04 23:59:59", "subject": "小米汽车", "sentiment": "负面", "data_type": "舆情数据" } } ``` ## 上下文继承示例 ### 示例一：修改时间范围 **第一次输入（完整查询）：** ``` 转成json，小米汽车头条数据top10最近一周 ``` **第一次输出：** ```json { "input": "转成json，小米汽车头条数据top10最近一周", "question_name": "小米汽车头条数据top10最近一周", "other": { "source": "头条", "subject": "小米汽车", "data_type": "数据", "limit": "top10", "start_time": "2026-02-25 00:00:00", "end_time": "2026-03-04 23:59:59" } } ``` **第二次输入（部分查询，只修改时间）：** ``` 最近三天呢 ``` **第二次输出（继承其他参数，只修改时间）：** ```json { "input": "最近三天呢", "question_name": "小米汽车头条数据top10最近三天", "other": { "source": "头条", "subject": "小米汽车", "data_type": "数据", "limit": "top10", "start_time": "2026-03-02 00:00:00", "end_time": "2026-03-04 23:59:59" } } ``` ### 示例二：修改数量限制 **第一次输入：** ``` 查询小米汽车微博热点数据top10最近一周 ``` **第二次输入（只修改数量）：** ``` top20 ``` **第二次输出（继承其他参数，只修改limit）：** ```json { "input": "top20", "question_name": "小米汽车微博热点数据top20最近一周", "other": { "source": "微博", "subject": "小米汽车", "data_type": "热点数据", "limit": "top20", "start_time": "2026-02-25 00:00:00", "end_time": "2026-03-04 23:59:59" } } ``` ### 示例三：修改来源 **第一次输入：** ``` 查询小米汽车微博热点数据top10最近一周 ``` **第二次输入（只修改来源）：** ``` 换成抖音 ``` **第二次输出（继承其他参数，只修改source）：** ```json { "input": "换成抖音", "question_name": "小米汽车抖音热点数据top10最近一周", "other": { "source": "抖音", "subject": "小米汽车", "data_type": "热点数据", "limit": "top10", "start_time": "2026-02-25 00:00:00", "end_time": "2026-03-04 23:59:59" } } ``` ## 部分查询识别规则 以下输入被识别为部分查询，触发上下文继承： - 只包含时间："最近三天呢"、"改成昨天"、"本周" - 只包含数量："top20"、"改成前5"、"100条" - 只包含来源："换成微博"、"改人民网"、"头条" - 只包含主题："换成比亚迪"、"改AI"、"特斯拉" - 只包含数据类型："改成新闻"、"舆情"、"热点" 如果输入包含两个或多个以上新参数，或输入是一个全新的完整查询，则按新查询处理，不继承上下文。 ## 重要提示 - **最重要**：首先读取 `templates/default.json` 模板，严格按照模板中定义的字段输出 - **上下文继承**：检查对话历史，如果用户输入是部分查询，继承上一次的参数 - 不要省略模板中定义的任何字段，即使没有值也要保留 - 所有时间参数必须转换为 `YYYY-mm-dd H:i:s` 格式 - 当前日期以系统提示的 currentDate 为准 - 相对时间"最近N天"包含今天，往前推N天 - 时间范围如果只说了开始或结束，另一端用合理默认值填充 - 提取所有能识别的关键信息，填充到对应的模板字段 - 部分查询时，`question_name` 字段需要更新为完整的查询描述 - 保持JSON格式的正确性，确保可以直接解析 - 输出时只包含JSON，不需要额外的说明文字


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)