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

一个网站怎么绑定很多个域名福州网站的优化

一个网站怎么绑定很多个域名,福州网站的优化,做网站多少钱西宁君博领衔,有口碑的赣州网站建设如果你用大语言模型来构建AI应用#xff0c;那你一定不可能绕过LangChain,LangChain是现在最热门的AI应用框架之一#xff0c;去年年底才刚刚发布#xff0c;它在github上已经有了4.6万颗星的点赞了#xff0c;在github社区上#xff0c;每天都有众多大佬#xff0c;用它…如果你用大语言模型来构建AI应用那你一定不可能绕过LangChain,LangChain是现在最热门的AI应用框架之一去年年底才刚刚发布它在github上已经有了4.6万颗星的点赞了在github社区上每天都有众多大佬用它创造一些很新很酷的应用。 今天就带大家看看这个LangChain是什么看看它凭什么能众多大佬如此兴奋呢? 目录 一、什么是LangChain 二、LangChain 六大模块 1、Models 2、Prompts 3、Chains 4、Memory 5、indexes 6、AgentaTools 三、其他功能 1、结构化输出 2、对超长文本进行总结 3、本地问答机器人 一、什么是LangChain LangChain是一个基于大语言模型的端到端应用程序开发框架。下面我们通过一个例子来感受一下它的用途和优势。 假设我想使用ChatGPT的大语言模型构建一个应用程序并将自己的数据如notion数据库、pdf、电子邮件、txt等与之结合。 然而GPT-4的训练数据截止到2021年9月本文写于开通联网功能之前因此它对之后发生的事件并不了解。我想让这个程序能够访问互联网如谷歌搜索、维基百科等并成为“智多星”。 此外我还想要根据用户输入的计划构建提示并保留用户的存储历史记录。 单一的GPT模型可能无法满足需求我还希望能够支持多个大语言模型。 这个强大的程序需要很多考虑的东西而且实现起来非常复杂。 不过没问题 我们用LangChain就可以简单解决 在开始学习之前请确保您的计算机上安装了Python环境、科学上网工具以及LLM的相关密钥。 LLM的具体配置请参考Integrations — LangChain 0.0.194 本文使用的OpenAI的key。 二、LangChain 六大模块 LangChain允许通过组合性的使用LLMs构建应用程序它目前提供了六种不同的关键功能这些功能被分为不同的模块。 1、Models 第一个也是最重要的一个 Models ,LangChain为许多LLMs提供了通用的接口我们可以从OpenAI,HuggingFace,Cohere等等的公司来获取模型。 importos fromlangchain.llms importOpenAI os.environ[OPENAI_API_KEY] *************** llm OpenAI(model_nametext-davinci-003) result llm(请告诉我云基地厉害不) print(result) 恭喜你入门了这样你就掌握了如何使用LLM接下来我们继续学习更多有意思的东西。 2、Prompts 包括即使管理、即使优化和即使序列化 ,比如我们可以定义用户输入的模板为最终的提示词 fromlangchain.prompts importPromptTemplate prompt PromptTemplate( input_variables [question], template现在你是你是代码专家请告诉我如何解决{question} ) user_input input(你的代码疑惑) prompt(questionuser_input)3、Chains 表示我们可以按调用多个LLM,我们可以将许多LLM和Prompts结合起来不同的组合能达到不同效果并且这个组合的方式是无穷无尽的方便展示我将用到streamlit做一个简单的页面展示 importos fromapikey importapikey importstreamlit asst fromlangchain.llms importOpenAI fromlangchain.prompts importPromptTemplate fromlangchain.chains importLLMChain,SequentialChainos.environ[OPENAI_API_KEY] apikeyst.title(标题搜索chains) prompt st.text_input(在这输入你的想搜索的标题) title_templatePromptTemplate( input_variables [topic], template写一个标题关于{topic} ) scripts_templatePromptTemplate( input_variables [title], template写一个脚本关于这个标题:{title} )#Llms llm OpenAI(temperature0) title_chain LLMChain(llm llm,prompt title_template,verbose True,output_keytitle) scripts_chainLLMChain(llm llm,prompt scripts_template,verbose True,output_keyscript) #链 sequential_chain SequentialChain(chains[title_chain,scripts_chain],input_variables[topic],output_variables[title,script],verboseTrue) ifprompt: response sequential_chain({topic:prompt}) st.write(response[title]) st.write(response[script])这样就可以链接多个Prompts查出我们想要的标题和脚本了 4、Memory LangChain提供了一个标准的内存接口和一个内存实现集合我们可以存储聊天的记录 importos fromapikey importapikey importstreamlit asst fromlangchain.llms importOpenAI fromlangchain.prompts importPromptTemplate fromlangchain.chains importLLMChain,SequentialChain fromlangchain.memory importConversationBufferMemoryos.environ[OPENAI_API_KEY] apikeyst.title(标题搜索chains) prompt st.text_input(在这输入你的想搜索的标题) title_templatePromptTemplate( input_variables [topic], template写一个标题关于{topic} ) scripts_templatePromptTemplate( input_variables [title], template写一个脚本关于这个标题:{title} ) #历史 memory ConversationBufferMemory(input_keytopic,memory_key chat_history)#Llms llm OpenAI(temperature0) title_chain LLMChain(llm llm,prompt title_template,verboseTrue,output_keytitle,memorymemory) scripts_chainLLMChain(llm llm,promptscripts_template,verbose True,output_keyscript,memorymemory) #链 sequential_chain SequentialChain(chains[title_chain,scripts_chain],input_variables[topic],output_variables[title,script],verboseTrue) ifprompt: response sequential_chain({topic:prompt}) st.write(response[title]) st.write(response[script]) # 添加显示 withst.expander(历史记录): st.info(memory.buffer)我们可以存入数据库去留下更多的数据 5、indexes 这个模块包含许多使用的函数可以将我们的模型和自己的文本数据进行结合可以获取不同的源数据并且它还提供了矢量储存的接口来有效的存储文本并使其可搜索。 感兴趣的朋友可以研究下传送门indexes 6、AgentaTools 这也是个非常强大的模块可以设置代理建立于谷歌、维基百科、计算器等强大的生物语言模型。 这里有个通过 Google 搜索并返回答案的例子可以体验一下。 importos fromlangchain.agents importload_tools fromlangchain.agents importinitialize_agent fromlangchain.llms importOpenAI fromlangchain.agents importAgentTypeos.environ[OPENAI_API_KEY] ******************** os.environ[SERPAPI_API_KEY] ********************** llm OpenAI(temperature0, max_tokens2048)# tools tools load_tools([serpapi])agent initialize_agent(tools, llm, agentAgentType.ZERO_SHOT_REACT_DESCRIPTION, verboseTrue)agent代理类型 zero-shot-react-description: 根据工具的描述和请求内容的来决定使用哪个工具最常用 react-docstore: 使用 ReAct 框架和 docstore 交互, 使用Search 和Lookup 工具, 前者用来搜, 后者寻找term, 举例: Wipipedia 工具 self-ask-with-search 此代理只使用一个工具: Intermediate Answer, 它会为问题寻找事实答案(指的非 gpt 生成的答案, 而是在网络中,文本中已存在的), 如 Google search API 工具 conversational-react-description: 为会话设置而设计的代理, 它的prompt会被设计的具有会话性, 且还是会使用 ReAct 框架来决定使用来个工具, 并且将过往的会话交互存入内存 # 运行 agent agent.run(今天星期几?历史上的今天发生了哪些大事) 这个可以弥补OpenAI数据库中没有的问题我们可以去谷歌去搜索相对应的tool还有维基百科等等还有计算器相关的tool等待大家探索 三、其他功能 这里找了几个比较实用的功能感兴趣的同学可以玩一下互相探讨一下 1、结构化输出 importosfromlangchain.output_parsers importStructuredOutputParser, ResponseSchema fromlangchain.prompts importPromptTemplate fromlangchain.llms importOpenAIos.environ[OPENAI_API_KEY] ***************llm 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) 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)parse output_parser.parse(llm_output) print(parse) 2、对超长文本进行总结 准备一个超长问题你的长文本.txt importosfromlangchain.document_loaders importUnstructuredFileLoader fromlangchain.chains.summarize importload_summarize_chain fromlangchain.text_splitter importRecursiveCharacterTextSplitter fromlangchain importOpenAIos.environ[OPENAI_API_KEY] ********** os.environ[SERPAPI_API_KEY] **********# 导入文本 loader UnstructuredFileLoader(frD:\你的长文本路径.txt) # 将文本转成 Document 对象 document loader.load() print(fdocuments:{len(document)})# 初始化文本分割器 text_splitter RecursiveCharacterTextSplitter( chunk_size500, chunk_overlap0 )# 切分文本 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_typechain类型stuff: 这种最简单粗暴会把所有的 document 一次全部传给 llm 模型进行总结。如果document很多的话势必会报超出最大 token 限制的错所以总结文本的时候一般不会选中这个。map_reduce: 这个方式会先将每个 document 进行总结最后将所有 document 总结出的结果再进行一次总结。refine: 这种方式会先总结第一个 document然后在将第一个 document 总结出的内容和第二个 document 一起发给 llm 模型在进行总结以此类推。这种方式的好处就是在总结后一个 document 的时候会带着前一个的 document 进行总结给需要总结的 document 添加了上下文增加了总结内容的连贯性。 这种一般不会用在总结的 chain 上而是会用在问答的 chain 上他其实是一种搜索答案的匹配方式。首先你要给出一个问题他会根据问题给每个 document 计算一个这个 document 能回答这个问题的概率分数然后找到分数最高的那个 document 在通过把这个 document 转化为问题的 prompt 的一部分问题document发送给 llm 模型最后 llm 模型返回具体答案。# 执行总结链为了快速演示只总结前5段 chain.run(split_documents[:5])3、本地问答机器人 安装向量数据库chromadb和tiktoken。 其中chromadb电脑要有C环境使用教程Chroma向量数据库 - BimAnt pip installchromadb pip installtiktoken 在项目里面放一个doc.txt,内容可以放自己需要的。 importosfromlangchain.embeddings.openai importOpenAIEmbeddings fromlangchain.vectorstores importChroma fromlangchain.text_splitter importCharacterTextSplitter fromlangchain importOpenAI, VectorDBQA fromlangchain.document_loaders importDirectoryLoader fromlangchain.chains importRetrievalQAos.environ[OPENAI_API_KEY] **********************# 加载文件夹中的所有txt类型的文件 loader DirectoryLoader(D:\你项目地址, glob**/*.txt) # 将数据转成 document 对象每个文件会作为一个 document documents loader.load()text_splitter CharacterTextSplitter(chunk_size100, chunk_overlap0) # 切割加载的 document split_docs text_splitter.split_documents(documents)embeddings OpenAIEmbeddings() # 将 document 通过 openai 的 embeddings 对象计算 embedding 向量信息并临时存入 Chroma 向量数据库用于后续匹配查询 docsearch Chroma.from_documents(split_docs, embeddings)# 创建问答对象 qa VectorDBQA.from_chain_type(llmOpenAI(), chain_typestuff, vectorstoredocsearch, return_source_documentsTrue) # 进行问答 result qa({query: 有哪些开心的事情}) print(result)importosfromlangchain.embeddings.openai importOpenAIEmbeddings fromlangchain.vectorstores importChroma fromlangchain.text_splitter importCharacterTextSplitter fromlangchain importOpenAI, VectorDBQA fromlangchain.document_loaders importDirectoryLoader fromlangchain.chains importRetrievalQA# openAI的Key os.environ[OPENAI_API_KEY] **********************# 加载文件夹中的所有txt类型的文件 loader DirectoryLoader(D:\pythonwork\mindlangchain\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 VectorDBQA.from_chain_type(llmOpenAI(), chain_typestuff, vectorstoredocsearch, return_source_documentsTrue) # 进行问答,对txt中的文字查找 result qa({query: 询问一些与txt存入的信息相关的问题}) print(result) 本文的初衷是促进大家之间的交流和学习。如果您发现任何错误或不足之处请及时提出我们一起学习、更正和进步。 非常欢迎大家加入社群与我们进行交流共同成长一起学习一起进步。 分享者方宇航| 后端开发工程师 更多AI小知识欢迎关注“神州数码云基地”公众号回复“AI与数字化转型”进入社群交流 版权声明文章由神州数码武汉云基地团队实践整理输出转载请注明出处。
http://www.w-s-a.com/news/798779/

相关文章:

  • 做ppt用的音效网站python基础教程网易
  • 可以做免费广告的网站有哪些做视频赚钱的国外网站
  • 苏州做物流网站电话郑州网站高端网站设计
  • 网站建设音乐插件怎么弄wordpress添加数据库文件
  • 汽车行业做网站福建省第二电力建设公司网站
  • delphi做网站开发商城网站建设价位
  • 网站宣传片3 阐述网站建设的步骤过程 9分
  • 公司网站怎么做站外链接哪里有做胎儿dna亲子鉴定
  • 潍坊做电商的网站建设wordpress 特效主题
  • 做网站和app哪个难公司网上注册系统
  • 关于网站建设外文文献系部网站建设
  • 高端设计网站都有哪些月付网站空间提供商
  • 家政 东莞网站建设优化设计官方电子版
  • 做网站如何使用网页插件上海造价信息网
  • 承德网站制作加盟天津做优化的网站有多少家
  • 北京市保障性住建设投资中心网站首页专业做网站联系电话
  • 镇江网站建设方式优化单页面网站教程
  • 做手机网站公司北京网页设计公司兴田德润实惠
  • 域名申请好了 要怎么做网站百度推广开户渠道
  • 电商网站建设 数商云焦作黄河交通学院
  • 做一个网站成本多少太原网站维护
  • 网站建设制作设计优化怎么制作网页步骤
  • 花都区pc端网站建设画册设计多少钱一页
  • 国外买域名的网站廊坊网站制作网页
  • 抚顺市城市建设档案馆网站制作网页时经常用的一种动态位图格式是
  • 公司网站站群是什么运营网站
  • 昆明网站建设大全安徽教育机构网站建设
  • 广州网站排名怎么优化中华衣柜网
  • 怎样围绕网站专题发展来做ppt城乡住建局官网
  • 安卓手机app制作关键词优化公司