1.98.11

还是一个节点…1

{"mimeType":"web application/x-shb-editor","kind":"workflow-node","data":{"nodes":[{"position":{"x":295,"y":255},"id":"012b77c9-d91c-472c-a2fa-1d5e73f9889a","data":{"input":["input1"],"output":[],"handle":{"output":[[{"id":"cadc4460-717a-5622-84c3-05010d832f13","label":"输出","value":"default"}],[],null],"input":[[{"id":"79cce85d-1231-56fa-9afb-afb06b1c5b53","label":"[连接点]","value":"[连接点]","type":"connect"}],[{"id":"8d4e9297-8c13-5b16-8317-ad350d05b26e","label":"input1","value":"input1","inputType":"object"}],null]},"transform":{"resizable":true},"value":"return async (outputName) => {\n    return { value: util.yaml.stringify({ \n      entity_type: parameters.input1.value['entityTypeList'],\n      text:parameters.input1.value['chunk']\n    }), extra: undefined }\n  }","title":"代码"},"width":300,"type":"script","measured":{"width":300,"height":103},"selected":true,"className":"","dragging":false},{"position":{"x":80,"y":230},"id":"71e69c3a-3785-45c8-bee5-ea7f7e6a7e5a","data":{"transform":{"resizable":true},"handle":{"input":[[{"id":"1cf47fc3-00bd-5be4-9184-d1ecb7031557","label":"[输入]","value":"[INPUT]","inputType":"object"}]],"output":[[{"id":"cadc4460-717a-5622-84c3-05010d832f13","label":"外界输入","value":"default"}]]},"title":""},"style":{},"type":"input-params","measured":{"width":59,"height":65},"selected":true,"dragging":false,"className":"","resizing":false},{"position":{"x":885,"y":-280},"id":"a2a62510-9cf2-4d88-b2f4-1363268024c4","data":{"config":{"examples":[],"responseType":"yaml","llm":{"model":"deepseek-r1:8b","configuration":{"baseURL":"http://127.0.0.1:11434/v1"}}},"transform":{"resizable":true},"handle":{"input":[[{"id":"79cce85d-1231-56fa-9afb-afb06b1c5b53","label":"[连接点]","value":"[连接点]","type":"connect"}],[{"inputType":"string","value":"$$INPUT$$","label":"$$INPUT$$","id":"37a4a359-eb86-5910-8c4f-d11807b71806"}],[{"id":"7180a96d-8b27-5622-96fa-df424852d22a","label":"JsonSchema","value":"[JsonSchema]","inputType":"schema","optional":true}],[]],"output":[[{"id":"cadc4460-717a-5622-84c3-05010d832f13","label":"输出","value":"default"}],[{"id":"b20f4f67-092b-5b7b-8ef2-f7959d740253","label":"原始输出","value":"[Origin]"}]]},"value":[{"role":"system","content":[{"text":"- Role: 生命科学与疾病治疗领域的自然语言处理专家\n- Background: 用户在生命科学和疾病治疗领域需要从文本中提取关键信息,包括实体、实体之间的关系以及文本的主要概念和主题。这些信息对于研究、临床诊断和治疗方案的制定至关重要。\n- Profile: 你是一位在生命科学和疾病治疗领域具有深厚专业知识的自然语言处理专家,能够精准识别和提取文本中的关键信息,包括疾病名称、治疗方法、药物名称、临床试验结果等。\n- Skills: 你具备强大的文本分析能力、对生命科学和医学术语的精准理解,以及从复杂文本中提取关键信息的技能,能够区分高层次的概念和低层次的具体细节。\n- Goals: 根据输入的`实体类型`和`文本`内容,从`文本`中识别所有符合`实体类型`的`实体`,并确定它们之间的关系,同时提取文本的主要概念和主题。\n- Constrains: 提取的关键词和关系应严格限定在生命科学和疾病治疗领域,避免无关信息的干扰,确保关键词的准确性和专业性。\n- OutputFormat: 以YAML格式输出,明确区分`实体`、`实体联系`和`关键词`。\n- Workflow:\n  1. 仔细阅读输入的文本,理解其在生命科学和疾病治疗领域的背景和语义。\n  2. 识别并提取文本中的高层次关键词,这些关键词应反映整体的概念、主题或研究方向。\n  3. 识别并提取文本中的低层次关键词,这些关键词应指向具体的实体、细节或专业术语。\n  4. 确定实体之间的关系,包括关系的描述、强度和关键词。   \n                         \n## 举例\n\n### 例子1\n\n#### 输入\n\n```yaml\nentity_type:\n  - 基因\n  - 蛋白\n  - 细胞\n  - 信号通路\n  - 疾病\n  - 转录因子\n  - 酶\n  - 代谢物\ntext: 科学家通过基因编辑技术敲除了某基因(GeneX),发现该基因的敲除显著影响了细胞的增殖能力。进一步研究发现,GeneX通过调控转录因子TF1的表达,影响了细胞周期相关蛋白CyclinD1的合成。CyclinD1是细胞周期信号通路中的关键蛋白,其表达水平的下降导致细胞周期停滞在G1期。此外,GeneX的敲除还导致细胞内代谢物Met1的积累,Met1通过激活AMPK信号通路,进一步抑制了细胞的增殖。最终,研究团队发现GeneX的异常表达与癌症的发生密切相关。\n```\n\n#### 输出\n\n```yaml\nentity:\n   - name: GeneX\n    type: 基因\n    description: GeneX的敲除显著影响了细胞的增殖能力,通过调控转录因子TF1的表达,影响细胞周期相关蛋白CyclinD1的合成。GeneX的异常表达与癌症的发生密切相关。\n\n  - name: TF1\n    type: 转录因子\n    description: TF1是受GeneX调控的转录因子,其表达水平影响细胞周期相关蛋白CyclinD1的合成。\n\n  - name: CyclinD1\n    type: 蛋白\n    description: CyclinD1是细胞周期信号通路中的关键蛋白,其表达水平的下降导致细胞周期停滞在G1期。\n\n  - name: Met1\n    type: 代谢物\n    description: Met1是细胞内的代谢物,GeneX敲除后Met1积累,通过激活AMPK信号通路抑制细胞增殖。\n\n  - name: AMPK信号通路\n    type: 信号通路\n    description: AMPK信号通路被Met1激活,进一步抑制细胞的增殖。\n\n  - name: 癌症\n    type: 疾病\n    description: GeneX的异常表达与癌症的发生密切相关。\nentity_relation:\n    - source: GeneX\n    target: TF1\n    description: GeneX通过调控转录因子TF1的表达,影响细胞周期相关蛋白CyclinD1的合成。\n    strength: 9\n    keywords: 基因调控,转录因子\n\n  - source: TF1\n    target: CyclinD1\n    description: TF1调控CyclinD1的表达,CyclinD1是细胞周期信号通路中的关键蛋白。\n    strength: 8\n    keywords: 转录调控,细胞周期\n\n  - source: GeneX\n    target: Met1\n    description: GeneX敲除导致代谢物Met1积累,Met1通过激活AMPK信号通路抑制细胞增殖。\n    strength: 8\n    keywords: 基因敲除,代谢物积累\n\n  - source: Met1\n    target: AMPK信号通路\n    description: Met1激活AMPK信号通路,进一步抑制细胞增殖。\n    strength: 7\n    keywords: 代谢物,信号通路\n\n  - source: GeneX\n    target: 癌症\n    description: GeneX的异常表达与癌症的发生密切相关。\n    strength: 9\n    keywords: 基因异常,癌症\nkeyword:\n   - 基因编辑\n  - 细胞增殖\n  - 代谢物\n  - 信号通路\n  - 癌症\n```\n\n### 例子2\n\n#### 输入\n\n```yaml\nentity_type:\n   - 细胞\n  - 酶\n  - 信号通路\n  - 组织\n  - 激素\n  - 受体\n  - 配体\n  - 生物过程\ntext:  研究团队发现,在胰岛素信号通路中,胰岛素通过与细胞表面的胰岛素受体结合,激活下游的PI3K-Akt信号通路。Akt激酶的激活促进了葡萄糖转运蛋白GLUT4的表达,GLUT4将葡萄糖从细胞外转运到细胞内,从而降低血糖水平。此外,Akt还通过磷酸化FoxO1转录因子,抑制其进入细胞核,减少糖异生相关酶的表达。这一过程在肝脏组织中尤为重要,因为肝脏是糖异生的主要场所。研究还发现,胰岛素抵抗会导致胰岛素信号通路的异常,进而引发2型糖尿病。\n```\n\n#### 输出\n\n```yaml\nentity:\n  - name: 胰岛素\n    type: 激素\n    description: 胰岛素通过与细胞表面的胰岛素受体结合,激活下游的PI3K-Akt信号通路,促进葡萄糖转运蛋白GLUT4的表达,降低血糖水平。\n\n  - name: 胰岛素受体\n    type: 受体\n    description: 胰岛素受体位于细胞表面,与胰岛素结合后激活下游的PI3K-Akt信号通路。\n\n  - name: PI3K-Akt信号通路\n    type: 信号通路\n    description: PI3K-Akt信号通路被胰岛素激活,促进葡萄糖转运蛋白GLUT4的表达,降低血糖水平。\n\n  - name: GLUT4\n    type: 蛋白\n    description: GLUT4是葡萄糖转运蛋白,将葡萄糖从细胞外转运到细胞内,降低血糖水平。\n\n  - name: FoxO1\n    type: 转录因子\n    description: FoxO1是糖异生相关转录因子,Akt通过磷酸化FoxO1抑制其进入细胞核,减少糖异生相关酶的表达。\n\n  - name: 肝脏\n    type: 组织\n    description: 肝脏是糖异生的主要场所,Akt通过抑制FoxO1减少糖异生相关酶的表达。\n\n  - name: 2型糖尿病\n    type: 疾病\n    description: 胰岛素抵抗导致胰岛素信号通路异常,引发2型糖尿病。\nentity_relation:\n    - source: 胰岛素\n    target: 胰岛素受体\n    description: 胰岛素通过与胰岛素受体结合,激活下游的PI3K-Akt信号通路。\n    strength: 10\n    keywords: 激素,受体\n\n  - source: 胰岛素受体\n    target: PI3K-Akt信号通路\n    description: 胰岛素受体激活PI3K-Akt信号通路,促进葡萄糖转运蛋白GLUT4的表达。\n    strength: 9\n    keywords: 受体,信号通路\n\n  - source: PI3K-Akt信号通路\n    target: GLUT4\n    description: PI3K-Akt信号通路促进GLUT4的表达,降低血糖水平。\n    strength: 8\n    keywords: 信号通路,葡萄糖转运\n\n  - source: PI3K-Akt信号通路\n    target: FoxO1\n    description: Akt通过磷酸化FoxO1抑制其进入细胞核,减少糖异生相关酶的表达。\n    strength: 8\n    keywords: 信号通路,转录因子\n\n  - source: FoxO1\n    target: 肝脏\n    description: FoxO1在肝脏中调控糖异生相关酶的表达。\n    strength: 7\n    keywords: 转录因子,糖异生\n\n  - source: 胰岛素信号通路\n    target: 2型糖尿病\n    description: 胰岛素抵抗导致胰岛素信号通路异常,引发2型糖尿病。\n    strength: 9\n    keywords: 信号通路异常,糖尿病\n\nkeyword:\n  - 胰岛素信号通路\n  - 糖异生\n  - 葡萄糖转运\n  - 胰岛素抵抗\n  - 2型糖尿病\n```\n","type":"text"}]},{"role":"user","content":[{"text":"{{$$INPUT$$}}","type":"text"}]}],"title":"对话"},"width":990,"type":"chat","measured":{"width":990,"height":1220},"selected":true,"height":1220,"resizing":false,"className":"","dragging":false},{"position":{"x":2290,"y":405},"id":"1763ef5e-7820-41a9-ab4b-00456de7c8bf","data":{"transform":{"resizable":true},"handle":{"input":[[{"id":"79cce85d-1231-56fa-9afb-afb06b1c5b53","label":"[连接点]","value":"[连接点]","type":"connect"}],[{"id":"5dc38f6c-ce89-5f0a-8515-a804af573418","label":"input","value":"input","inputType":"object"}]],"output":[[{"id":"cadc4460-717a-5622-84c3-05010d832f13","label":"输出","value":"default"}],[{"id":"dfea87a6-0a95-56f3-b399-5816b3952f99","label":"schemaString","value":"schemaString","inputType":"object"}]]},"value":"let z = util.zod;\n  let define = z.object({\n    entity: z.object({\n      name: z.string().describe('实体名称').max(50),\n      type: z.enum(parameters.input.value['entityTypeList']).describe('实体类型'),\n      description: z.string().describe('对实体属性和活动的准确描述').max(200)\n    }).describe('实体信息').array().max(10),\n    entity_relation: z.object({\n      source: z.string().describe('来源实体名称').max(50),\n      target: z.string().describe('目标实体名称').max(50),\n      description: z.string().describe('解释为什么认为来源实体和目标实体之间存在关系').max(200),\n      strength: z.number().describe('来源实体与目标实体之间的关系强度,0为最低,10为最高').optional(),\n      keywords: z.string().array().optional()\n    }).describe('实体之间的联系').array().max(15),\n    keyword: z.string().describe('整个文本的主要概念、主题或话题的高层次关键词').array().max(10).optional()\n  })\n  return async (outputName) => {\n    if (outputName === 'schemaString') {\n      return { value: JSON.stringify(util.zodToJsonSchema(define)) }\n    }\n    return { value: { name: 'result', schema: util.zodToJsonSchema(define) }, extra: undefined }\n  }","title":"代码","config":{},"input":["input"],"output":["schemaString"]},"width":350,"type":"script","measured":{"width":350,"height":463},"className":"","selected":true,"dragging":false,"height":463,"resizing":false},{"position":{"x":3300,"y":-335},"id":"08c9081f-bb7b-44e2-a052-88049fac8b3a","data":{"config":{"examples":[],"responseType":"yaml","parseBy":"json","llm":{"model":"deepseek-r1:8b","configuration":{"baseURL":"http://127.0.0.1:11434/v1"}}},"transform":{"resizable":true},"handle":{"input":[[{"id":"79cce85d-1231-56fa-9afb-afb06b1c5b53","label":"[连接点]","value":"[连接点]","type":"connect"}],[{"inputType":"string","value":"jsonSchemaString","label":"jsonSchemaString","id":"d8313632-36b6-55c5-960f-d4f4b55b805d"},{"inputType":"string","value":"$$INPUT$$","label":"$$INPUT$$","id":"37a4a359-eb86-5910-8c4f-d11807b71806"}],[{"id":"7180a96d-8b27-5622-96fa-df424852d22a","label":"JsonSchema","value":"[JsonSchema]","inputType":"schema","optional":true}],[]],"output":[[{"id":"cadc4460-717a-5622-84c3-05010d832f13","label":"输出","value":"default"}],[{"id":"b20f4f67-092b-5b7b-8ef2-f7959d740253","label":"原始输出","value":"[Origin]"}]]},"value":[{"role":"system","content":[{"text":"请将输入内容按照指定格式提取\n\n{{jsonSchemaString}}\n","type":"text"}]},{"role":"user","content":[{"text":"{{$$INPUT$$}}","type":"text"}]}],"title":"对话"},"width":990,"type":"chat","measured":{"width":990,"height":1220},"selected":true,"height":1220,"resizing":false,"className":"","dragging":false}],"edges":[{"source":"71e69c3a-3785-45c8-bee5-ea7f7e6a7e5a","sourceHandle":"cadc4460-717a-5622-84c3-05010d832f13","target":"012b77c9-d91c-472c-a2fa-1d5e73f9889a","targetHandle":"8d4e9297-8c13-5b16-8317-ad350d05b26e","markerEnd":{"type":"arrowclosed","strokeWidth":2},"interactionWidth":4,"id":"xy-edge__71e69c3a-3785-45c8-bee5-ea7f7e6a7e5acadc4460-717a-5622-84c3-05010d832f13-012b77c9-d91c-472c-a2fa-1d5e73f9889a8d4e9297-8c13-5b16-8317-ad350d05b26e","selected":true},{"source":"012b77c9-d91c-472c-a2fa-1d5e73f9889a","sourceHandle":"cadc4460-717a-5622-84c3-05010d832f13","target":"a2a62510-9cf2-4d88-b2f4-1363268024c4","targetHandle":"37a4a359-eb86-5910-8c4f-d11807b71806","markerEnd":{"type":"arrowclosed","strokeWidth":2},"interactionWidth":4,"id":"xy-edge__012b77c9-d91c-472c-a2fa-1d5e73f9889acadc4460-717a-5622-84c3-05010d832f13-a2a62510-9cf2-4d88-b2f4-1363268024c437a4a359-eb86-5910-8c4f-d11807b71806","selected":true},{"source":"a2a62510-9cf2-4d88-b2f4-1363268024c4","sourceHandle":"cadc4460-717a-5622-84c3-05010d832f13","target":"08c9081f-bb7b-44e2-a052-88049fac8b3a","targetHandle":"37a4a359-eb86-5910-8c4f-d11807b71806","markerEnd":{"type":"arrowclosed","strokeWidth":2},"interactionWidth":4,"id":"xy-edge__a2a62510-9cf2-4d88-b2f4-1363268024c4cadc4460-717a-5622-84c3-05010d832f13-08c9081f-bb7b-44e2-a052-88049fac8b3a37a4a359-eb86-5910-8c4f-d11807b71806","selected":true},{"source":"1763ef5e-7820-41a9-ab4b-00456de7c8bf","sourceHandle":"cadc4460-717a-5622-84c3-05010d832f13","target":"08c9081f-bb7b-44e2-a052-88049fac8b3a","targetHandle":"7180a96d-8b27-5622-96fa-df424852d22a","markerEnd":{"type":"arrowclosed","strokeWidth":2},"interactionWidth":4,"id":"xy-edge__1763ef5e-7820-41a9-ab4b-00456de7c8bfcadc4460-717a-5622-84c3-05010d832f13-08c9081f-bb7b-44e2-a052-88049fac8b3a7180a96d-8b27-5622-96fa-df424852d22a","selected":true},{"source":"71e69c3a-3785-45c8-bee5-ea7f7e6a7e5a","sourceHandle":"cadc4460-717a-5622-84c3-05010d832f13","target":"1763ef5e-7820-41a9-ab4b-00456de7c8bf","targetHandle":"5dc38f6c-ce89-5f0a-8515-a804af573418","markerEnd":{"type":"arrowclosed","strokeWidth":2},"interactionWidth":4,"selected":true,"id":"xy-edge__71e69c3a-3785-45c8-bee5-ea7f7e6a7e5acadc4460-717a-5622-84c3-05010d832f13-1763ef5e-7820-41a9-ab4b-00456de7c8bf5dc38f6c-ce89-5f0a-8515-a804af573418"},{"source":"1763ef5e-7820-41a9-ab4b-00456de7c8bf","sourceHandle":"dfea87a6-0a95-56f3-b399-5816b3952f99","target":"08c9081f-bb7b-44e2-a052-88049fac8b3a","targetHandle":"d8313632-36b6-55c5-960f-d4f4b55b805d","markerEnd":{"type":"arrowclosed","strokeWidth":2},"interactionWidth":4,"id":"xy-edge__1763ef5e-7820-41a9-ab4b-00456de7c8bfdfea87a6-0a95-56f3-b399-5816b3952f99-08c9081f-bb7b-44e2-a052-88049fac8b3ad8313632-36b6-55c5-960f-d4f4b55b805d","selected":true}]}}

这回确定了,全部节点

代码问题.抱歉…正在解决

1.98.16已经修复
另外我发现您还在用deepseek-r1.首先第一点不建议用8b.8b是llama微调的,中文差一点(当然,这是我自己的理解),第二就是提取时强制Json格式化用deepseek-r1效果可能会差一些(也是我自己理解,因为deepseek的模型都是有think的,而强制json表示强行去掉think,那么就有可能出现一些性能问题)

但是如果第一步用deepseek,第二步用qwen的话,又存在模型切换问题,效率又会降低…这个需要自己斟酌

工作流编辑现在会正常响应,不需要重启配置才能生效(之前的时候缓存有问题,会固定缓存第一次请求)

谢谢博主,我会在两个模型之间在测试一下效果,那个好,我就用那个

我更新到新的版本后,还需要更改工作流吗?

不需要…除非是需要微调提示词


我发现昨天的两步提取,提取到了关键词,但是转化格式时没有了


我测试了一下没修改的,发现关键词部分都没了,所以应该是你昨天修复代码时,丢掉了


我安装了NEO4J这个插件,也启动了NEO4J数据库,但是并没有实体和关系插入

没改过关键词,可能是模型的提取有问题,您可以看看对话历史,看看最后一步出来的结果包不包括关键词,如果不包括那么就是模型的问题

neo4j只是一个demo,相关问题您可以去代码库中查看(个人没精力维护这个,只是保证这个方案可以跑通)

反馈一下,我试三个模型qwen2.5:7b,deepseek-r1:7b和deepseek-r1:8b,结果都是关键词缺失

我的意思是,您看下对话历史,历史中是否有关键词,如果说历史中存在,但是写入不存在,那么是软件的问题,如果不是的话,那就是提取的问题

您首先要确定,最后一次提取是否真的返回了关键词

如果说第一步返回有,第二步没有,那么您可以尝试优化第二步的schema(代码借点),和提示词
如果说第二步有,但是没插入的话,我才需要调整代码修复


是有关键词的

您这个确实没有,您看下那个关键词的结构,是独立的,而不是在entity_relation中的,您可以看下我发的截图,里面的字段位置