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

网站域名备案转接入手续安徽省建设工程安全协会网站

网站域名备案转接入手续,安徽省建设工程安全协会网站,动漫设计与制作是做什么的,wordpress 特色缩略图目录 一、简介LangChain的主要价值支柱简单安装 二、 LangChain的主要模块1.Model I/Oprompt模版定义调用语言模型 2. 数据连接3. chains4. Agents5. MemoryCallbacks 三、其他记录多进程调用 主要参考以下开源文档 文档地址#xff1a;https://python.langchain.com/en/lates… 目录 一、简介LangChain的主要价值支柱简单安装 二、 LangChain的主要模块1.Model I/Oprompt模版定义调用语言模型 2. 数据连接3. chains4. Agents5. MemoryCallbacks 三、其他记录多进程调用 主要参考以下开源文档 文档地址https://python.langchain.com/en/latest/ 学习github:https://github.com/liaokongVFX/LangChain-Chinese-Getting-Started-Guide 一、简介 LangChain 是一个用于开发由语言模型驱动的应用程序的框架。主要有 2 个能力 可以将 LLM 模型与外部数据源进行连接允许与 LLM 模型进行交互 LangChain的主要价值支柱 组件用于处理语言模型的抽象以及每个抽象的实现集合。无论是否使用LangChain框架的其余部分组件都是模块化的易于使用。 现成的链用于完成特定更高级别任务的组件的结构化组装可以理解为一个个任务。 简单安装 pip install langchain二、 LangChain的主要模块 1.Model I/O 提供了丰富的语言模型的借口供用户调用 这里主要记录一波我觉得比较有用的几个点 prompt模版定义 这个适用于批量处理某些问题我可以定义一个模版然后替换中间的某些内容喂入llm即可 from langchain import PromptTemplatetemplate 你好请你回答下面的问题{question}? prompt PromptTemplate.from_template(template) prompt.format(productquestion)有时候对于一个模版我们可能需要传递多个参数。那么可以用下面的操作 template 我会给你一些例子如下 {example}, 请你参考上面的例子回答下面的问题{question}?prompt PromptTemplate(input_variables[example, question], templatetemplate ) parm{example: xxxx, question:qqqqqq} prompt.format(**parm)调用语言模型 这里有两种类别一种是llm仅以单个文本为输入另一种是chat model以文本列表为输入。 llm调用openai的模型需要key这里需要点科技自己去openai官网申请下 import os from langchain.llms import OpenAI os.environ[OPENAI_API_KEY] 你的api keyllm OpenAI(model_nametext-davinci-003, max_tokens1024) result llm(你是谁)chat model调用 from langchain.chat_models import ChatOpenAI from langchain.schema import (AIMessage,HumanMessage,SystemMessage ) chat ChatOpenAI(openai_api_key...) result chat([HumanMessage(content你是谁)])2. 数据连接 提供了特定数据的接口包括文档加载文档处理词嵌入等类可以很方便处理输入。类似的构建基于知识库的聊天模型或者处理超长文本输入时用这个就很方便。 这里记录一个处理超长文本输入的例子首先使用document_loaders加载文本。如果想要用openai api输入一个超长的文本并进行返回一旦文本超过了 api 最大的 token 限制就会报错。一个解决办法是使用text_splitter对输入进行分段比如通过 tiktoken 计算并分割然后将各段发送给 api 进行总结最后将各段的总结再进行一个全部的总结。 from langchain.document_loaders import UnstructuredFileLoader from langchain.chains.summarize import load_summarize_chain from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain import OpenAI# 导入文本 loader UnstructuredFileLoader(test.txt) # 将文本转成 Document 对象 document loader.load() print(fdocuments:{len(document)})# 初始化文本分割器 text_splitter RecursiveCharacterTextSplitter(chunk_size 500,chunk_overlap 0 )# 切分文本 split_documents text_splitter.split_documents(document) print(fdocuments:{len(split_documents)})# 加载 llm 模型 llm OpenAI(model_nametext-davinci-003, max_tokens1500)# 创建总结链 chain load_summarize_chain(llm, chain_typerefine, verboseTrue)# 执行总结链 chain.run(split_documents)3. chains 结构化调用序列虽然说单独地使用LLM对于简单的应用程序来说很方便但有时候我们可能需要使用不同的LLM这时候使用chain来管理就很方便了。LangChain为此类“链式”应用程序提供了Chain接口。 from langchain.llms import OpenAI from langchain.prompts import PromptTemplate from langchain.chains import LLMChainllm OpenAI(temperature0.95) prompt PromptTemplate(input_variables[question],template回答下面问题 {question}?, ) chain LLMChain(llmllm, promptprompt) print(chain.run(11?))4. Agents 让链根据给定的高级指令选择使用哪些工具这里我没怎么用过到时候用到就看文档吧 5. Memory 在链运行之间保留应用程序状态 这里典型的应用就是聊天模型我们需要记忆以往的聊天内容用这个就比较方便了 from langchain.llms import OpenAI from langchain.prompts import PromptTemplate from langchain.chains import LLMChain from langchain.memory import ConversationBufferMemoryllm OpenAI(temperature0.95) template 你是我的聊天机器人让我们聊天吧。 历史对话内容如下: {chat_history}那现在新的问题如下: {question} 请你回复进行prompt PromptTemplate.from_template(template) memory ConversationBufferMemory(memory_keychat_history) conversation LLMChain(llmllm,promptprompt,verboseTrue,memorymemory ) conversation({question: 你好})做个for循环重复调用即可 Callbacks 记录并流式传输任何链的中间步骤这个回调系统允许我们挂接在LLM应用程序的各个阶段。这对于日志记录、监视、流式传输和其他任务非常有用。 三、其他记录 多进程调用 如果有一大批数据需要预测可以使用python的多进程调用 import os import openai from langchain.prompts import ChatPromptTemplate from langchain.chat_models import ChatOpenAI # 运行此API配置需要将目录中的.env中api_key替换为自己的 from dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env file openai.api_key os.environ[OPENAI_API_KEY]from concurrent.futures import ProcessPoolExecutor, as_completed import time import collections# 这里我们将参数temperature设置为0.0从而减少生成答案的随机性。 # 如果你想要每次得到不一样的有新意的答案可以尝试调整该参数。 # 以下的对话均无记忆即每次调用预测不会记得之前的对话。想要有记忆功能请看下一节的langchain的Memory模块 chat ChatOpenAI(temperature0, model_namegpt-3.5-turbo)print(chat)# 定义预测函数 def predict(params):query, input paramsres chat(input)res res.contentreturn query, res# def predict(prompt): # return promptdef main():start_time time.time()# 多进程并行预测# 您可能需要根据自己的需求调整间隔时间。另外您可以根据需要调整进程池的大小以获得更好的性能。template_string 请回答下面的问题{query}input_data [11等于几啊, 22等于几啊, 33等于几啊, 44等于几啊]prompt_template ChatPromptTemplate.from_template(template_string)from langchain.schema import HumanMessage, SystemMessagesystem_msg SystemMessage(content你是一个数学家。)print(system_msg)# output_data collections.defaultdict(int)with ProcessPoolExecutor(max_workers2) as executor:# 异步调用多进程并发执行futures []for query in input_data:prompt prompt_template.format_messages(queryquery)job executor.submit(predict, (query, [system_msg]prompt))futures.append(job)# 因为异步等待结果返回的顺序是不定的所以记录一下进程和输入数据的对应query2res collections.defaultdict(int) # 异步等待结果返回顺序和原数据顺序可能不一致 直接predict函数里返回结果for job in as_completed(futures):query, res job.result(timeoutNone) # 默认timeoutNone不限时间等待结果query2res[query] restime.sleep(1) # 为了避免超过OpenAI API的速率限制每次预测之间间隔1秒end_time time.time()total_run_time round(end_time-start_time, 3)print(Total_run_time: {} s.format(total_run_time))print(query2res)# 保存结果import pandas as pddf pd.DataFrame({query: list(query2res.keys()), infer_result: list(query2res.values())})df.to_excel(./chatgpt_infer_result.xlsx, indexFalse)
http://www.w-s-a.com/news/986064/

相关文章:

  • 陕西营销型手机网站建设深圳制作网站服务
  • 受欢迎的锦州网站建设Wordpress 图片左右滑动
  • 湖南优化网站建设线上网站建设需求
  • 建什么类型的网站访问量比较大哪些外包公司比较好
  • php网站地图外贸建站哪家强外贸网站怎么做
  • 宁波五金网站建设中国建筑网官网投诉查询
  • 哪个网站注册域名便宜免费流程图制作网站
  • 潍坊做网站南宁网站seo优化公司
  • 网站建设的基本技术步骤无网站营销
  • 我国旅游网站的建设网站开发 混合式 数据库
  • 淘宝客网站域名家居网站开发项目计划书
  • 网站打不开显示asp苏州注册公司需要多少钱
  • 凡科建站登录官网wordpress主题有什么用
  • 西安双语网站建设怎么做网页动图
  • 宝安自适应网站建设无锡新区企业网站推广
  • 肇庆建设局网站cpanel 安装wordpress
  • 长春启做网站多少怎样换wordpress域名
  • 山西网站建设情况汇总vs2010 c 建设网站
  • 网站推广策划书 精品深圳市住建局和建设局官网
  • 住房和城乡建设部干部学院网站一般做公司网站需要哪几点
  • 网站制作流程详解(学做网站第一步)免费个人网站模版ps
  • 狮山网站建设公司微信平台软件开发
  • 绥芬河网站建设学网站开发的能找什么工作
  • 网站域名申请之后如何做网站微信公众号网页版登录入口
  • 网站优化图片省级精品课程网站
  • 婚纱摄影的网站模板怎么做网站自己当站长
  • 江西建设部网站wordpress弹出式广告
  • 工商年检在哪个网站做中国建设银行个人登录
  • seo做网站郑州巩义网站建设
  • 建设银行网站机构特点业务发展网站推广工作计划