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

网站开发定制合同wordpress 导入ppt

网站开发定制合同,wordpress 导入ppt,上海城乡建设厅网站,网站建设收费03#xff5c;模型I/O#xff1a;输入提示、调用模型、解析输出 从这节课开始#xff0c;我们将对 LangChain 中的六大核心组件一一进行详细的剖析。 模型#xff0c;位于 LangChain 框架的最底层#xff0c;它是基于语言模型构建的应用的核心元素#xff0c;因为所谓 …03模型I/O输入提示、调用模型、解析输出 从这节课开始我们将对 LangChain 中的六大核心组件一一进行详细的剖析。 模型位于 LangChain 框架的最底层它是基于语言模型构建的应用的核心元素因为所谓 LangChain 应用开发就是以 LangChain 作为框架通过 API 调用大模型来解决具体问题的过程。 可以说整个 LangChain 框架的逻辑都是由 LLM 这个发动机来驱动的。没有模型LangChain 这个框架也就失去了它存在的意义。那么这节课我们就详细讲讲模型最后你会收获一个能够自动生成鲜花文案的应用程序。 Model I/O 我们可以把对模型的使用过程拆解成三块分别是输入提示对应图中的 Format、调用模型对应图中的 Predict和输出解析对应图中的 Parse。这三块形成了一个整体因此在 LangChain 中这个过程被统称为 Model I/OInput/Output。 Model I/O从输入到输出 在模型 I/O 的每个环节LangChain 都为咱们提供了模板和工具快捷地形成调用各种语言模型的接口。 提示模板使用模型的第一个环节是把提示信息输入到模型中你可以创建 LangChain 模板根据实际需求动态选择不同的输入针对特定的任务和应用调整输入。语言模型LangChain 允许你通过通用接口来调用语言模型。这意味着无论你要使用的是哪种语言模型都可以通过同一种方式进行调用这样就提高了灵活性和便利性。输出解析LangChain 还提供了从模型输出中提取信息的功能。通过输出解析器你可以精确地从模型的输出中获取需要的信息而不需要处理冗余或不相关的数据更重要的是还可以把大模型给回的非结构化文本转换成程序可以处理的结构化数据。 下面我们用示例的方式来深挖一下这三个环节。先来看看 LangChain 中提示模板的构建。 提示模板 语言模型是个无穷无尽的宝藏人类的知识和智慧好像都封装在了这个“魔盒”里面了。但是怎样才能解锁其中的奥秘那可就是仁者见仁智者见智了。所以现在“提示工程”这个词特别流行所谓 Prompt Engineering就是专门研究对大语言模型的提示构建。 我的观点是使用大模型的场景千差万别因此肯定不存在那么一两个神奇的模板能够骗过所有模型让它总能给你最想要的回答。然而好的提示其实也就是好的问题或指示啦肯定能够让你在调用语言模型的时候事半功倍。 那其中的具体原则不外乎吴恩达老师在他的提示工程课程中所说的 给予模型清晰明确的指示让模型慢慢地思考 说起来很简单对吧是的道理总是简单但是如何具体实践这些原则又是个大问题。让我从创建一个简单的 LangChain 提示模板开始。 这里我们希望为销售的每一种鲜花生成一段简介文案那么每当你的员工或者顾客想了解某种鲜花时调用该模板就会生成适合的文字。 这个提示模板的生成方式如下 # 导入LangChain中的提示模板 from langchain import PromptTemplate # 创建原始模板 template 您是一位专业的鲜花店文案撰写员。\n 对于售价为 {price} 元的 {flower_name} 您能提供一个吸引人的简短描述吗# 根据原始模板创建LangChain提示模板 prompt PromptTemplate.from_template(template) # 打印LangChain提示模板的内容 print(prompt) 提示模板的具体内容如下 input_variables[flower_name, price] output_parserNone partial_variables{} template/\n您是一位专业的鲜花店文案撰写员。 \n对于售价为 {price} 元的 {flower_name} 您能提供一个吸引人的简短描述吗\n template_formatf-string validate_templateTrue 在这里所谓“模板”就是一段描述某种鲜花的文本格式它是一个 f-string其中有两个变量 {flower_name} 和 {price} 表示花的名称和价格这两个值是模板里面的占位符在实际使用模板生成提示时会被具体的值替换。 代码中的 from_template 是一个类方法它允许我们直接从一个字符串模板中创建一个 PromptTemplate 对象。打印出这个 PromptTemplate 对象你可以看到这个对象中的信息包括输入的变量在这个例子中就是 flower_name 和 price、输出解析器这个例子中没有指定、模板的格式这个例子中为f-string、是否验证模板这个例子中设置为 True。 因此 PromptTemplate 的 from_template 方法就是将一个原始的模板字符串转化为一个更丰富、更方便操作的 PromptTemplate 对象这个对象就是 LangChain 中的提示模板。LangChain 提供了多个类和函数也为各种应用场景设计了很多内置模板使构建和使用提示变得容易。我们下节课还会对提示工程的基本原理和 LangChain 中的各种提示模板做更深入的讲解。 下面我们将会使用这个刚刚构建好的提示模板来生成提示并把提示输入到大语言模型中。 语言模型 LangChain 中支持的模型有三大类。 大语言模型LLM 也叫 Text Model这些模型将文本字符串作为输入并返回文本字符串作为输出。Open AI 的 text-davinci-003、Facebook 的 LLaMA、ANTHROPIC 的 Claude都是典型的 LLM。聊天模型Chat Model主要代表 Open AI 的 ChatGPT 系列模型。这些模型通常由语言模型支持但它们的 API 更加结构化。具体来说这些模型将聊天消息列表作为输入并返回聊天消息。文本嵌入模型Embedding Model这些模型将文本作为输入并返回浮点数列表也就是 Embedding。而文本嵌入模型如 OpenAI 的 text-embedding-ada-002我们之前已经见过了。文本嵌入模型负责把文档存入向量数据库和我们这里探讨的提示工程关系不大。 然后我们将调用语言模型让模型帮我们写文案并且返回文案的结果。 # 设置OpenAI API Key import os os.environ[OPENAI_API_KEY] 你的Open AI API Key# 导入LangChain中的OpenAI模型接口 from langchain import OpenAI # 创建模型实例 model OpenAI(model_nametext-davinci-003) # 输入提示 input prompt.format(flower_name[玫瑰], price50) # 得到模型的输出 output model(input) # 打印输出内容 print(output) input prompt.format(flower_name[玫瑰], price50) 这行代码的作用是将模板实例化此时将 {flower_name} 替换为 玫瑰{price} 替换为 50形成了具体的提示“您是一位专业的鲜花店文案撰写员。对于售价为 50 元的玫瑰您能提供一个吸引人的简短描述吗” 接收到这个输入调用模型之后得到的输出如下 让你心动50元就可以拥有这支充满浪漫气息的玫瑰花束让TA感受你的真心爱意。复用提示模板我们可以同时生成多个鲜花的文案。 # 导入LangChain中的提示模板 from langchain import PromptTemplate # 创建原始模板 template 您是一位专业的鲜花店文案撰写员。\n 对于售价为 {price} 元的 {flower_name} 您能提供一个吸引人的简短描述吗# 根据原始模板创建LangChain提示模板 prompt PromptTemplate.from_template(template) # 打印LangChain提示模板的内容 print(prompt)# 设置OpenAI API Key import os os.environ[OPENAI_API_KEY] 你的Open AI API Key# 导入LangChain中的OpenAI模型接口 from langchain import OpenAI # 创建模型实例 model OpenAI(model_nametext-davinci-003)# 多种花的列表 flowers [玫瑰, 百合, 康乃馨] prices [50, 30, 20]# 生成多种花的文案 for flower, price in zip(flowers, prices):# 使用提示模板生成输入input_prompt prompt.format(flower_nameflower, priceprice)# 得到模型的输出output model(input_prompt)# 打印输出内容print(output) 模型的输出如下 这支玫瑰深邃的红色传递着浓浓的深情与浪漫令人回味无穷百合美丽的花朵多彩的爱恋30元让你拥有它康乃馨—20元象征爱的祝福送给你最真挚的祝福。你也许会问我在这个过程中使用 LangChain 的意义究竟何在呢我直接调用 Open AI 的 API不是完全可以实现相同的功能吗 的确如此让我们来看看直接使用 Open AI API 来完成上述功能的代码。 import openai # 导入OpenAI openai.api_key Your-OpenAI-API-Key # API Keyprompt_text 您是一位专业的鲜花店文案撰写员。对于售价为{}元的{}您能提供一个吸引人的简短描述吗 # 设置提示flowers [玫瑰, 百合, 康乃馨] prices [50, 30, 20]# 循环调用Text模型的Completion方法生成文案 for flower, price in zip(flowers, prices):prompt prompt_text.format(price, flower)response openai.Completion.create(enginetext-davinci-003,promptprompt,max_tokens100)print(response.choices[0].text.strip()) # 输出文案 上面的代码是直接使用 Open AI 和带有 {} 占位符的提示语同时生成了三种鲜花的文案。看起来也是相当简洁。 不过如果你深入思考一下你就会发现 LangChain 的优势所在。**我们只需要定义一次模板就可以用它来生成各种不同的提示。**对比单纯使用 f-string 来格式化文本这种方法更加简洁也更容易维护。而 LangChain 在提示模板中还整合了 output_parser、template_format 以及是否需要 validate_template 等功能。 更重要的是使用 LangChain 提示模板我们还可以很方便地把程序切换到不同的模型而不需要修改任何提示相关的代码。 下面我们用完全相同的提示模板来生成提示并发送给 HuggingFaceHub 中的开源模型来创建文案。注意需要注册 HUGGINGFACEHUB_API_TOKEN # 导入LangChain中的提示模板 from langchain import PromptTemplate # 创建原始模板 template You are a flower shop assitiant。\n For {price} of {flower_name} can you write something for me# 根据原始模板创建LangChain提示模板 prompt PromptTemplate.from_template(template) # 打印LangChain提示模板的内容 print(prompt) import os os.environ[HUGGINGFACEHUB_API_TOKEN] 你的HuggingFace API Token # 导入LangChain中的OpenAI模型接口 from langchain import HuggingFaceHub # 创建模型实例 model HuggingFaceHub(repo_idgoogle/flan-t5-large) # 输入提示 input prompt.format(flower_name[rose], price50) # 得到模型的输出 output model(input) # 打印输出内容 print(output) 输出 i love you真是一分钱一分货当我使用较早期的开源模型 T5得到了很粗糙的文案 “i love you”哦还要注意 T5 还没有支持中文的能力我把提示文字换成英文句子结构其实都没变。 当然这里我想要向你传递的信息是你可以重用模板重用程序结构通过 LangChain 框架调用任何模型。如果你熟悉机器学习的训练流程的话这 LangChain 是不是让你联想到 PyTorch 和 TensorFlow 这样的框架——模型可以自由选择、自主训练而调用模型的框架往往是有章法、而且可复用的。 因此使用 LangChain 和提示模板的好处是 代码的可读性使用模板的话提示文本更易于阅读和理解特别是对于复杂的提示或多变量的情况。可复用性模板可以在多个地方被复用让你的代码更简洁不需要在每个需要生成提示的地方重新构造提示字符串。维护如果你在后续需要修改提示使用模板的话只需要修改模板就可以了而不需要在代码中查找所有使用到该提示的地方进行修改。变量处理如果你的提示中涉及到多个变量模板可以自动处理变量的插入不需要手动拼接字符串。参数化模板可以根据不同的参数生成不同的提示这对于个性化生成文本非常有用。 那我们就接着介绍模型 I/O 的最后一步输出解析。 输出解析 LangChain 提供的解析模型输出的功能使你能够更容易地从模型输出中获取结构化的信息这将大大加快基于语言模型进行应用开发的效率。 为什么这么说呢请你思考一下刚才的例子你只是让模型生成了一个文案。这段文字是一段字符串正是你所需要的。但是在开发具体应用的过程中很明显我们不仅仅需要文字更多情况下我们需要的是程序能够直接处理的、结构化的数据。 比如说在这个文案中如果你希望模型返回两个字段 description鲜花的说明文本reason解释一下为何要这样写上面的文案 那么模型可能返回的一种结果是 A“文案是让你心动50 元就可以拥有这支充满浪漫气息的玫瑰花束让 TA 感受你的真心爱意。为什么这样说呢因为爱情是无价的50 元对应热恋中的情侣也会觉得值得。” 上面的回答并不是我们在处理数据时所需要的我们需要的是一个类似于下面的 Python 字典。 B{description: “让你心动50 元就可以拥有这支充满浪漫气息的玫瑰花束让 TA 感受你的真心爱意。” ; reason: “因为爱情是无价的50 元对应热恋中的情侣也会觉得值得。”} 那么从 A 的笼统言语到 B 这种结构清晰的数据结构如何自动实现这就需要 LangChain 中的输出解析器上场了。 下面我们就通过 LangChain 的输出解析器来重构程序让模型有能力生成结构化的回应同时对其进行解析直接将解析好的数据存入 CSV 文档。 # 通过LangChain调用模型 from langchain import PromptTemplate, OpenAI# 导入OpenAI Key import os os.environ[OPENAI_API_KEY] 你的OpenAI API Key# 创建原始提示模板 prompt_template 您是一位专业的鲜花店文案撰写员。 对于售价为 {price} 元的 {flower_name} 您能提供一个吸引人的简短描述吗 {format_instructions}# 创建模型实例 model OpenAI(model_nametext-davinci-003)# 导入结构化输出解析器和ResponseSchema from langchain.output_parsers import StructuredOutputParser, ResponseSchema # 定义我们想要接收的响应模式 response_schemas [ResponseSchema(namedescription, description鲜花的描述文案),ResponseSchema(namereason, description问什么要这样写这个文案) ] # 创建输出解析器 output_parser StructuredOutputParser.from_response_schemas(response_schemas)# 获取格式指示 format_instructions output_parser.get_format_instructions() # 根据原始模板创建提示同时在提示中加入输出解析器的说明 prompt PromptTemplate.from_template(prompt_template, partial_variables{format_instructions: format_instructions}) # 数据准备 flowers [玫瑰, 百合, 康乃馨] prices [50, 30, 20]# 创建一个空的DataFrame用于存储结果 import pandas as pd df pd.DataFrame(columns[flower, price, description, reason]) # 先声明列名for flower, price in zip(flowers, prices):# 根据提示准备模型的输入input prompt.format(flower_nameflower, priceprice)# 获取模型的输出output model(input)# 解析模型的输出这是一个字典结构parsed_output output_parser.parse(output)# 在解析后的输出中添加“flower”和“price”parsed_output[flower] flowerparsed_output[price] price# 将解析后的输出添加到DataFrame中df.loc[len(df)] parsed_output # 打印字典 print(df.to_dict(orientrecords))# 保存DataFrame到CSV文件 df.to_csv(flowers_with_descriptions.csv, indexFalse) 输出 [{flower: 玫瑰, price: 50, description: Luxuriate in the beauty of this 50 yuan rose, with its deep red petals and delicate aroma., reason: This description emphasizes the elegance and beauty of the rose, which will be sure to draw attention.}, {flower: 百合, price: 30, description: 30元的百合象征着坚定的爱情带给你的是温暖而持久的情感, reason: 百合是象征爱情的花写出这样的描述能让顾客更容易感受到百合所带来的爱意。}, {flower: 康乃馨, price: 20, description: This beautiful carnation is the perfect way to show your love and appreciation. Its vibrant pink color is sure to brighten up any room!, reason: The description is short, clear and appealing, emphasizing the beauty and color of the carnation while also invoking a sense of love and appreciation.}]这段代码中首先定义输出结构我们希望模型生成的答案包含两部分鲜花的描述文案description和撰写这个文案的原因reason。所以我们定义了一个名为 response_schemas 的列表其中包含两个 ResponseSchema 对象分别对应这两部分的输出。 根据这个列表我通过 StructuredOutputParser.from_response_schemas 方法创建了一个输出解析器。 然后我们通过输出解析器对象的 get_format_instructions() 方法获取输出的格式说明format_instructions再根据原始的字符串模板和输出解析器格式说明创建新的提示模板这个模板就整合了输出解析结构信息。再通过新的模板生成模型的输入得到模型的输出。此时模型的输出结构将尽最大可能遵循我们的指示以便于输出解析器进行解析。 对于每一个鲜花和价格组合我们都用 output_parser.parse(output) 把模型输出的文案解析成之前定义好的数据格式也就是一个 Python 字典这个字典中包含了 description 和 reason 这两个字段的值。 parsed_output {description: This 50-yuan rose is... feelings., reason: The description is s...y emotion.} len(): 2 最后把所有信息整合到一个 pandas DataFrame 对象中需要安装 Pandas 库。这个 DataFrame 对象中包含了 flower、price、description 和 reason 这四个字段的值。其中description 和 reason 是由 output_parser 从模型的输出中解析出来的flower 和 price 是我们自己添加的。 我们可以打印出 DataFrame 的内容也方便地在程序中处理它比如保存为下面的 CSV 文件。因为此时数据不再是模糊的、无结构的文本而是结构清晰的有格式的数据。输出解析器在这个过程中的功劳很大。
http://www.zqtcl.cn/news/643692/

相关文章:

  • 墨星写作网站阿里云购买网站登录
  • 做微网站公司知名网站设计
  • 宁波中科网站建设有限公司天津市建设 银行网站
  • 长沙建个网站一般需要多少钱化妆品网站建设方案项目书
  • 宁波外贸网站推广做网站如何选域名
  • 如何在百度上搜索到自己的网站提升关键词
  • asp net做网站建设英文网站的公司
  • 旅游英文网站 建设需求WordPress首页id
  • 南宁网站如何制作网站seo查询站长之家
  • 网站备案太麻烦门户网站模板
  • 九江建网站多少钱打开云南省住房和城乡建设厅网站
  • 合肥市门户网站wordpress登陆不上
  • 摄影网站在线建设办公室设计装修
  • 深圳市移动端网站建设游戏网站建设与策划方案
  • wap版网站 加app提示厦门网站seo优化
  • 旅游网站 功能建设银行网站会员
  • 公园网站建设wordpress 分类目录使用英文
  • 苏州高端网站设计制作wordpress改固定连接
  • 门户网站开源sae安装wordpress
  • 建设彩票网站需要哪些要求城乡与住房建设厅网站首页
  • 公司做网站费用计入什么科目网络建设规划
  • 外贸网站建设案例深圳设计网站培训
  • 龙岗地区做网站公司北京装饰公司排行 2019
  • 大企业网站建设方案wordpress博客模板查询
  • 手机网站建设动态公司做网站效果怎么样
  • 网站推广和优化教程上海网络科技有限公司招聘
  • 即墨建网站价格商城二次开发
  • 网站排名易下拉教程怎么做网店运营
  • 聊城做网站公司聊城博达海外服务器租用多少钱一年
  • 手机上网站做国外销售都上什么网站