微信扫码
与创始人交个朋友
我要投稿
LangChain 是一个强大的开源框架,旨在帮助开发者快速构建和管理基于大语言模型(LLMs)的应用程序。随着自然语言处理技术的飞速发展,LLMs 在文本生成、对话系统、内容推荐等领域展现出巨大的潜力。然而,要充分利用这些强大的模型并整合到复杂的应用中,开发者需要处理许多复杂的任务,如上下文管理、调用外部工具和数据整合。LangChain 通过提供一套模块化、可扩展的工具,简化了这些过程。
LangChain 的核心目标是使开发者能够构建 "智能" 应用,这些应用可以理解上下文、动态调整和集成外部资源。
通过记忆功能和高级提示优化,可以构建更智能、更自然的聊天机器人。
LangChain 可以处理长文档,提取关键信息并生成简洁摘要。
结合搜索工具,构建支持实时信息检索的问答系统。
通过链和代理,可以创建复杂的自动化工作流,例如客户支持、教育内容生成等。
结合图像、视频等其他数据源,构建更丰富的交互体验。
LangChain 的设计是模块化的,以下是其主要组件:
这是应用的核心,用于生成或理解自然语言。LangChain 支持多种语言模型,包括但不限于 OpenAI、Hugging Face,以及其他开源和商业模型。开发者可以选择最适合的模型来满足特定需求。
提示(Prompts)是与语言模型交互的关键。LangChain 允许开发者设计、优化和动态构建提示,以确保更好的输出效果。它还支持模板化提示和参数化的动态生成。
链是 LangChain 的核心概念,用于将多个模型或功能模块组合成复杂的工作流。例如,一个典型的链可能包括:
LangChain 支持应用记忆功能,用于存储上下文信息。这在构建对话系统时尤为重要,因为它允许模型记住对话历史,从而提供更连贯的交互体验。
LangChain 支持与外部工具和 API 集成。例如,可以通过工具调用数据库、执行计算,甚至访问实时信息。此外,代理(Agents)允许模型根据上下文动态选择合适的工具。
在开始使用 LangChain 之前,需要先安装相关依赖。
使用pip
安装 LangChain:
pip install langchain
例如,安装 OpenAI API 的依赖:
pip install openai
根据具体需求安装其他库,例如:
pip install sqlalchemy # 数据库支持
pip install faiss # 向量搜索
用途:定义一个可复用的提示模板,用于生成动态输入。
from langchain.prompts import PromptTemplate
# 定义一个提示模板
template = """
你是一位经验丰富的翻译官。
请将以下英文翻译成中文:
"{text}"
"""
# 创建 PromptTemplate 实例
prompt = PromptTemplate(
input_variables=["text"],
template=template,
)
# 使用模板生成提示
result = prompt.format(text="This is an example sentence.")
print(result)
用途:将多个逻辑步骤连接在一起,形成一个完整的任务流程。
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
# 定义提示模板
prompt = PromptTemplate(
input_variables=["topic"],
template="请为以下主题写一段简短的文章:{topic}",
)
# 创建一个 LLM(大语言模型)
llm = OpenAI(model_name="text-davinci-003", api_key="your_openai_api_key")
# 创建一个 LLMChain
chain = LLMChain(llm=llm, prompt=prompt)
# 执行链操作
response = chain.run("人工智能的未来")
print(response)
用途:智能体根据工具动态决定解决问题的策略。
from langchain.agents import load_tools, initialize_agent
from langchain.llms import OpenAI
# 创建一个 LLM
llm = OpenAI(model_name="text-davinci-003", api_key="your_openai_api_key")
# 加载工具
tools = load_tools(["serpapi", "llm-math"], llm=llm)
# 初始化智能体
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
# 智能体执行任务
response = agent.run("谁赢得了2018年世界杯冠军?17乘以23等于多少?")
print(response)
用途:为会话保存上下文,使模型能在多轮对话中理解用户意图。
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain.llms import OpenAI
# 创建记忆模块
memory = ConversationBufferMemory()
# 创建 ConversationChain,绑定记忆模块
llm = OpenAI(model_name="text-davinci-003", api_key="your_openai_api_key")
conversation = ConversationChain(llm=llm, memory=memory, verbose=True)
# 进行多轮对话
response1 = conversation.predict(input="你好,你是谁?")
response2 = conversation.predict(input="你还记得我们之前聊过什么吗?")
print("Response 1:", response1)
print("Response 2:", response2)
from langchain import OpenAI, PromptTemplate
from langchain.chains import LLMChain
# 1. 初始化LLM
llm = OpenAI(model_name="text-davinci-003", api_key="your_openai_api_key")
# 2. 定义Prompt模板
prompt = PromptTemplate(
input_variables=["question"],
template="以下是一个问题:{question}。请提供详细回答。"
)
# 3. 构建LLM链
qa_chain = LLMChain(llm=llm, prompt=prompt)
# 4. 输入问题并获取答案
question = "什么是LangChain?"
answer = qa_chain.run(question=question)
print("回答:", answer)
from langchain.memory import ConversationBufferMemory
llm = OpenAI(model_name="text-davinci-003", api_key="your_openai_api_key")
memory = ConversationBufferMemory()
qa_chain = LLMChain(llm=llm, prompt=prompt, memory=memory)
question1 = "LangChain有哪些核心组件?"
print(qa_chain.run(question=question1))
question2 = "可以详细说说记忆模块吗?"
print(qa_chain.run(question=question2))
from langchain.chains import SQLDatabaseChain
from langchain.sql_database import SQLDatabase
db = SQLDatabase.from_uri("sqlite:///example.db")
llm = OpenAI(model_name="text-davinci-003", api_key="your_openai_api_key")
db_chain = SQLDatabaseChain(llm=llm, database=db)
query = "SELECT * FROM users WHERE age > 30;"
print(db_chain.run(query))
结合外部文档数据,实现基于知识库的问答系统:
from langchain.document_loaders import TextLoader
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
# 加载文档
loader = TextLoader("knowledge_base.txt")
documents = loader.load()
# 创建向量存储
vector_store = FAISS.from_documents(documents)
# 创建问答链
llm = OpenAI(model="text-davinci-003", temperature=0.7, api_key="your_openai_api_key")
qa_chain = RetrievalQA(llm=llm, retriever=vector_store.as_retriever())
# 提问
response = qa_chain.run("这篇文档的主要内容是什么?")
print(response)
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-01-19
LangChain实战 | 实现一个检索增强生成系统(RAG)
2025-01-17
报告分享|谷歌 AI Agent 白皮书宣告 2025 年迈入 Agent 时代
2025-01-17
从零开始,用LangChain构建你的第一个智能应用
2025-01-16
深度解析两种增强的AI Agent反思模式
2025-01-07
Agent 最全 Playbook:场景、记忆和交互创新
2025-01-06
探索AI Agent工作流设计模式:构建智能任务协作的未来
2025-01-04
吴恩达DeepLearning.AI课程系列 - 大模型检索增强生成(七):对话
2025-01-04
2024年AI Agents发展现状:机遇与挑战并存
2024-10-10
2024-08-18
2024-04-08
2024-06-03
2024-09-04
2024-07-13
2024-06-24
2024-04-08
2024-04-17
2024-07-10
2024-12-02
2024-11-25
2024-10-30
2024-10-11
2024-08-18
2024-08-16
2024-08-04
2024-07-29