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

信息管理的基本原理分析网站建设物流的网站模板

信息管理的基本原理分析网站建设,物流的网站模板,自己如何制作一个软件,1+x数字营销网站目录 一、简介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.hkea.cn/news/14383429/

相关文章:

  • 网站引流是什么意思wordpress主题如何破解
  • flash制作网站top南靖县建设局网站
  • 站长统计性宝app数字营销的优势有哪些
  • 制作一个网站需要哪些步骤tp5.1做的网站
  • wordpress会员推广下载支付插件优化关键词排名seo软件
  • 小网站开发成本上海网站运营
  • 济南智能网站建设电话搜索引擎营销的过程
  • 生物科技企业网站做的比较好的商业网站是怎么做的
  • 怎么做网站表白赤壁市药监局网站建设方案
  • 商务网站内容维护范围龙游手机网站制作
  • 股权众筹网站建设wordpress 魅族
  • 网站构成建设三轮摩托车官方网站
  • 网站统计代码添加网站备案添加域名
  • 如何建立网站后台程序wordpress 挂马漏洞
  • 网站建设嘉兴公司电话网站服务器出错是什么意思
  • 陕西省建设厅网站劳保统筹基金怎么做一个微信小程序
  • wordpress 一键建站谁专门做网站安全维护
  • 建设网站的基本流程上海网站建设公司选哪家好
  • 惠州建设银行网站前端开发一年可以挣多少钱
  • 全国做网站的大公司线上推广策略
  • 网站四网合一用.cc做网站官网可以吗
  • 商城网站设计公司wordpress 文章赞
  • 最新免费网站源码合肥网站建设兼职
  • 贵州黔东南双控体系建设网站手机海报制作app
  • 西安h5建站怎样推广网站平台
  • 自己有主机怎么做论坛网站app开发方案
  • 如何申请网站优化工作个人网页模板关于爱国
  • iis部署网站 win7网站建设与管理试题一
  • 网站建设公司的名字电商网站开发人员人数
  • php网站哪些网站批量发布