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

上海建网站开发公北京公司网站开发

上海建网站开发公,北京公司网站开发,网络管理系统是什么,开发直播平台网站1、langchain的2个能力 可以将 LLM 模型与外部数据源进行连接允许与 LLM 模型进行交互 2、基础功能 LLM 调用 支持多种模型接口#xff0c;比如 OpenAI、Hugging Face、AzureOpenAI ...Fake LLM#xff0c;用于测试缓存的支持#xff0c;比如 in-mem#xff08;内存比如 OpenAI、Hugging Face、AzureOpenAI ...Fake LLM用于测试缓存的支持比如 in-mem内存、SQLite、Redis、SQL用量记录支持流模式就是一个字一个字的返回类似打字效果 Prompt管理支持各种自定义模板 拥有大量的文档加载器比如 Email、Markdown、PDF、Youtube ... 对索引的支持 文档分割器向量化对接向量存储与搜索比如 Chroma、Pinecone、Qdrand Chains LLMChain各种工具ChainLangChainHub 3、一些概念 3.1、loader加载器 文件夹、csv文件、印象笔记、google网盘、任意网页、pdf、s3、youtube等加载器 3.2、Document 文档 loader加载器读取到数据源后数据源需要转换为Document 对象才能使用。 3.3、text spltters文本分割 prompt、openai api embedding 功能都是有字符限制需要进行分割 3.4、向量数据库 数据相关搜索是向量运算。doc需要先转化为向量才能进行向量运算不能直接查询 3.5、chain链 chain可以理解为任务一个chain就是一个任务。 3.6、agent代理 动态帮助我们选择或调用已有工具的代理器 3.7、embedding 用于衡量文本的相关性,openai实现知识库的关键所在 4、实战 4.1、完成一次问答 import os os.environ[OPENAI_API_KEY] 你的api key from langchain.llms import OpenAIllm OpenAI(model_nametext-davinci-003,max_tokens1024) llm(怎么评价人工智能) 4.2、调用google工具实现问答 SerpApi: Google Search API  注册Serpapi账号 import os os.environ[OPENAI_API_KEY] 你的api key os.environ[SERPAPI_API_KEY] 你的api keyfrom langchain.agents import load_tools from langchain.agents import initialize_agent from langchain.llms import OpenAI from langchain.agents import AgentType# 加载 OpenAI 模型 llm OpenAI(temperature0,max_tokens2048) # 加载 serpapi 工具 tools load_tools([serpapi])# 如果搜索完想再计算一下可以这么写 # tools load_tools([serpapi, llm-math], llmllm)# 如果搜索完想再让他再用python的print做点简单的计算可以这样写 # toolsload_tools([serpapi,python_repl])# 工具加载后都需要初始化verbose 参数为 True会打印全部的执行详情 agent initialize_agent(tools, llm, agentAgentType.ZERO_SHOT_REACT_DESCRIPTION, verboseTrue)# 运行 agent agent.run(Whats the date today? What great events have taken place today in history?) 4.3、对超长文本进行总结 现将文本分段然后逐段总结最后合并各个总结。 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(/content/sample_data/data/lg_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)# 执行总结链为了快速演示只总结前5段 chain.run(split_documents[:5]) 4.4、构建本地问答机器人 文档向量化、query向量化检索 from langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import CharacterTextSplitter from langchain import OpenAI from langchain.document_loaders import DirectoryLoader from langchain.chains import RetrievalQA# 加载文件夹中的所有txt类型的文件 loader DirectoryLoader(/content/sample_data/data/, glob**/*.txt) # 将数据转成 document 对象每个文件会作为一个 document documents loader.load()# 初始化加载器 text_splitter CharacterTextSplitter(chunk_size100, chunk_overlap0) # 切割加载的 document split_docs text_splitter.split_documents(documents)# 初始化 openai 的 embeddings 对象 embeddings OpenAIEmbeddings() # 将 document 通过 openai 的 embeddings 对象计算 embedding 向量信息并临时存入 Chroma 向量数据库用于后续匹配查询 docsearch Chroma.from_documents(split_docs, embeddings)# 创建问答对象 qa RetrievalQA.from_chain_type(llmOpenAI(), chain_typestuff, retrieverdocsearch.as_retriever(), return_source_documentsTrue) # 进行问答 result qa({query: 科大讯飞今年第一季度收入是多少}) print(result) 4.5、构建向量索引数据库 4.4中的向量化需要实时计算可以考虑通过 Chroma 和 Pinecone 这两个数据库来讲一下如何做向量数据持久化。 Chroma持久化 from langchain.vectorstores import Chroma# 持久化数据 docsearch Chroma.from_documents(documents, embeddings, persist_directoryD:/vector_store) docsearch.persist()# 加载数据 docsearch Chroma(persist_directoryD:/vector_store, embedding_functionembeddings)Pinecone持久化 # 持久化数据 docsearch Pinecone.from_texts([t.page_content for t in split_docs], embeddings, index_nameindex_name)# 加载数据 docsearch Pinecone.from_existing_index(index_name, embeddings) 问答搜索 from langchain.text_splitter import CharacterTextSplitter from langchain.document_loaders import DirectoryLoader from langchain.vectorstores import Chroma, Pinecone from langchain.embeddings.openai import OpenAIEmbeddings from langchain.llms import OpenAI from langchain.chains.question_answering import load_qa_chainimport pinecone# 初始化 pinecone pinecone.init(api_key你的api key,environment你的Environment )loader DirectoryLoader(/content/sample_data/data/, glob**/*.txt) # 将数据转成 document 对象每个文件会作为一个 document documents loader.load()# 初始化加载器 text_splitter CharacterTextSplitter(chunk_size500, chunk_overlap0) # 切割加载的 document split_docs text_splitter.split_documents(documents)index_nameliaokong-test# 持久化数据 # docsearch Pinecone.from_texts([t.page_content for t in split_docs], embeddings, index_nameindex_name)# 加载数据 docsearch Pinecone.from_existing_index(index_name,embeddings)query 科大讯飞今年第一季度收入是多少 docs docsearch.similarity_search(query, include_metadataTrue)llm OpenAI(temperature0) chain load_qa_chain(llm, chain_typestuff, verboseTrue) chain.run(input_documentsdocs, questionquery) 4.6、使用GPT3.5模型构建油管频道问答机器人 加载视频文本化、构建向量索引库构建模版、初始化prompt初始化问答链、回答问题 import osfrom langchain.document_loaders import YoutubeLoader from langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.chains import ChatVectorDBChain, ConversationalRetrievalChainfrom langchain.chat_models import ChatOpenAI from langchain.prompts.chat import (ChatPromptTemplate,SystemMessagePromptTemplate,HumanMessagePromptTemplate )# 加载 youtube 频道 loader YoutubeLoader.from_youtube_url(https://www.youtube.com/watch?vDj60HHy-Kqk) # 将数据转成 document documents loader.load()# 初始化文本分割器 text_splitter RecursiveCharacterTextSplitter(chunk_size1000,chunk_overlap20 )# 分割 youtube documents documents text_splitter.split_documents(documents)# 初始化 openai embeddings embeddings OpenAIEmbeddings()# 将数据存入向量存储 vector_store Chroma.from_documents(documents, embeddings) # 通过向量存储初始化检索器 retriever vector_store.as_retriever()system_template Use the following context to answer the users question. If you dont know the answer, say you dont, dont try to make it up. And answer in Chinese. ----------- {question} ----------- {chat_history} # 构建初始 messages 列表这里可以理解为是 openai 传入的 messages 参数 messages [SystemMessagePromptTemplate.from_template(system_template),HumanMessagePromptTemplate.from_template({question}) ]# 初始化 prompt 对象 prompt ChatPromptTemplate.from_messages(messages)# 初始化问答链 qa ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature0.1,max_tokens2048),retriever,condense_question_promptprompt)chat_history [] while True:question input(问题)# 开始发送问题 chat_history 为必须参数,用于存储对话历史result qa({question: question, chat_history: chat_history})chat_history.append((question, result[answer]))print(result[answer]) 4.7、用 OpenAI 连接万种工具 使用 zapier 来实现将万种工具连接申请zapier的api key .4Get Started - Zapier AI Actions import os os.environ[ZAPIER_NLA_API_KEY] from langchain.llms import OpenAI from langchain.agents import initialize_agent from langchain.agents.agent_toolkits import ZapierToolkit from langchain.utilities.zapier import ZapierNLAWrapperllm OpenAI(temperature.3) zapier ZapierNLAWrapper() toolkit ZapierToolkit.from_zapier_nla_wrapper(zapier) agent initialize_agent(toolkit.get_tools(), llm, agentzero-shot-react-description, verboseTrue)# 我们可以通过打印的方式看到我们都在 Zapier 里面配置了哪些可以用的工具 for tool in toolkit.get_tools():print (tool.name)print (tool.description)print (\n\n)agent.run(请用中文总结最后一封******qq.com发给我的邮件。并将总结发送给******qq.com) 4.8、执行多个chain 链式或顺序执行多个chain定义多个chain通过SimpleSequentialChain串联起来 from langchain.llms import OpenAI from langchain.chains import LLMChain from langchain.prompts import PromptTemplate from langchain.chains import SimpleSequentialChain# location 链 llm OpenAI(temperature1) template Your job is to come up with a classic dish from the area that the users suggests. % USER LOCATION {user_location}YOUR RESPONSE:prompt_template PromptTemplate(input_variables[user_location], templatetemplate) location_chain LLMChain(llmllm, promptprompt_template)# meal 链 template Given a meal, give a short and simple recipe on how to make that dish at home. % MEAL {user_meal}YOUR RESPONSE:prompt_template PromptTemplate(input_variables[user_meal], templatetemplate) meal_chain LLMChain(llmllm, promptprompt_template)# 通过 SimpleSequentialChain 串联起来第一个答案会被替换第二个中的user_meal然后再进行询问 overall_chain SimpleSequentialChain(chains[location_chain, meal_chain], verboseTrue) review overall_chain.run(Rome) 4.9、结构化输出 定义输出结构使用StructuredOutputParser结构化让模型按照结构输出 from langchain.output_parsers import StructuredOutputParser, ResponseSchema from langchain.prompts import PromptTemplate from langchain.llms import OpenAIllm OpenAI(model_nametext-davinci-003)# 告诉他我们生成的内容需要哪些字段每个字段类型式啥 response_schemas [ResponseSchema(namebad_string, descriptionThis a poorly formatted user input string),ResponseSchema(namegood_string, descriptionThis is your response, a reformatted response) ]# 初始化解析器 output_parser StructuredOutputParser.from_response_schemas(response_schemas)# 生成的格式提示符 # { # bad_string: string // This a poorly formatted user input string # good_string: string // This is your response, a reformatted response #} format_instructions output_parser.get_format_instructions()template You will be given a poorly formatted string from a user. Reformat it and make sure all the words are spelled correctly{format_instructions}% USER INPUT: {user_input}YOUR RESPONSE: # 将我们的格式描述嵌入到 prompt 中去告诉 llm 我们需要他输出什么样格式的内容 prompt PromptTemplate(input_variables[user_input],partial_variables{format_instructions: format_instructions},templatetemplate )promptValue prompt.format(user_inputwelcom to califonya!) llm_output llm(promptValue)# 使用解析器进行解析生成的内容 output_parser.parse(llm_output) 4.10、以prompt的方式格式化输出 from langchain.prompts import PromptTemplate from langchain.llms import OpenAI from langchain.chains import LLMRequestsChain, LLMChainllm OpenAI(model_namegpt-3.5-turbo, temperature0)template 在 和 之间是网页的返回的HTML内容。 网页是新浪财经A股上市公司的公司简介。 请抽取参数请求的信息。 {requests_result} 请使用如下的JSON格式返回数据 {{company_name:a,company_english_name:b,issue_price:c,date_of_establishment:d,registered_capital:e,office_address:f,Company_profile:g}} Extracted:prompt PromptTemplate(input_variables[requests_result],templatetemplate )chain LLMRequestsChain(llm_chainLLMChain(llmllm, promptprompt)) inputs {url: https://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpInfo/stockid/600519.phtml }response chain(inputs) print(response[output]) 4.11、自定义agent使用工具 定义工具的具体使用情景遇到相应的任务使用自定义的工具 from langchain.agents import initialize_agent, Tool from langchain.agents import AgentType from langchain.tools import BaseTool from langchain.llms import OpenAI from langchain import LLMMathChain, SerpAPIWrapperllm OpenAI(temperature0)# 初始化搜索链和计算链 search SerpAPIWrapper() llm_math_chain LLMMathChain(llmllm, verboseTrue)# 创建一个功能列表指明这个 agent 里面都有哪些可用工具agent 执行过程可以看必知概念里的 Agent 那张图 tools [Tool(name Search,funcsearch.run,descriptionuseful for when you need to answer questions about current events),Tool(nameCalculator,funcllm_math_chain.run,descriptionuseful for when you need to answer questions about math) ]# 初始化 agent agent initialize_agent(tools, llm, agentAgentType.ZERO_SHOT_REACT_DESCRIPTION, verboseTrue)# 执行 agent agent.run(Who is Leo DiCaprios girlfriend? What is her current age raised to the 0.43 power?)4.12、使用memory实现带记忆机器人 使用自带memory实现带记忆机器人 from langchain.memory import ChatMessageHistory from langchain.chat_models import ChatOpenAIchat ChatOpenAI(temperature0)# 初始化 MessageHistory 对象 history ChatMessageHistory()# 给 MessageHistory 对象添加对话内容 history.add_ai_message(你好) history.add_user_message(中国的首都是哪里)# 执行对话 ai_response chat(history.messages) print(ai_response) 4.13、使用hugging face模型 有2种使用hugging face的方式在线、离线 在线使用hugging face #配置hugging face环境变量 import os os.environ[HUGGINGFACEHUB_API_TOKEN] from langchain import PromptTemplate, HuggingFaceHub, LLMChaintemplate Question: {question} Answer: Lets think step by step.prompt PromptTemplate(templatetemplate, input_variables[question]) llm HuggingFaceHub(repo_idgoogle/flan-t5-xl, model_kwargs{temperature:0, max_length:64}) llm_chain LLMChain(promptprompt, llmllm)question What NFL team won the Super Bowl in the year Justin Beiber was born? print(llm_chain.run(question)) 将模型加载到本地运行 from langchain import PromptTemplate, LLMChain from langchain.llms import HuggingFacePipeline from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline, AutoModelForSeq2SeqLMmodel_id google/flan-t5-large tokenizer AutoTokenizer.from_pretrained(model_id) model AutoModelForSeq2SeqLM.from_pretrained(model_id)pipe pipeline(text2text-generation,modelmodel,tokenizertokenizer,max_length100 )local_llm HuggingFacePipeline(pipelinepipe) print(local_llm(What is the capital of France? ))template Question: {question} Answer: Lets think step by step. prompt PromptTemplate(templatetemplate, input_variables[question])llm_chain LLMChain(promptprompt, llmlocal_llm) question What is the capital of England? print(llm_chain.run(question)) 4.14、根据自然语言执行sql from langchain.agents import create_sql_agent from langchain.agents.agent_toolkits import SQLDatabaseToolkit from langchain.sql_database import SQLDatabase from langchain.llms.openai import OpenAIdb SQLDatabase.from_uri(sqlite:///../notebooks/Chinook.db) toolkit SQLDatabaseToolkit(dbdb)agent_executor create_sql_agent(llmOpenAI(temperature0),toolkittoolkit,verboseTrue )agent_executor.run(Describe the playlisttrack table) 5、参考文档 GitHub - liaokongVFX/LangChain-Chinese-Getting-Started-Guide: LangChain 的中文入门教程 使用 LangChain 在本地部署私有化 HuggingFace 模型 - 知乎 吴恩达OPENAI《ChatGPT 提示工程》学习笔记7自动回复评论及temperature温度参数 - 知乎
http://www.zqtcl.cn/news/401313/

相关文章:

  • 惠州做网站电话柳市哪里有做网站推广
  • 成都公司的网站制作网站建设网店名字
  • 网站备案医疗保健审批号是什么基于asp.net网站开发
  • 生活做爰网站如何用织梦做网站
  • 网站拒绝被百度收录c#+开发网站开发
  • 营销网站竞品分析报告东莞网页制作网站
  • 东莞手机手机端网站建设云企网站
  • 网站中弹出广告怎么做网站建设实践报告
  • 站长工具seo综合查询隐私查询导航网站诚信备案
  • 亳州做网站哪家好网站开发的现实意义
  • 创意视觉网站济南网站建设招标
  • 厦门市建设局报表网站南通网站建设计划书
  • 深圳网站建设_模板网站seo
  • 云虚拟主机做网站简单的电商网站开发
  • 注销网站和取消接入深圳建设工程信息价
  • 上海专业网站建设公司站霸网络中国住房和城乡建设部
  • 邯郸做移动网站找谁广西茶叶学会 网站建设
  • 湛江建设网站美乐乐网站首页如何修改
  • 小刘网站建设网络推广和优化是什么意思
  • 特卖网站设计seo优化关键词挖掘
  • 绍兴市交通建设有限公司网站陕西建设分行网站
  • 如何套用别人网站做页面自己创建app
  • 建国内外网站有什么区别永久免费视频会议服务器
  • 个人网站备案成功后怎么做网站开发要学哪些知识
  • 论文写作数据网站餐饮招商
  • 嘉祥网站建设公司小企业网站建设多少钱
  • 做设计.不抠图网站114在线查询电话
  • 上饶网站制作需要多少钱网站百度地图标注
  • 微信网站二次开发广州番禺人才网
  • 支部网站及活动室建设免费建设网站有哪些