当前位置: 首页 > news >正文

c语言自学免费网站福安城乡建设与规划局网站

c语言自学免费网站,福安城乡建设与规划局网站,在iis搭建网站,定制杯子一、ChatGPT结合知识图谱 上篇文章对医疗数据集进行了整理#xff0c;并写入了知识图谱中#xff0c;本篇文章将结合 ChatGPT 构建基于知识图谱的问答应用。 下面是上篇文章的地址#xff1a; ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱 这里实现问答的流程…一、ChatGPT结合知识图谱 上篇文章对医疗数据集进行了整理并写入了知识图谱中本篇文章将结合 ChatGPT 构建基于知识图谱的问答应用。 下面是上篇文章的地址 ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱 这里实现问答的流程如下所示 二、问答流程构建 opencypher_llm.py 根据问题理解生成 opencypher 语句 import os from langchain.chat_models import ChatOpenAI from langchain.schema import HumanMessage, SystemMessage from langchain.output_parsers import StructuredOutputParser, ResponseSchema import jsonclass OpenCypherLLM():def __init__(self):# 输出格式化self.response_schemas [ResponseSchema(nameopenCypher, description生成的 OpenCypher 检索语句)]self.output_parser StructuredOutputParser.from_response_schemas(self.response_schemas)self.format_instructions self.output_parser.get_format_instructions()# prompt 模版self.prompt 你是一个知识图谱方面的专家, 现有一个医疗相关的知识图谱,图谱中的实体解释如下\n--------------disease疾病,存储着各种疾病的基础信息\ndepartment科室疾病所对应的科室\nsymptom疾病的症状\ncureWay疾病的治疗方式\ncheck疾病的检查项目\ndrug疾病的用药\ncrowd疾病易感染人群\nfood食物包括宜吃和忌吃食物\n--------------\n实体与实体之间的关系如下,每个关系都可以是双向的,v表示实体、e表示关系\n--------------\n疾病科室关系(v:disease)-[e:diseaseDepartmentRelations]-(v:department);疾病症状关系(v:disease)-[e:diseaseSymptomRelation]-(v:symptom);疾病治疗关系(v:disease)-[e:diseaseCureWayRelation]-(v:cureWay);疾病检查项目关系(v:disease)-[e:diseaseCheckRelation]-(v:check);疾病用药关系(v:disease)-[e:diseaseDrugRelation]-(v:drug);疾病易感染人群关系(v:disease)-[e:diseaseCrowdRelation]-(v:crowd);疾病宜吃食物关系(v:disease)-[e:diseaseSuitableFoodRelation]-(v:food);疾病忌吃食物关系(v:disease)-[e:diseaseTabooFoodRelation]-(v:food);疾病并发症关系(v:disease)-[e:diseaseDiseaseRelation]-(v:disease);--------------\n实体中的主要属性信息如下\n--------------\ndisease: {name:疾病名称,desc:疾病简介,prevent:预防措施,cause:疾病病因,get_prob:发病率,get_way:传染性,cure_lasttime:治疗周期,cured_prob:治愈概率,cost_money:大概花费}\ndepartment: {name:科室名称}\nsymptom: {name:疾病症状}\ncureWay: {name:治疗方式}\ncheck: {name:检查项目}\ndrug: {name:药物名称}\ncrowd: {name:感染人群}\nfood: {name:食物}\n--------------根据以上背景结合用户输入的问题生成 OpenCypher 图谱检索语句可以精准检索到相关的知识信息作为背景。\n注意: 仅使用上述提供的实体、关系、属性信息不要使用额外未提供的内容。实体与实体之间的关系仅使用背景给出的关系\nself.prompt self.prompt self.format_instructionsself.chat ChatOpenAI(temperature1, model_namegpt-3.5-turbo)def run(self, questions):res self.chat([SystemMessage(contentself.prompt),HumanMessage(content用户输入问题 questions)])res res.contentres res.replace(json, ).replace(, )res json.loads(res)return res[openCypher] gc_llm.py 根据检索结果总结答案 import os from langchain.chat_models import ChatOpenAI from langchain.schema import HumanMessage, SystemMessage from langchain import PromptTemplateclass GCLLM():def __init__(self):# prompt 模版self.template 你是一个知识图谱方面的专家,图谱中的基本信息如下\n--------------disease疾病实体,存储着各种疾病的基础信息\ndepartment科室疾病所对应的科室\nsymptom疾病的症状\ncureWay疾病的治疗方式\ncheck疾病的检查项目\ndrug疾病的用药\ncrowd疾病易感染人群\nfood食物存吃包括宜吃和忌吃食物\n--------------\n上一步你生成的 OpenCypher 语句为--------------\n{OpenCypher}--------------\nOpenCypher 语句查询的结果如下--------------\n{content}--------------\n结合上述背景并回答用户问题如果提供的背景和用户问题没有相关性则回答 “这个问题我还不知道怎么回答”注意最后直接回复用户问题即可不要添加 根据查询结果 等类似的修饰词self.prompt PromptTemplate(input_variables[OpenCypher, content],templateself.template,)self.chat ChatOpenAI(temperature1, model_namegpt-3.5-turbo)def run(self, OpenCypher, content, questions):res self.chat([SystemMessage(contentself.prompt.format(OpenCypherOpenCypher, contentcontent)),HumanMessage(content用户输入问题 questions)])return res.content 过程整合 from py2neo import Graph from opencypher_llm import OpenCypherLLM from gc_llm import GCLLM import osclass QA():def __init__(self, kg_host, kg_port, kg_user, kg_password):self.graph Graph(hostkg_host,http_portkg_port,userkg_user,passwordkg_password)self.openCypherLLM OpenCypherLLM()self.gcLLM GCLLM()def execOpenCypher(self, cql):if limit not in cql and LIMIT not in cql:cql cql LIMIT 10 res self.graph.run(cql)list []for record in res:list.append(str(record))if len(list) 0:return return \n.join(list)def run(self, questions):if not questions or questions :return 输入问题为空无法做出回答# 生成检索语句openCypher self.openCypherLLM.run(questions)if not openCypher or openCypher :return 这个问题我还不知道怎么回答print(生成的CQL)print(openCypher)# 执行检索res self.execOpenCypher(openCypher)print(查询图谱结果)print(res)if not res or res :return 这个问题我还不知道怎么回答return self.gcLLM.run(openCypher, res, questions)if __name__ __main__:kg_host 127.0.0.1kg_port 7474kg_user neo4jkg_password 123456qa QA(kg_host, kg_port, kg_user, kg_password)while True:questions input(请输入问题: \n )if questions q:breakres qa.run(questions)print(问题回答结果)print(res)三、效果测试 1. 鼻炎的症状有哪些 2. 鼻炎的治疗周期多久 3. 鼻炎不适合吃什么东西 3. 和鼻炎有类似症状的病有哪些 4. 鼻炎应该检查哪些项目 四、总结 上面基于医疗的知识图谱大致实现了问答的过程可以感觉出加入ChatGPT后实现的流程非常简单但上述流程也还有需要优化的地方例如用户输入疾病错别字的情况如果 ChatGPT 没有更正有可能导致检索为空还有就是有些疾病可能有多个名称但名称不在图谱中导致检索失败等等后面可以考虑加入语义相似度的检索。
http://www.zqtcl.cn/news/280401/

相关文章:

  • 苏州建网站必去苏州聚尚网络网页视频提取在线工具
  • 网站建设服务市场分析百度集团
  • 网站怎么企业备案信息做网站业务员如何跟客户沟通
  • 如何网站推广知名的集团门户网站建设费用
  • 网站入口设计规范专门做喷涂设备的网站
  • 最简单网站开发软件有哪些企业管理培训课程培训机构
  • 桂城网站制作公司wordpress 导航网站
  • 一个公司做网站需要注意什么条件网站备案 登陆
  • 百度网站介绍显示图片装修公司一般多少钱一平方
  • 网站销售如何做业绩我找伟宏篷布我做的事ko家的网站
  • 建立网站有哪些步骤?jsp网站开发详细教程
  • 网站怎么做直播功能旅游做攻略用什么网站
  • 企业外贸营销型网站如何写好软文推广
  • 免费建站的网址个人网站建设程序设计
  • 淘宝网站建设违规吗上海大公司
  • 大淘客怎么自己做网站自己开网站能赚钱吗
  • 大型门户网站开发北京网站建设管庄
  • 大连建设工程网站网站建设组织管理怎么写
  • wordpress英文站注册域名需要注意什么
  • 营销型网站的建设重点是什么深圳logo设计公司排名
  • 做网站的用什么软件呢网站排名优化服务公司
  • 网站开发完整视频网站集约化建设较好的城市
  • 网站建设和平面设计应用网站如何做
  • 自己做网站需要多少费用asa8.4 做网站映射
  • 商业网站 模板黑龙江省建设厅安全员考试
  • 网站新备案不能访问室内装修网站模板
  • 工程师报考网站wordpress设置视频图片不显示图片
  • 徐州网站建设公司排名成都住建平台
  • 用来备案企业网站国外免费外贸网站
  • 网页背景做的比较好的网站做一个企业网站价格