| | |
| | | resp = llm.invoke([msg]) |
| | | Log.info(f'识别结果:{resp.content}') |
| | | return resp.content |
| | | |
| | | def get_tc_info(self, paragraph: ParagraphInfo): |
| | | if self.doc_type not in [DocType.tc_format]: |
| | | return '' |
| | | prompt = HumanMessagePromptTemplate.from_template(''' |
| | | # 指令 |
| | | 请从下面的文本中识别指令信息,如果识别失败不要输出任何字符。 |
| | | 指令信息包括:指令名称。 |
| | | # 识别规则 |
| | | - 文本内容为遥控指令数据域或遥控指令应用数据的定义描述。 |
| | | # 约束 |
| | | - 如果文本内容是目录则不要输出任何字符; |
| | | - 指令名称在章节标题中,提取指令名称要和文本中的严格一致; |
| | | - 如果没有识别到指令信息不要输出任何字符; |
| | | - 识别失败,不要输出任何内容,包括解释性文本; |
| | | - 输出json格式。 |
| | | # 示例 - 识别到指令 |
| | | {{ |
| | | "name": "xxx" |
| | | }} |
| | | # 示例 - 未识别到数据包 |
| | | "" |
| | | # 文本内容: |
| | | {text} |
| | | ''') |
| | | chain = prompt.prompt | llm | JsonOutputParser() |
| | | resp = chain.invoke({"text": paragraph.full_text}) |
| | | return resp |
| | | def get_tm_pkt_info(self, paragraph: ParagraphInfo): |
| | | if self.doc_type not in [DocType.tm_outline, DocType.tm_pkt_design]: |
| | | return '' |
| | |
| | | e = doc_dbh.get_entity(entity) |
| | | if e: |
| | | entity.id = e.id |
| | | return e |
| | | doc_dbh.add_entity(entity) |
| | | Log.info(f"新增Entity:{entity.name},id:{entity.id}") |
| | | else: |
| | | doc_dbh.add_entity(entity) |
| | | Log.info(f"新增Entity:{entity.name},id:{entity.id}") |
| | | paragraph.entities.append(entity) |
| | | # 获取指令信息 |
| | | cmd = self.get_tc_info(paragraph) |
| | | if cmd: |
| | | entity = TEntity(name=cmd['name'], type='指令格式配置', prompts='', doc_type='') |
| | | e = doc_dbh.get_entity(entity) |
| | | if e: |
| | | entity.id = e.id |
| | | else: |
| | | doc_dbh.add_entity(entity) |
| | | Log.info(f"新增Entity:{entity.name},id:{entity.id}") |
| | | paragraph.entities.append(entity) |
| | | |
| | | def process(self): |