ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RocketRide Dictionary 节点实战:用 LLM 从文本与表格中自动构建企业术语表

RocketRide Dictionary 节点实战:用 LLM 从文本与表格中自动构建企业术语表 【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载本篇技术指南以 RocketRide 开源仓库中的dictionary文本处理节点nodes/src/nodes/dictionary/README.md为核心讲解如何让一个已连接的 LLM 把文本或表格内容转成公司专属术语表glossary。读完本文你将掌握该节点的连接方式、通道lane语义、内置提示词设计、输出文档结构、错误处理与依赖约定并能在你自己的 pipeline 中正确选用它而不是误用通用的结构化抽取节点。节点定位为内部词汇而生的提取器在 RocketRide 的节点体系中dictionary是一个典型的文本处理型classType: [text]过滤器节点。它解决的核心问题是下游用户或 Agent 需要的是公司内部术语的简明定义而不是一张带预定义 schema 的通用结构化数据表。从节点注册元数据 services.json 可以看到它的官方描述这是一个分析文档、抽取关键术语与短语的处理组件能够识别领域专属词汇、反复出现的表达和关联术语构建结构化清单供下游增强或引用适用于创建术语表、辅助分类或提升搜索相关性。与 extract_data 的取舍仓库文档明确给出了选型建议当输出目标是可复用的术语与描述词汇表时使用dictionary当需要的是若干 chunk 合并成的表状结果如按配置列抽取行时应使用 extract_data。两者的差异很直观dictionaryLLM 返回一个 JSON 数组数组每个元素是一条定义节点为每条定义写一个独立文档extract_data按配置的列名、类型与默认值请求 JSON 行数组维护工作表跨 chunk 合并去重最终输出一张完整的表。一句话总结dictionary 产出词条extract_data 产出表格。连接与通道LanesConnectionsConnectionRequiredDescriptionllmyes用于提取和定义术语的 LLM。llm连接是强制性的在 services.json 的invoke.llm.min中标记为1节点本身没有 LLM 选择逻辑完全依赖这条连接提供的模型实例。LanesLane inLane outDescriptiontextdocuments对 LLM 返回的每一个词条发出一条定义文档。lanes配置为{text: [documents]}输入侧只有text通道输出侧只有documents通道。这与 extract_data 拥有table/text/documents多种输入和answers/documents双输出的形态形成鲜明对比。配置零本地字段该节点没有本地配置字段。在 services.json 中fields为空对象shape也只有一个无属性的 Pipe 段落README 生成的 Schema 章节明确写着 No configuration fields.。这意味着你不需要也无法为节点配置任何提取列、类型或默认值你需要做的只有两件事连上llm在text通道上供给文本当运行时提供的是表格内容时走的是同一条抽取路径见下文源码分析。内置提示词四条指令 一个示例虽然节点无配置但它的提示词是精心设计的写在 IInstance.py 的_extractDefinitions方法中。节点通过Question(typeQuestionType.QUESTION, expectJsonTrue, ...)发起结构化提问expectJson: true强制 LLM 返回 JSON。提示词由四条指令instruction组成Dictionary Creation告诉 LLM 正在创建公司专属术语词典要从给定文档与上下文中抽出公司特定信息、行话以及可能与训练数据含义不同的内容Company Specific Terms明确要求把公司专属术语和缩略语也纳入定义Multiple definitions对于多份文档合并为单个 JSON 数组并且总是返回单个 JSON 数组Overlap允许定义之间存在重叠。同时提供了一个银行信贷场景的 few-shot 示例原文提到 red loan 与 CPMD期望输出为[ {term: Red loan, description: Credit score less than 650 and delinquent by 60 days or more}, {term: CPMD, description: Credit Portfolio Marketing Division} ]这个示例形状{term: ..., description: ...}是提示词模板的一部分但源码注释明确说明节点在序列化每个返回对象时不做额外字段强加即 LLM 返回的对象结构会被原样保留。输出每条定义 一个文档writeAnswers方法IInstance.py负责把 LLM 的回答落成文档取出answer.getJson()得到定义数组遍历每个定义构造Doc(page_contentjson.dumps(definition), metadata...)——文档内容是定义对象的 JSON 序列化字符串最后通过self.instance.writeDocuments(documents)一次性写出全部文档。Chunk 元数据约定元数据构造逻辑非常明确IInstance.pychunkId在open()中每次收到新输入对象时重置为 0self.chunkId 0此后每写一条定义chunkId递增 1isTable恒为False即输出文档一律标记为非表格内容tableId恒为0不关联任何表格。即使输入是通过表格处理路径writeTable到达的最终输出也统一是普通文档因此下游节点拿到的是一批可继续检索/入库的词汇文档而不是表格行。错误处理宁可报错不可产出坏数据节点对 LLM 返回内容做了严格校验IInstance.py如果 LLM 返回合法 JSON 但不是数组例如一个对象、字符串、数字或 null节点会抛出带描述信息的ValueError且在任何文档写出之前就失败Dictionary expected the LLM response to be a JSON array of definitions, got Type.如果 LLM 返回无效 JSON节点不会吞掉错误而是继续向上传播解析异常如 Answer is not in JSON format.。这两条行为都有测试用例背书见 nodes/test/dictionary/test_response_shape.pytest_array_emits_one_document_per_definition_with_incrementing_metadata验证数组输入下每条定义一个文档、chunkId 从 0 递增、isTable 恒为 False、tableId 恒为 0test_empty_array_is_valid_and_emits_an_empty_document_batch空数组是合法输入产出空批次且 chunkId 保持 0test_non_array_json_is_rejected_before_any_documents_are_emitted参数化测试覆盖对象/字符串/数字/null 四种非数组情形断言抛出ValueError且writeDocuments未被调用test_invalid_json_error_propagates_without_emitting_documents无效 JSON 异常向上传播同样不产出任何文档。依赖约定零额外 Python 依赖节点的 requirements.txt 是注释说明文件——节点没有任何自身的 Python 包依赖完全依赖单独安装的 AI 模块ai.common.schema中的Doc、DocMetadata、Question、QuestionType、Answer以及rocketlib的IInvokeLLM。这一点在运行时也能从 IGlobal.py 得到印证beginGlobal在非 CONFIG 模式下通过depends()加载同目录的requirements.txt由于该文件为空实际不安装任何东西天然规避了依赖冲突而在 CONFIG 模式下则直接跳过驱动加载。这也解释了为什么测试文件 test_response_shape.py 需要为rocketlib、ai等模块安装桩stub——节点源码对引擎与 AI 模块的耦合都集中在这些接口上。在 pipeline 中的典型用法与建议综合以上分析在 RocketRide 的 pipe 工作流中使用 dictionary 节点的推荐做法是连接 LLM从支持的多家模型提供商中任选一个实例接入llm连接invoke.llm.min 1必须连接喂入文本把待分析的文档/文本块送入text通道若上游产出表格运行时也会走同一抽取路径writeTable与writeText都调用_extractDefinitions消费文档从documents通道接收每词条一个的 JSON 文档可继续接向量存储、搜索或下游 Agent 上下文处理异常由于节点在返回非数组 JSON 时会立即抛错建议在编排层关注 LLM 返回的稳定性或在上游提示词中强调始终返回 JSON 数组以配合本节点的单数组约定。从源码结构看该节点的IInstanceBase生命周期包含open重置 chunkId、writeText/writeTable抽取与writeAnswers校验并写出三个关键阶段整体设计使其天然适合文档入库前先生成领域词汇表的预处理场景例如为检索增强RAG流程提供术语层面的辅助索引或为分类/搜索相关性任务沉淀可复用的公司内部行话集合。赞分享【免费下载链接】rocketride-serverHigh-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS Code extension, TypeScript/Python SDKs, and Docker deployment.项目地址https://gitcode.com/gh_mirrors/ro/rocketride-server点击查看免费下载相关推荐ShofEL2编译指南构建CBFS加载器、U-Boot和Coreboot的终极教程ShofEL2编译指南构建CBFS加载器、U Boot和Coreboot的终极教程 想要为你的Nintendo Switch解锁Linux系统吗ShofELRocketRide Reducto 节点详解从文档上传到 Markdown 与表格提取的配置与实现RocketRide Reducto 节点详解从文档上传到 Markdown 与表格提取的配置与实现 本篇技术指南聚焦 RocketRide 数据节点体系中的x-spreadsheet实战指南从零构建企业级表格应用x spreadsheet实战指南从零构建企业级表格应用 还在为网页中集成Excel功能而烦恼吗想要快速实现一个支持数据编辑、格式设置和公式计算的专业表格吗前端UI组件上一篇Czkawka 磁盘清理工具完整指南5 分钟找出重复文件与相似图片下一篇FastRTC容器编排策略Kubernetes部署实时通信服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表