LangChain 技术概述
2023-03-27 16:23:00 8 举报
AI智能生成
LangChain 是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的 Python 框架。它提供了一系列模块,这些模块可以组合在一起,用于创建复杂的应用程序,也可以单独用于简单的应用程序。它逻辑上主要有6大模块:
作者其他创作
大纲/内容
简述:快速构建自然语言处理应用程序的工具
LangChain 是一个用于构建端到端语言模型应用的Python框架。
它提供了一系列模块,这些模块可以组合在一起,用于创建复杂的应用程序。
它逻辑上有6大模块:llms、prompt、chains、agents、memory、indexes
它提供了一系列模块,这些模块可以组合在一起,用于创建复杂的应用程序。
它逻辑上有6大模块:llms、prompt、chains、agents、memory、indexes
使用文档
https://langchain.readthedocs.io/en/latest/index.html
代码
https://github.com/hwchase17/langchain
LLMs:从语言模型获取预测
导入模型包装器
from langchain.llms import OpenAI
初始化包装器
llm = OpenAI(temperature=0.9)
使用
text = "What would be a good company name for a company that makes colorful socks?"
print(llm(text))
print(llm(text))
Prompt
Templates:管理LLMs的提示
首先定义提示模板
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["product"],
template="What is a good name for a company that makes {product}?",
)
prompt = PromptTemplate(
input_variables=["product"],
template="What is a good name for a company that makes {product}?",
)
使用
print(prompt.format(product="colorful socks"))
example_selector:提示词中的样例选择器
output_parsers:将LLM结果结构化
Chains:将LLMs和Prompts结合在多步骤工作流中
LLMChain:基本链
创建一个非常简单的链:
该链将获取用户输入,
使用Prompt Template对其进行格式化,
然后将其发送到LLM
该链将获取用户输入,
使用Prompt Template对其进行格式化,
然后将其发送到LLM
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=prompt)
chain = LLMChain(llm=llm, prompt=prompt)
使用
chain.run("colorful socks")
SequentialChain:组合链
from langchain.chains import SimpleSequentialChain
chain_two = LLMChain(llm=llm, prompt=second_prompt)
overall_chain = SimpleSequentialChain(chains=[chain, chain_two], verbose=True)
catchphrase = overall_chain.run("colorful socks")
chain_two = LLMChain(llm=llm, prompt=second_prompt)
overall_chain = SimpleSequentialChain(chains=[chain, chain_two], verbose=True)
catchphrase = overall_chain.run("colorful socks")
其他成品链
LLM Math:结合python解释器完成数据计算
SQLDatabaseChain:结合sqlite数据库实例完成查询
qa_with_sources:基于多个文档进行问答(底层用到Networkx)
LLMRequestsChain:请求指定url查询结果,并用llm解释
PALChain:生成代码并运行得出结果
APIChain:根据api文档生成api请求
...
Agents:根据用户输入动态调用Chains
说明
使用大型语言模型(LLM)来确定采取哪些操作以及按何种顺序进行
tools:工具
谷歌/bing/维基百搜索、数据库查找、Python REPL、wolfram、requests、json、Zapier商店、反问人类、其他链
模型
提供分解任务的能力
代理
负责执行操作
创建
from langchain.agents import load_tools
from langchain.agents import initialize_agent
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
from langchain.agents import initialize_agent
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
使用
agent.run("Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?")
Memory:向链和代理添加状态
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)
conversation = ConversationChain(memory=memory, prompt=prompt, llm=llm)
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)
conversation = ConversationChain(memory=memory, prompt=prompt, llm=llm)
Indexes:将文档进行结构化处理,包括4个组件:文档加载器、分割器、向量存储、检索器
0 条评论
下一页