位置: IT常识 - 正文

LangChain与大型语言模型(LLMs)应用基础教程:信息抽取

编辑:rootadmin
LangChain与大型语言模型(LLMs)应用基础教程:信息抽取

推荐整理分享LangChain与大型语言模型(LLMs)应用基础教程:信息抽取,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

LangChain是大型语言模型(LLM)的应用框架,LangChain可以直接与 OpenAI 的 text-davinci-003、gpt-3.5-turbo 模型以及 Hugging Face 的各种开源语言模如 Google 的 flan-t5等模型集成。通过使用LangChain可以开发出更为强大和高效的LLM的各种应用。

信息抽取

我们给LLM提供一篇文章,我们希望LLM能帮我们把文章的主要内容罗列出来,文字尽量精简,简明扼要,如果想达到这样的目的,通过调用LLM提供的API似乎也能实现,但是Prompt可能会比较复杂,要把prompt写清楚,让LLM能够理解您的意图,可能也不是一件容易的事情。此时如果我们使用Langchain的prompt模板可以轻松完成类似的工作。

首先安装必要的python包

pip -q install openai langchainfrom langchain.prompts import PromptTemplatefrom langchain.llms import OpenAIChatfrom langchain.chains import LLMChainimport os#你申请的openai的api keyos.environ['OPENAI_API_KEY'] = 'xxxxxxxx'

这里我们有一段关于阿尔茨海默病的文本描述,我们希望llmn能够从中提炼出有价值的信息,为此我们需要定义一个prompt模板,将文本信息作为一个变量存储在模板中,这样我们每次只要更换不同的文本信息就可以就可以实现让llm从中提取关键信息的功能,而不必每次都要告诉llm它应该做什么事情。

text="阿尔茨海默病(Alzheimer's disease, AD),俗称老年痴呆症,是一种全身性神经退行性疾病,它是由大脑神经退行性变性引起的,\主要表现为记忆力减退、思维能力减退、行为变化等。阿尔茨海默病的原因尚不十分清楚,但是研究表明,阿尔茨海默病可能与遗传因素、环境因素、\营养不良、压力过大、不良生活习惯等有关。根据世界卫生组织的统计数据,全球有超过4700万人患有阿尔茨海默病,其中美国有超过600万人患有阿尔茨海默病,\欧洲有超过1000万人患有阿尔茨海默病,亚洲有超过2500万人患有阿尔茨海默病,其中中国有超过1000万人患有阿尔茨海默病。阿尔茨海默病的发病率与年龄有关,\随着年龄的增长而增加,65岁以上的人群为主要受害群体,占比高达80%,其中45-65岁的人群占比为15%,20-45岁的人群占比为5%。65岁以上的人群发病率约为10%,\75岁以上的人群发病率约为20%,85岁以上的人群发病率约为30%。根据统计,男性患病率高于女性,男性患病比例为1.4:1,即男性患病率比女性高出40%。\根据统计,阿尔茨海默病在不同的人种中分布情况也有所不同。白人患病率最高,占总患病率的70%,黑人患病率次之,占总患病率的20%,\其他少数民族患病率最低,占总患病率的10%。阿尔茨海默病在不同的饮食习惯中分布情况也有所不同。维生素B12缺乏的人群患病率更高,\而均衡膳食的人群患病率较低。阿尔茨海默病不仅会给患者带来记忆力减退、思维能力减退、行为变化等症状,还会给患者的家庭带来巨大的心理负担。\因此,患者应尽快就医,及时进行治疗。治疗阿尔茨海默病的方法有药物治疗、行为治疗、认知行为治疗等,具体治疗方案要根据患者的具体情况而定。"#加载openai的llmllm = OpenAIChat(model_name="gpt-3.5-turbo")#创建模板fact_extraction_prompt = PromptTemplate( input_variables=["text_input"], template="从下面的本文中提取关键事实。尽量使用文本中的统计数据来说明事实:\n\n {text_input}")#定义chainfact_extraction_chain = LLMChain(llm=llm, prompt=fact_extraction_prompt)facts = fact_extraction_chain.run(text)print(facts)

 给出治疗方案

我们让llm从一大堆文本信息中抽取了关键信息,我们让llm根据这些关键信息给出治疗建议,下面我们需要再建一个prompt模板,把提取的关键信息作为变量存储在该模板中。

doctor_prompt = PromptTemplate( input_variables=["facts"], template="你是神经内科医生。根据以下阿尔茨海默病的事实统计列表,为您的病人写一个简短的预防阿尔茨海默病的建议。 不要遗漏关键信息:\n\n {facts}")定义chaindoctor_chain = LLMChain(llm=llm, prompt=doctor_prompt)doctor_suggest = doctor_chain.run(facts)print(doctor_suggest)

 把不同的Chain整合在一起

前面我们定义了两个Chain,一个用来从文本中抽取关键信息,另一个根据抽取的关键信息给出治疗建议,这里我们还可以把这两个Chain整合在一起,让它可以自动完成这两个工作:

from langchain.chains import SimpleSequentialChain, SequentialChain#定义SimpleSequentialChainfull_chain = SimpleSequentialChain(chains=[fact_extraction_chain, doctor_chain], verbose=True)response = full_chain.run(text)LangChain与大型语言模型(LLMs)应用基础教程:信息抽取

 API Chain

我们知道像ChatGPT这样的大型语言模型是非常强大的,不过由于它们目前学到的都是2022年之前的知识,对于2022年之后发生的事情它们可能一无所知,所以仍然有一些简单的基础性问题它也无法回答,比如您问ChatGPT当前的时间,当前的天气情况等,它仍然无法给出正确答案,不过LangChain和LLm集成以后,可以通过访问第三方提供的API来获取我们需要的信息,并把这些信息喂给llm,这样llm就可以从中提炼出我们需要的内容和格式输出给我们。下面我们通过一个例子来说明如何让Langchain调用第三方机构的api,并返回结果给ChatGPT,最后ChatGPT按照正确的格式输出我们想要的内容。

这里,我们向ChatGPT询问上海当前的温度,一般情况下ChatGPT是无法给出正确的答案。

from langchain.llms import OpenAIChatfrom langchain.chains.api.prompt import API_RESPONSE_PROMPTfrom langchain.chains import APIChainfrom langchain.prompts.prompt import PromptTemplatefrom langchain.chains.api import open_meteo_docsllm = OpenAIChat(model_name="gpt-3.5-turbo")chain_new = APIChain.from_llm_and_api_docs(llm,open_meteo_docs.OPEN_METEO_DOCS,verbose=True)#我们向ChatGPT询问上海当前的温度chain_new.run('上海现在的温度是多少摄氏度?')

 我们可以看到langchain的APIChain首先访问了第三方(open-meteo.com)的天气预报API,然后返回一大堆天气预报的信息,但是信息需要通过ChatGPT来解析后再返回给用户他们需要的内容:

API 调用地址:https://api.open-meteo.com/v1/forecast?latitude=31.2304&longitude=121.4737&hourly=temperature_2m&current_weather=true&temperature_unit=celsius

API 返回信息:

 ChatGPT返回信息:

不过目前ChatGPT根据API调用结果返回的信息还是英文的。虽然实现了我们的要求,但还是有点瑕疵。

总结

今天我们学习了如何利用langchain的chain结合LLM来提取文本信息中的关键内容,然后通过另外一个chain根据这些关键信息给出治疗疾病的建议,最后我们把这两个chain整合为一个更为强大的Chain,它可以自动完成这两份工作。另外我们还介绍了langchain的API Chain,通过让api chain调用第三方提供的API, 我们可以让ChatGPT回答一些以前无法回答的问题。

参考资料

LangChain 官方文档

本文链接地址:https://www.jiuchutong.com/zhishi/293128.html 转载请保留说明!

上一篇:日落时的悬日现象,美国芝加哥 (© Razvan Sera/Amazing Aerial Agency)(日落时有什么变化)

下一篇:GPT模型总结【模型结构及计算过程_详细说明】(gpt详解)

  • AR增强现实技术在市场营销中的应用方法(ar增强现实技术定做)

    AR增强现实技术在市场营销中的应用方法(ar增强现实技术定做)

  • 小米妙播支持哪些机型(小米妙播支持哪些平台)

    小米妙播支持哪些机型(小米妙播支持哪些平台)

  • vivox70怎么设置返回键(vivox70怎么设置定时开关机)

    vivox70怎么设置返回键(vivox70怎么设置定时开关机)

  • 荣耀v30pro耳机孔在哪个位置呢(荣耀v30pro手机耳机孔)

    荣耀v30pro耳机孔在哪个位置呢(荣耀v30pro手机耳机孔)

  • 怎么查看抖音好友在线(怎么查看抖音好友在线状态)

    怎么查看抖音好友在线(怎么查看抖音好友在线状态)

  • 拼多多三级惩罚是多久(拼多多三级惩罚多长时间解除)

    拼多多三级惩罚是多久(拼多多三级惩罚多长时间解除)

  • 笔记本箭头触摸不动了(笔记本箭头触摸失灵)

    笔记本箭头触摸不动了(笔记本箭头触摸失灵)

  • 网易云直播粉团怎么掉了(网易云粉团是什么意思)

    网易云直播粉团怎么掉了(网易云粉团是什么意思)

  • 钉钉直播点赞有什么用(钉钉直播点赞有没有钱收益)

    钉钉直播点赞有什么用(钉钉直播点赞有没有钱收益)

  • 座机怎么回拨已接来电(座机电话怎么回拨)

    座机怎么回拨已接来电(座机电话怎么回拨)

  • 移除粉丝怎么加回来(移除粉丝在哪)

    移除粉丝怎么加回来(移除粉丝在哪)

  • qq手机和电脑为什么不能同时登录(qq手机和电脑为什么同步)

    qq手机和电脑为什么不能同时登录(qq手机和电脑为什么同步)

  • 已下载描述文件怎么删除(苹果怎么删除已下载描述文件)

    已下载描述文件怎么删除(苹果怎么删除已下载描述文件)

  • 卡贴如何安装(卡贴安装教程视频)

    卡贴如何安装(卡贴安装教程视频)

  • win10输完密码一直转圈(win10输完密码一直转圈圈安全模式进不去)

    win10输完密码一直转圈(win10输完密码一直转圈圈安全模式进不去)

  • ios13的字体从哪里下载(ios13字体大小设置方法)

    ios13的字体从哪里下载(ios13字体大小设置方法)

  • 显示器响应时间重要吗(显示器响应时间怎么测试)

    显示器响应时间重要吗(显示器响应时间怎么测试)

  • 小米9怎么设置开机动画(小米9怎么设置返回键)

    小米9怎么设置开机动画(小米9怎么设置返回键)

  • 万顺车主怎么接单(万顺车主怎么接单赚钱)

    万顺车主怎么接单(万顺车主怎么接单赚钱)

  • 360浏览器如何开启极速模式(360浏览器如何开启常搜打开)

    360浏览器如何开启极速模式(360浏览器如何开启常搜打开)

  • 使用最新版本的Windows7升级顾问2.0的方法(使用最新版本的浏览器可以防御黑客)

    使用最新版本的Windows7升级顾问2.0的方法(使用最新版本的浏览器可以防御黑客)

  • web前端期末大作业实例 (1500套) 集合(web前端期末大作业旅游页面)

    web前端期末大作业实例 (1500套) 集合(web前端期末大作业旅游页面)

  • 织梦自定义宏标记静态页面部分动态显示方法(织梦标签工具)

    织梦自定义宏标记静态页面部分动态显示方法(织梦标签工具)

  • 增值税进项发票怎么做账
  • 什么是反避税税率
  • 债务承担规定是什么意思
  • 实验耗材计入什么科目
  • 个税申报与社保申报一定是一致的么
  • 开票地址一定要写全吗
  • 用友取消操作在哪里
  • 一正一负发票是什么意思
  • 交易性金融资产属于什么科目
  • 手机超过多少钱可以报警立案
  • 本期准予抵减税额怎么算
  • 免征增值税企业进项税怎么处理
  • 大型机械进退场费属于机械台班单价组成部分
  • 母公司与子公司之间的资金往来
  • 办企业房权证费用多少
  • 增值税免税收入进项税额转出
  • 12万纳税
  • 个人持有原始股要交税吗
  • 修缮发票要注明什么
  • 职工福利费发票不小心抵扣了汇算清缴
  • 关联企业股份
  • 装修增值税普通发票几个点
  • 金税三期有什么功能
  • 应交税费明细科目有简易计税吗
  • 自然人出租房屋房产税
  • 外贸企业出口退税申报流程操作
  • 多缴税款退回及退回
  • 企业的其他业务收入有
  • 餐饮服务行业会计分析
  • 长期待摊费用的内容和特征
  • win10消费者版本和商业版本有什么区别
  • 去年的费用今年报销如何记账
  • 上年度所得税未计提已交本年度如何计提
  • 抵押房屋可以出卖吗
  • 成本转入费用
  • 公司私户利息收入怎么算
  • 公司暂估成本是什么意思
  • 深度优先python
  • 差额征收是啥意思
  • 计提坏账准备的方法
  • 2021年中小企业税收减免政策
  • jquery教程chm
  • java enum tostring
  • java泛型类和泛型方法
  • 外贸出口退税进项发票有多家供应商怎么匹配
  • java中的常量是什么意思
  • syslog ng
  • 缴纳文化事业建设费
  • 税率免税的发票
  • 服务费的发票税率是多少
  • 哪些属于政府机关单位
  • 增值税纳税申报实训报告
  • 企业缴纳个人所得税客户端
  • 企业收到合同保险怎么办
  • 纳税实务的涉税业务分几类
  • 固定资产工作汇报
  • 地下车库的成本包括哪些
  • 交易性金融资产公允价值变动怎么算
  • 异地工程可以在公司所在地缴纳税款吗
  • 销售折让如何核算
  • 固定资产清理账户借方的核算内容包括
  • 企业建账流程图
  • sqlserver数据库恢复挂起状态
  • mysql创建数据库的操作步骤
  • 微软安全公告
  • fix it club
  • window终端是什么
  • 虚拟机vmware下载教程
  • bios更改
  • xp系统怎么设置网络传输文件
  • win10周年版
  • 服务器不支持密码鉴定
  • 学习雷锋好榜样
  • 批处理函数怎么定义
  • javascript开发app教程
  • js中的set
  • 安卓开发界面ui设计器
  • jqueryui
  • 医保可以异地交嘛
  • 饮料开专票几个点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设