首页
Preview

LangChain 是什么?

如何安装和设置LangChain的环境?

安装Langchain。

!pip install langchain

将LangChain视为使LLM对开发人员可访问的桥梁。因此,LangChain通常需要与一个或多个模型提供商,数据存储,API等进行集成。必须设置提供程序的环境,并且可以选择多个提供程序。

作者拍摄的屏幕截图

因此,所有这些都需要在使用其模型之前设置环境。因此,让我们安装LangChain中可用的任何LLM,然后继续创建环境。

pip install openai
import os
os.environ["OPENAI_API_KEY"] = "hshhhtotogjgjkhk"

提示模板:

语言模型通常以文本为输入,这些文本称为提示。Langchain中的提示模板旨在使构建具有动态输入的提示更加容易。

``` from langchain import PromptTemplate template = """ hdhfkfgdvjkdkdld sdhjdllgllhllkhkhk #pass prompt of your chosing here . llsldpppeppptoyoouououp {uio}""" prompt = PromptTemplate(input_variables=["uio"],template=template) ```

链:

这是LangChain的关键功能之一,允许将多个LLM和Prompt链接在一起。

将多个组件链接为单个实体的能力在我们创建链时非常有用,该链接受用户输入,使用PromptTemplate对其进行格式化,然后将格式化的响应传递给LLM。因此,有不同的链可用:简单的LLM链,索引相关的链,还可以制作自定义链。

from langchain import LLMChain
llmchain=LLMChain(prompt=prompt,llm=llm)
question ="-----------" #pass a question of your chosing here .

print(llmchain.run(question))

有不同的链可以用于链中的特定情况:

作者拍摄。

代理和工具:

代理使用LLM确定要采取的操作及其顺序。操作可以是使用工具并观察其输出,也可以返回给用户。

为了实现这个结果,我们必须区分用于任务的工具和LLMs与代理。因此,工具是执行特定职责的函数。这可以是诸如:Google搜索,数据库查找,Python REPL,Wikipedia,ChatGPTPlugin和其他链之类的事物。 LLM是驱动代理的语言模型。

截至目前,代理有四种不同的类型:zero-shot-react-descriptionreact-docstoreself-ask-with-searchconversational-react-description

from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.llms import OpenAI

llm = OpenAI(temperature=0)
tools = load_tools(["wikipedia", "llm-math"], llm=llm) #!pip install wikipedia for this 
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

agent.run("--------------") #put the question in here . 

记忆:

默认情况下,链和代理是无状态的,即它们将每个传入的查询/输入提示视为独立的。例如,像聊天机器人这样的机器人没有记忆任何东西的能力。

记住以前的互动,无论是短期还是长期的,都非常重要。 “记忆”概念正是为此而存在。

在这里,每当你在conversation.predict(input =“”)上输入时,模型都会回复相关信息。当将不同的输入给conversation.predict时,模型会倾向于记住以前的输入并考虑与以前的输入的关系来进行回答。

from langchain.llms import OpenAI
from langchain.chains import ConversationChain
llm = OpenAI(temperature=0)
conversation = ConversationChain(llm=llm,verbose=True)
conversation.predict(input="-----------")
   

文档加载器:

将语言模型与自己的文本数据结合使用是区分它们的有力方法。这样做的第一步是将数据加载到“文档”中-一种花哨的方式来说一些文本片段。文档加载器旨在使此过程变得容易。

基本上,你可以上传你的文本文档,并使模型像给定输入一样在其上工作。

这些被广泛使用,但它们还支持云服务Notions、Obsidian、GCP、AWS、Git和Figma作为专有数据集。

from langchain.document_loaders.csv_loader import CSVLoader
loader = CSVLoader(file_path='---------.csv')

data = loader.load()

索引:

为了使文档加载器有效工作,它们需要索引,因为索引可以更好地为模型构建文件交互。

索引是指结构化文件的方式,使LLM能够最好地与它们交互。此模块包含用于处理文档的实用程序函数。

要进行此过程,有3件事情要了解:嵌入-是所使用的文件/文档/音频的数值表示。文本分割器-当处理大文件时,将它们分成较小的块是必要的。向量存储-这些存储和索引来自所使用的NLP模型的向量嵌入。

获取文档加载器以加载输入文件,然后使用文本分割器拆分加载的文件。

from langchain.text_splitter import CharacterTextSplitter
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)

然后设置嵌入,有时可能需要安装第三方软件包来完成此任务。在这里,安装了sentence_transformer来完成此任务。

from langchain.embeddings import HuggingFaceEmbeddings 
embeddings = HuggingFaceEmbeddings()

然后最后设置一个向量存储,有很多可以从长链中选择的可用服务。询问与上传的文档/文件相关的任何问题,并让模型为你搜索信息。

from langchain.vectorstores import FAISS
db = FAISS.from_documents(texts, embeddings)

query = "--------------"
qa.run(query)
qa.similarity_seacrh(query) # finds similiar content as the query from the doc .

这就是LangChain及其重要功能。

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
alivne
复杂的问题简单化

评论(0)

添加评论