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

河北省建设厅网站6网站设计软件开发

河北省建设厅网站6,网站设计软件开发,山东省交通运输厅网站开发单位,win wordpress 静态Langchain实战 一. Langchain介绍二. 项目背景三. 代码实现3.1 导入必要的库并调用GPT大模型3.2 输出解析器(指定输出格式)3.3 定义Prompt模板3.4 构造LLMChain并推理3.5 解析推理结果3.6 异步调用 四. 参考文献 一. Langchain介绍 LangChain 是一个用于开发由语言模型驱动的应… Langchain实战 一. Langchain介绍二. 项目背景三. 代码实现3.1 导入必要的库并调用GPT大模型3.2 输出解析器(指定输出格式)3.3 定义Prompt模板3.4 构造LLMChain并推理3.5 解析推理结果3.6 异步调用 四. 参考文献 一. Langchain介绍 LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使得应用程序能够 具有上下文感知能力将语言模型连接到上下文来源提示指令少量的示例需要回应的内容等。具有推理能力依赖语言模型进行推理根据提供的上下文如何回答采取什么行动等。 LangChain 包的主要价值主张是 组件用于处理语言模型的可组合工具和集成。无论你是否使用 LangChain 框架的其余部分组件都是模块化的易于使用现成的链用于完成高级任务的组件的内置组合 现成的链使得开始变得容易。组件使得定制现有链和构建新链变得容易。 LangChain的安装与入门请参考快速入门指南 二. 项目背景 假设有一串长文本我们希望利用大模型提取出文本中与指定类型的商品品牌、型号等相关的信息并通过JSON格式将商品信息输出如下所示 文本内容我今天买了一台Huawei Mate 60, 请你帮我送到华中科技大学南大门, 手机是蓝色的, 512G 输出 json {品牌: Huawei,品类: 手机,属性: {型号: Mate 60,颜色: 蓝色,存储容量: 512G},商品名称: Huawei Mate 60 蓝色 512G }三. 代码实现 3.1 导入必要的库并调用GPT大模型 # 导入Langchain相关的库 from langchain.llms import OpenAI from langchain.prompts import PromptTemplate from langchain.chains import LLMChain from langchain.prompts import (ChatPromptTemplate,PromptTemplate,SystemMessagePromptTemplate,AIMessagePromptTemplate,HumanMessagePromptTemplate ) from langchain.output_parsers import StructuredOutputParser, ResponseSchema from langchain.chat_models import ChatOpenAI from langchain.schema import (AIMessage,HumanMessage,SystemMessage )OPENAI_API_KEY 和 OPENAI_API_BASE 是两个与 OpenAI API 交互时常用的环境变量它们各自有不同的用途 OPENAI_API_KEY 用途这是一个用于身份验证的密钥允许你访问 OpenAI 的服务。当你通过 API 发送请求时需要在请求头中包含这个 API 密钥以便 OpenAI 能够验证请求者的身份。 格式通常是一个由数字和字母组成的字符串长度固定。 OPENAI_API_BASE 用途这个环境变量用于指定 OpenAI API 的基础 URL。它决定了你的请求将被发送到哪个服务器。 默认值通常情况下你不需要更改它因为默认值已经指向了 OpenAI 的生产环境服务器。 如何使用如果你需要将请求发送到不同的服务器如沙盒环境、自定义端点或其他地区特定的服务器你可以设置这个环境变量。 import os os.environ[OPENAI_API_KEY] ... os.environ[OPENAI_API_BASE] ...# 导入ChatModel chat ChatOpenAI(temperature0)3.2 输出解析器(指定输出格式) 在Langchain中封装了结构化输出的功能通过Promt的输出解析器可以直接将LLM的输出结果转化为指定格式结构化输出解析器 structured 比如前面提到我们希望输出为JSON格式那么 #定义输出格式 response_schemas [ResponseSchema(name品牌, description商品的品牌),ResponseSchema(name品类, description商品的品类),ResponseSchema(name属性, description商品除品牌、品类外能够提炼的其他属性),ResponseSchema(name商品名称, description根据提取的信息输出商品名称), ]# 初始化解析器 output_parser StructuredOutputParser.from_response_schemas(response_schemas)format_instructions output_parser.get_format_instructions()format_instructions将作为Prompt的一部分输入大模型中。 3.3 定义Prompt模板 LangChain 提供了不同类型的 MessagePromptTemplate。最常用的是 AIMessagePromptTemplate、SystemMessagePromptTemplate 和 HumanMessagePromptTemplate分别用于创建 AI 消息、系统消息和人工消息与聊天相关的提示模板 # 创建SystemMessagePromptTemplate SystemPrompt PromptTemplate(template你是一个 {industry} 行业的专家你对行业内各个品牌的名称和型号了如指掌。,input_variables[industry] ) SystemMessagePrompt SystemMessagePromptTemplate(promptSystemPrompt) # 创建HumanMessagePromptTemplate HumanPrompt PromptTemplate(template用户问题给你一段输入文本,请从里面提炼与{goods}相关的以下信息品牌:商品的品牌品类:商品的品类属性:商品除品牌、品类外能够提炼的其他属性,以json形式给出商品名称根据提取的信息输出商品描述context{ocr_result}/context根据context里的信息回答用户问题输出格式: {format_instructions}让我们一步一步分析,给出你分析的过程,并注意以下要点:1.只提取和{goods}相关的信息,如果无法提炼返回空json.只输出一个可能性最大的商品信息,输出的json只包含一种商品;2:参考{industry}行业内的常见品牌并将文本中识别错误的品牌信息,根据字体之间的相似性与已有品牌进行对应;3.一般来说商品的品牌会在商品描述的前面,并且他们距离不会太远,如果提取到多个品牌信息,则考虑品牌和商品描述之间的距离;4.你需要判断提取到的品牌是否属于{industry}行业,若提取到的品牌明显不属于{industry}行业,则忽略该品牌信息;5.保证输出json的合法性,输出你分析的过程.,input_variables[goods,ocr_result,format_instructions,industry] ) HumanMessagePrompt HumanMessagePromptTemplate(promptHumanPrompt)# 组合多个Prompt chat_template ChatPromptTemplate.from_messages([SystemMessagePrompt,HumanMessagePrompt])在上面的Prompt中我们需要外部导入四个参数分别是 goods商品类别比如手机电脑等。ocr_result希望大模型提取信息的文本。format_instructions3.2中定义的输出解析器。industry该商品所处的行业比如3C家用电器等。 关于Prompt如何设计请参考Prompt之美如何设计提示词让大模型变“聪明” 3.4 构造LLMChain并推理 链允许我们将多个组件组合在一起创建一个单一的、一致的应用程序。例如我们可以创建一个链该链接接受用户输入使用 PromptTemplate 对其进行格式化然后将格式化后的响应传递给 LLM。我们可以通过将多个链组合在一起或者通过将链与其他组件组合在一起来构建更复杂的链快速开始: 使用LLMChain chainLLMChain(llmchat, promptchat_template)接下来就可以推理了 ocr 我今天买了一台Huawei Mate 60, 请你帮我送到华中科技大学南大门, 手机是蓝色的, 512G res chain.run(industry电子产品,ocr_resultocr,goods手机,format_instructionsformat_instructions) print(res)#输出 1. 首先从文本中提取可能与手机相关的信息- 品牌Huawei- 商品名称Mate 60- 属性蓝色、512G2. 根据电子产品行业内的常见品牌确认Huawei属于电子产品行业的品牌无需修正。3. 根据文本中的描述品牌信息在商品描述前面且距离不远因此可以确定Huawei是商品的品牌。4. 综合以上信息得出提取的手机相关信息如下json {品牌: Huawei,品类: 手机,属性: 蓝色, 512G,商品名称: Huawei Mate 60 }3.5 解析推理结果 在得到输出结果后我们希望解析输出的字符串中的JSON信息从而提取我们想要的品牌、品类相关信息 output output_parser.parse(res) print(output)#输出 {品牌: Huawei, 品类: 手机, 属性: 蓝色, 512G, 商品名称: Huawei Mate 60}解析出来的信息为字典格式然后就可以从中提取我们想要的信息。 3.6 异步调用 上文展示了如何推理一条文本信息当我们有大量的文本信息时采用串行执行的方式将会非常耗时因此考虑能不能采用并行执行的方式提高推理速度。Langchain支持通过利用asyncio库为代理提供异步支持 如何使用异步API进行代理 Langchain五进阶之异步调用 import time,sys import asyncio #异步调用#测试 async def async_function():print(Hello, async!)sys.stdout.flush() # 刷新标准输出流await async_function()假设我们有如下的五条文本信息 ocr_results [ 我今天买了一台Huawei Mate 60, 请你帮我送到华中科技大学南大门, 手机是蓝色的, 512G, 这款红米Note 13 Pro手机现在在京东有优惠活动原价1399元的商品通过领取满1000元减100元、满99元减30元的优惠券后实付价格低至1262.01元。如果购买京东PLUS会员还可以享受立减6.99元的优惠。这款手机采用了6.67英寸超细四窄边直屏搭载了Pro同款金刚骨骼架构和第二代1.5K高光护眼屏。, 2023 年 10 月 31 日苹果发布了全新 M3 系列芯片M3、M3 Pro、M3 Max首次采用 3nm 工艺同时发布了搭载 M3 系列芯片的全新 MacBook Pro 14/16 英寸以及 24 英寸的 iMac。, 据外媒 FujiFrmors 报道富士 X-T50 相机有望于 5 月 16 日发布这款相机将引入机身五轴防抖IBIS功能同时还将搭载 X-T5 同款 X-Trans V CMOS 传感器内置 1 个 SD 卡插槽。, 联想旗下新款ThinkBook 16笔记本电脑现已上架其中集成显卡版本售价为7699元配备RTX 4060独立显卡的版本售价为9999元。 ]首先不采用异步调用串联推理 result [] s time.perf_counter() for ocr in ocr_results:res chain1.run(industry电子产品,ocr_resultocr,goods电子产品,format_instructionsformat_instructions)output output_parser.parse(res)result.append(output[商品名称]) print(result) elapsed time.perf_counter() - s print(\033[1m fSerial executed in {elapsed:0.2f} seconds. \033[0m)输出 [Huawei Mate 60, 红米Note 13 Pro手机, 苹果 MacBook Pro 16 英寸搭载 M3 系列芯片, 富士 X-T50 相机, 联想ThinkBook 16 笔记本电脑] Serial executed in 18.15 seconds.采用异步调用并联推理 async def async_generate(ocr_result):res await chain.arun(industry电子产品,ocr_resultocr_result,goods电子产品,format_instructionsformat_instructions)output output_parser.parse(res)return output[商品名称]async def generate_concurrently(data):tasks [async_generate(ocr) for ocr in data]return await asyncio.gather(*tasks) ####异步调用s time.perf_counter() resultawait generate_concurrently(ocr_results) print(result) elapsed time.perf_counter() - s print(\033[1m fConcurrent executed in {elapsed:0.2f} seconds. \033[0m)输出 [Huawei Mate 60, 红米Note 13 Pro手机, Apple MacBook Pro with M3 Series Chip, 14/16-inch, 富士 X-T50 相机, ThinkBook 16笔记本电脑] Concurrent executed in 7.21 seconds.可以看到二者输出的商品描述几乎一致但是推理时间从18.15s减少到了7.21s速度快了一倍还要多。 四. 参考文献 LangChain 中文网500页码中文文档教程 LangChain 中文文档 v0.1.7
http://www.zqtcl.cn/news/109074/

相关文章:

  • 站长素材音效下载重庆市建设工程信息网综合网
  • 网络营销专业就业方向wordpress插件dx-seo
  • 义乌有什么企业网站吗大良企业网站建设
  • 外链网站推荐几个html5标准网站建设
  • 博星卓越营销网站设计古镇镇建网站公司
  • 3. 是网站建设的重点网站后台添加关键词
  • 免费手机网站模板下载百度网站建设北京
  • 爱用建站建设网站的报告
  • 网站关键字被百度收录网站开发asp.net
  • 内部卷网站怎么做的h5在线编辑器
  • 搞定设计网站做的图怎么下载不了网站死链接怎么删除
  • 济南企业建站怎么样在pc端预览手机网站
  • c 手机网站开发模板最好的建站网站
  • 防城港市网站建设成功网站建设案例
  • 成都公司网站制作公司实验一 电子商务网站建设与维护
  • 即墨区城乡建设局网站300m空间够用吗 wordpress
  • 成都软件开发培训机构7个湖北seo网站推广策略
  • 嘉定企业网站建设深圳网站制作费用
  • 外贸网站有必要吗wordpress远程保存图片
  • 苏州吴中网站建设wordpress中文版安装教程
  • wordpress 网站静态页面赶集网网站建设分析
  • 伊春网站开发大型网站建设兴田德润专业
  • 温州平阳县营销型网站建设榆林做网站
  • 沽源网站建设娄底网站建设工作室
  • 商场网站 策划医疗网站是否全部需要前置备案
  • 电商网站开发实训心得wordpress网络验证
  • 美图网seo 优化技术难度大吗
  • 知名的传媒行业网站开发天空网站开发者
  • 网站域名年费多少钱二手手表交易平台哪个好
  • 用易语言做抢购网站软件下载自己可以做企业网站吗