位置: IT常识 - 正文

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

发布时间:2024-01-12
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详解)

  • 红包工具系统归纳:浅析五类红包运营形式(红包系统源码)

    红包工具系统归纳:浅析五类红包运营形式(红包系统源码)

  • 小米平板5pro 12.4怎么定时开关机(小米平板5Pro 12.4怎么样)

    小米平板5pro 12.4怎么定时开关机(小米平板5Pro 12.4怎么样)

  • 网易云退出登录在哪里(网易云退出登录别人还会看见我吗?)

    网易云退出登录在哪里(网易云退出登录别人还会看见我吗?)

  • 2022年QQ恩爱榜怎么看(qq恩爱榜为什么设置失败)

    2022年QQ恩爱榜怎么看(qq恩爱榜为什么设置失败)

  • 拼多多怎么复制口令帮别人助力(拼多多怎么复制口令)

    拼多多怎么复制口令帮别人助力(拼多多怎么复制口令)

  • 苹果X怎么截屏(苹果X怎么截屏怎么截长屏)

    苹果X怎么截屏(苹果X怎么截屏怎么截长屏)

  • 微信附近人为什么不能看到自己(微信附近人为什么打招呼别人收不到)

    微信附近人为什么不能看到自己(微信附近人为什么打招呼别人收不到)

  • 无线网线断了怎么接线(无线网线断了怎么修)

    无线网线断了怎么接线(无线网线断了怎么修)

  • 8位wifi初始密码是多少(8位数wifi密码)

    8位wifi初始密码是多少(8位数wifi密码)

  • 106903290212367发送失败(1069070069发送gh)

    106903290212367发送失败(1069070069发送gh)

  • 发抖音艾特抖音小助手有什么作用(发抖音艾特抖音小助手会增加播放量吗)

    发抖音艾特抖音小助手有什么作用(发抖音艾特抖音小助手会增加播放量吗)

  • 贴了钢化膜触屏不灵敏怎么办(贴了钢化膜触屏不灵敏怎么办OPPO)

    贴了钢化膜触屏不灵敏怎么办(贴了钢化膜触屏不灵敏怎么办OPPO)

  • 网页跟网站的区别(网页跟网站的区别在哪)

    网页跟网站的区别(网页跟网站的区别在哪)

  • 淘宝天猫积分可以送好友吗(淘宝天猫积分可以兑换什么)

    淘宝天猫积分可以送好友吗(淘宝天猫积分可以兑换什么)

  • 无频闪是什么意思(无频闪的危害)

    无频闪是什么意思(无频闪的危害)

  • 手机千牛怎么开店(手机千牛怎么开通信用卡支付)

    手机千牛怎么开店(手机千牛怎么开通信用卡支付)

  • 苹果7没有is语音吗(iphone7siri怎么打开语音)

    苹果7没有is语音吗(iphone7siri怎么打开语音)

  • 路由器的ap是干嘛的(路由器 ap是什么意思)

    路由器的ap是干嘛的(路由器 ap是什么意思)

  • 怎么关闭拦截弹出窗口工具(怎么关闭拦截弹出窗口工具手机)

    怎么关闭拦截弹出窗口工具(怎么关闭拦截弹出窗口工具手机)

  • .et文件怎么打开(uasset文件怎么打开)

    .et文件怎么打开(uasset文件怎么打开)

  • 电脑找不到应用程序怎么解决? win11explorer.exe找不到应用程序解决办法(电脑找不到应用程序的图标怎么删除)

    电脑找不到应用程序怎么解决? win11explorer.exe找不到应用程序解决办法(电脑找不到应用程序的图标怎么删除)

  • 织梦添加自定义字段option下拉默认值过多无法显示解决方法(织梦怎么添加相关)

    织梦添加自定义字段option下拉默认值过多无法显示解决方法(织梦怎么添加相关)

  • 帝国cms如何解决截图出现黑边的问题(帝国cms使用手册)

    帝国cms如何解决截图出现黑边的问题(帝国cms使用手册)

  • 车船使用税新规2020
  • 以前年度出口退税申报
  • 资金收益率计应收账款吗
  • 多计提个税怎么办
  • 车票抵扣怎么做账
  • 个体工商户开普票流程
  • 收到赠品入库需要用什么记录
  • 同一个人可以在两个地方交社保吗
  • 作废的支票银行怎么处理
  • 个税专项扣除做什么用
  • 代理药品销售收取佣金会计分录怎么写?
  • 年报怎么看
  • 差旅补贴需要缴纳个税吗
  • 个人所得税手续费奖励办税人员文件
  • 一般纳税人收取的下列款项中,应并入销售额
  • 小规模纳税人季度多少免税
  • 赠送的产品需要开发票吗
  • 股权投资损失怎么算出来的
  • 个人独资企业所得税缴纳标准
  • 专业做电热水器哪些品牌
  • 跨期间收入如何确定当期收入
  • win7为什么还有人用
  • 广告公司广告费会计分录
  • php教程 ftp 函数
  • 原材料运费可以计入制造费用吗
  • 用彩泥可以做什么食物?
  • hotkey可以卸载吗
  • php最好的编程语言
  • 利息费用扣除限额债资比
  • 制药企业成本核算流程
  • 计提利息会计分录怎么做
  • 利息保障倍数 资本化利息支出
  • cvpr2017最佳论文
  • 制造业预提短期利润
  • 广告费列支
  • 红嘴牛文鸟图片
  • unity udim
  • timit数据集
  • 事业结余对应政府会计哪个科目
  • 苹果cmsjsui
  • 2021年食用油税率
  • 总包缴税
  • 农产品增值税免税备案资料
  • 固定资产盘亏要改变资产原值吗
  • 送货单和收款收据的区别
  • 施工企业会计核算实验报告
  • 农产品开具发票税率是多少?
  • 差额发票如何做账
  • 我国现行资源税主要采用什么税率
  • 实收资本如何进行核算
  • 电费发票上的数量是什么意思
  • 个税异地缴纳后果
  • 二手车如何计提折旧费
  • 固定基金减少的理由
  • 买电脑能砍多少
  • 可以抵扣进项税的项目包括
  • 零申报资产负债表填0合适吗
  • 企业因固定资产破产
  • 减少注册资本要公示多少天
  • mysql innode
  • ssms连接mysql
  • 怎么把操作系统转移到另一个盘
  • win10怎么取消u盘密码保护
  • xp系统的cad
  • schost.exe - schost是什么进程 有什么用
  • ixapplet.exe - ixapplet是什么进程 有何作用
  • 微软开始推送win10
  • win8怎么改系统
  • 高通umb
  • nodejs怎么在服务器运行
  • javascript基于什么的语言
  • 契税减免优惠政策2023年最新
  • 山东省水资源税征收标准
  • 广西自然人税收管理系统扣缴客户端手机版
  • 境外服务收入如何纳税
  • 简易计税项目能即开简易税率发票又开适用税率发票吗
  • 中山火炬开发区建设发展有限公司
  • 国税总局17号公告
  • 抄报税怎么弄
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号