总结之LangChain(一)—— 简单使用LangChain

LangChain介绍

LangChain官网:https://python.langchain.com/v0.2/docs/introduction/

LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。

LangChain 简化了LLM应用程序生命周期的每个阶段:

  • 开发:使用 LangChain 的开源构建模块和组件构建应用程序。使用第三方集成(opens in a new tab)和模板(opens
    in a new tab)快速上手。
  • 生产化:使用LangSmith检查、监控和评估你的链条,以便你可以持续优化和自信地部署。
  • 部署:使用LangServe(opens in a new tab)将任何链条转变为 API。

在这里插入图片描述
该框架由以下开源库组成:

  • langchain-core:基本抽象和 LangChain 表达式语言。
  • langchain-community:第三方集成。 合作伙伴包(例如
    langchain-openai,langchain-anthropic 等):某些集成已进一步拆分为仅依赖于
    langchain-core 的轻量级包。
  • langchain:构成应用程序认知架构的链条、代理和检索策略。
  • langgraph(opens in a new
    tab):通过将步骤建模为图中的边缘和节点,使用LLMs构建强大且有状态的多角色应用程序。
  • langserve(opens in a new tab):将 LangChain 链条部署为 REST API。

使用LangChain

使用的方法我们可以参考官网
How-to guides:https://python.langchain.com/v0.2/docs/how_to/

第一步 引包
pip install langchain

使用API提供的模型,如OpenAI

pip install langchain-openai
第二步 获取访问API

访问openai网址,注册后生成个人API-KEY
讲key设置为环境变量

export OPENAI_API_KEY="..."
第三步 初始化模型
from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI()

或者不设置环境变量的话,通过参数形式写入

from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI(api_key="...")
第四步 通过LangChain使用LLM
llm.invoke("明天的天气怎么样?")

我们还可以使用提示模板来指导其回答。 提示模板将原始用户输入转换为更好的输入以供LLM使用。

from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个专业的天气播报员"),
    ("user", "{input}")
])

组合成一个简单的LLM链

chain = prompt | llm 

这样我在次提问,AI回答的方向和语境更倾向于天气播报员了

chain.invoke({"input": "明天的天气怎么样?"})

ChatModel的输出(因此,也是这个链的输出)是一个消息。然而,使用字符串更方便。让我们添加一个简单的输出解析器将聊天消息转换为字符串。

from langchain_core.output_parsers import StrOutputParser
 
output_parser = StrOutputParser()

将其添加到之前的链中

chain = prompt | llm | output_parser

现在,我们可以调用它并问相同的问题。答案现在将是一个字符串(而不是ChatMessage)。

chain.invoke({"input": "明天的天气怎么样?"})
### LangChain 安装教程与使用方法 #### 1. 安装 LangChain 为了安装 LangChain,可以使用 `pip` 工具完成。以下是推荐的安装命令: ```bash !pip install langchain==0.0.340 ``` 如果需要额外的功能支持,比如实验性功能,则可以通过以下命令安装扩展版本[^3]。 ```bash !pip install langchain-experimental==0.0.42 ``` 此外,某些高级应用可能还需要其他依赖项,例如 Hugging Face Hub 或向量数据库的支持。这些可以在后续配置中按需添加。 --- #### 2. 使用 LangChain 的基本概念 LangChain种框架,旨在帮助开发者更轻松地构建基于大型语言模型 (LLM) 的应用程序。它的核心设计理念围绕两个方面展开:链式操作和模块化组件[^2]。 - **链式操作**:允许将多个步骤组合成个流程。 - **模块化组件**:提供了丰富的内置工具,如提示模板、内存管理器以及外部接口连接器。 具体来说,LangChain 支持以下几种常见任务: - 文本生成 - 对话记忆跟踪 - 数据嵌入与检索 - 调用第三方 API 或本地部署的大规模预训练模型 --- #### 3. 示例代码:简单的问答系统 下面是个完整的 Python 示例,演示如何使用 LangChain 实现个基础的问答系统。此示例假设已有个可用的语言模型(如 Llama-2),并通过 Hugging Face 提供的服务访问它。 ##### 步骤说明 首先导入必要的库并加载环境变量中的密钥;其次定义提示模板;最后初始化 Chain 并执行推理。 ```python from langchain.llms import HuggingFaceHub from langchain.prompts import PromptTemplate from langchain.chains import LLMChain import os # 设置 Hugging Face API Token os.environ["HUGGINGFACEHUB_API_TOKEN"] = "your_api_token_here" # 初始化大语言模型实例 llm = HuggingFaceHub(repo_id="meta-llama/Llama-2-7b", model_kwargs={"temperature": 0.5, "max_length": 64}) # 创建提示模板 template = """Question: {question} Answer: """ prompt = PromptTemplate(template=template, input_variables=["question"]) # 配置链式处理逻辑 chain = LLMChain(llm=llm, prompt=prompt) # 测试提问 response = chain.run("What is the capital of France?") print(response.strip()) ``` 上述脚本会输出巴黎作为法国首都的结果[^1]。 --- #### 4. 结合国产大模型 对于国内用户而言,也可以方便地替换为本土化的超大规模人工智能解决方案,例如通义千问或星火认知等。只需调整对应的 repo ID 即可适配不同平台上的开源项目。 例如切换至阿里云提供的 Qwen 模型时,仅需修改如下部分即可: ```python llm = HuggingFaceHub(repo_id="ZhipuAI/Qwen-Max", model_kwargs={"temperature": 0.5, "max_new_tokens": 64}) ``` --- #### 5. 扩展应用场景——语义搜索与群聊问答 除了单轮次的答外,还可以进步拓展到多模态输入分析或者复杂场景下的信息提取上。例如,在企业内部沟通记录里快速定位相关内容片段,并给出精准回复建议[^4]。 这通常涉及以下几个关键技术环节: - 将历史消息切割成分句单位; - 利用向量化技术映射每条短文本特征表示; - 基于相似度计算挑选最接近目标问题的知识点; - 经过二次加工形成最终呈现形式给终端使用者查看。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值