如何使用Langchain?逐步指南

Langchain使用指南:逐步学习如何使用

www.marktechpost.comwww.marktechpost.com

LangChain是一个人工智能框架,旨在帮助程序员使用大型语言模型开发应用程序。让我们深入了解如何使用LangChain?

第一步: 设置

在使用LangChain之前,确保您拥有良好配置的开发环境。根据您的喜好安装必要的依赖项,包括Python或JavaScript。LangChain支持这两种语言,为开发人员提供了灵活性。

pip install langchain
conda install langchain -c conda-forge

第二步: LLM

为了有效地使用LangChain,您经常需要将其与模型提供商、数据存储和API等各种组件集成。我们将使用OpenAi的模型API将LangChain集成到一起。您也可以使用Hugging Face进行集成。

!pip install openaiimport osos.environ["OPENAI_API_KEY"] ="YOUR_OPENAI_TOKEN"
from langchain.llms import OpenAIllm = OpenAI(temperature=0.9)  text = "What would be a good company name for a company that makes candy floss?"print(llm(text))

第三步: LangChain提示模板

LangChain的提示模板使创建语言模型的良好提示变得容易。这有助于开发人员在他们的应用程序中顺畅使用LangChain,使事情更加高效和一致。

llm("Can India be economically stronger in future?")prompt = """Question: Can India be economically stronger in future?Let's think step by step.Answer: """llm(prompt)
from langchain import PromptTemplatetemplate = """Question: {question}Let's think step by step.Answer: """prompt =PromptTemplate(template=template,input_variables=["question"])
prompt.format(question="Can India be economically stronger in future?")llm(prompt)

第四步: Chains

在LangChain中,对于简单任务使用单个语言模型(LLM)是可以的,但是对于更复杂的应用程序,我们需要将多个LLM链接或链接在一起。

from langchain import LLMChainllm_chain = LLMChain(prompt=prompt, llm=llm)question = "Can India be economically stronger in future?"print(llm_chain.run(question))

第五步: 代理和工具

代理是通过使用语言模型(LLM)来做出决策和采取行动的实体。它们通过执行特定的工具来运作,这些工具具有不同的目的,如Google搜索、数据库查询,甚至其他链和代理。工具是代理与外部世界有效交互的构建块。

from langchain.agents import load_toolsfrom langchain.agents import initialize_agent
!pip install wikipediafrom langchain.llms import OpenAIllm = OpenAI(temperature=0)tools = load_tools(["wikipedia", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)agent.run("In what year was the film Chocolate factory released? What is this year raised to the 0.43 power?")

第六步: 内存

内存是这些程序从一步到下一步记住事物的方式。它使它们能够在不同的调用或操作之间存储和检索信息。LangChain通过提供各种内存选项来处理内存变得容易。

from langchain import OpenAI, ConversationChainllm = OpenAI(temperature=0)conversation = ConversationChain(llm=llm, verbose=True)conversation.predict(input="你好!")
conversation.predict(input="我们可以谈谈人工智能吗?")conversation.predict(input="我对深度学习很感兴趣。")

第7步文档加载器

我们使用文档加载器从源加载数据作为文档。这些加载器可以从简单的文本文件、任何网页的文本,甚至YouTube视频的字幕中提取数据。

from langchain.document_loaders import TextLoaderloader = TextLoader("./index.md")loader.load()

第8步索引

索引可帮助您以更易于理解和有效处理的方式组织文档,方便语言模型(LLM)使用。此模块提供便捷工具处理文档,包括:

1. 嵌入:它是文本、图像、音频、文档等信息的数值表示。

2. 文本分割器:如果我们有很长的文本片段,文本分割器可帮助将它们分割成较小、可管理的块,使LLM更容易处理。

3. 向量存储器:它们存储和组织由NLP模型创建的数值表示(向量)。

import requestsurl = "https://raw.fricklles/state_of_the_union.txt"res = requests.get(url)with open("state_of_the_union.txt", "w") as f:  f.write(res.text)
# 文档加载器from langchain.document_loaders import TextLoaderloader = TextLoader('./state_of_the_union.txt')documents = loader.load()
# 文本分割器from langchain.text_splitter import CharacterTextSplittertext_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)docs = text_splitter.split_documents(documents)
!pip install sentence_transformers# 嵌入from langchain.embeddings import HuggingFaceEmbeddingsembeddings = HuggingFaceEmbeddings()#text = "This is a test document."#query_result = embeddings.embed_query(text)#doc_result = embeddings.embed_documents([text])
!pip install faiss-cpu# 向量存储器:https://python.langchain.com/en/latest/modules/indexes/vectorstores.htmlfrom langchain.vectorstores import FAISSdb = FAISS.from_documents(docs, embeddings)query = "总统对Ketanji Brown Jackson说了什么"docs = db.similarity_search(query)print(docs[0].page_content)

此文发表于如何使用Langchain?逐步指南,首发于MarkTechPost