当前位置: 首页 > news >正文

LangChain API 功能介绍和使用示例

以下是关于 LangChain API 的安装与使用方法的详细指南,涵盖从环境准备到实际案例的完整流程:


一、安装步骤

1. 前置条件
  • Python 版本:需 Python ≥ 3.8(推荐最新版)。
  • 虚拟环境(可选但建议):避免依赖冲突。
    python -m venv myenv      # 创建虚拟环境
    source myenv/bin/activate # Linux/MacOS
    .\myenv\Scripts\activate  # Windows
    
2. 核心库安装

基础安装(包含核心功能):

pip install langchain

💡 扩展组件(按需选择):

  • 对接特定大模型提供商(如 OpenAI、Anthropic):
    pip install langchain_openai       # OpenAI/Azure
    pip install langchain_anthropic   # Anthropic
    pip install langchain_cohere      # Cohere
    
  • 嵌入模型集成:
    pip install langchain_community   # 社区版嵌入模型
    

二、基础使用示例

🔧 场景 1:基础文本生成
from langchain_openai import ChatOpenAI# 初始化模型客户端(需提前配置环境变量或直接传入 API Key)
model = ChatOpenAI(model="gpt-4o")  # 自动读取 .env 文件中的 OPENAI_API_KEY# 单轮对话
response = model.invoke("写一首关于月亮的短诗")
print(response.content)  # 输出生成的诗歌# 多轮对话历史
messages = [("system", "你是一位诗人"),("user", "描述星空的美丽"),
]
result = model.invoke(messages)
print(result.content)

⚙️ 关键类ChatOpenAI(支持聊天模式)、LLMChain(结合自定义提示模板)。

📦 场景 2:结构化数据输出
from pydantic import BaseModel, Field
from langchain_core.output_parsers import PydanticOutputParser
from langchain_openai import ChatOpenAI# 定义目标数据结构
class PoemReview(BaseModel):title: str = Field(description="诗歌标题")rating: int = Field(ge=1, le=5, description="评分 1-5")comments: str = Field(description="点评内容")# 初始化带结构解析器的模型
llm = ChatOpenAI(model="gpt-4o").with_structured_output(PoemReview)# 执行推理
review = llm.invoke("请评价这首古诗:《静夜思》")
print(review)  # 自动按字段返回结果

🔍 优势:强制模型输出符合预定义格式的数据,便于后续程序处理。

🔗 场景 3:链式工作流(Chain)
from langchain import PromptTemplate
from langchain.chains import LLMChain
from langchain_openai import ChatOpenAI# 定义提示模板
template = PromptTemplate.from_template("将以下英文翻译成中文:{input}")# 构建翻译链
translator = LLMChain(llm=ChatOpenAI(model="gpt-4o"),  # 底层模型prompt=template                  # 任务描述模板
)# 执行翻译
result = translator.run({"input": "Hello, world!"})
print(result["text"])  # 输出翻译结果

🔄 核心逻辑:将「输入预处理 → 模型推理 → 输出后处理」封装为可复用的流水线。


三、高级功能实践

🛠️ 整合外部工具(Tools)
from langchain import hub
from langchain_openai import ChatOpenAI
from langchain.agents import ToolAgent
from langchain.tools import DuckDuckGoSearchTool# 初始化工具集
tools = [DuckDuckGoSearchTool()]  # 网络搜索工具# 创建智能体代理
agent = ToolAgent(llm=ChatOpenAI(model="gpt-4o"),tools=tools,verbose=True  # 打印执行日志
)# 执行复杂任务
result = agent.run("明天北京天气如何?如果下雨,推荐室内活动。")
print(result)

🤖 原理:模型自动判断何时调用工具(如搜索天气 API),实现动态决策。

📚 连接知识库(RAG 检索增强生成)
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_openai import ChatOpenAI
from langchain.retrievers import ContextualCompressionRetriever
from langchain.chains import RetrievalQA# 加载文档 & 构建向量数据库
docs = [...]  # 你的文档列表
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
db = FAISS.from_documents(docs, embeddings)# 创建 RAG 链
qa_chain = RetrievalQA.from_chain_type(llm=ChatOpenAI(),retriever=ContextualCompressionRetriever(db),return_source_documents=True  # 返回引用来源
)# 提问并获取答案 + 依据
answer = qa_chain.invoke("什么是量子计算?")
print(f"答案:{answer['result']}\n来源:{answer['source_documents']}")

📖 适用场景:企业知识库问答、长文档分析等需要结合外部知识的场合。


四、常见问题解决

问题类型解决方案
ModuleNotFoundError确保已安装对应提供商的集成包(如 langchain_openai
API Key 缺失通过环境变量传递密钥(如 export OPENAI_API_KEY="your_key"
速率限制升级账户额度 / 改用本地模型(如 Ollama)
内存溢出减少上下文长度或启用分块处理

五、学习资源推荐

  1. 官方文档:https://api.langchain.com/docs/latest/index.html
  2. GitHub 仓库:https://github.com/langchain-ai/langchain
  3. 快速上手教程:https://js.langchain.com/docs/getting_started/introduction

通过以上步骤,您可以快速搭建基于 LangChain 的 AI 应用。如需进一步优化性能或定制复杂逻辑,建议深入研究其模块化设计原则(Models, Prompts, Chains, Agents)。

http://www.dtcms.com/a/304946.html

相关文章:

  • 单卡10分钟部署MiniCPM4-0.5B:轻量级大模型本地运行指南
  • ESP8266 AT 固件
  • Linux信号量:进程同步与互斥的核心机制
  • 人形机器人指南(十四)集成
  • 248°视野里的温柔革命:当清洁成为治愈城市的艺术
  • Qt 移动应用界面设计原则
  • 智能Agent场景实战指南 Day 23 : Agent安全与隐私保护
  • C++异常捕获:为何推荐按引用(by reference)捕获?
  • 【LeetCode 热题 100】(二)双指针
  • 基于Java+SQLServer2017实现(Web)酒店客房管理系统
  • MongoDB系列教程-教程概述
  • 系统选择菜单(ubuntu grub)介绍
  • 标量子查询 外表有多少重复值决定filter次数 转化 left join
  • Python三大Web框架:FastAPI vs Flask vs Django 详解与快速入门指南
  • BreachForums 黑客论坛强势回归
  • windows软件ARM64和AMD64(x64)区别,如何查看电脑支持哪种
  • JVM易混淆名称
  • 大型微服务项目:听书——多端重复提交订单问题适配器模式实现不同支付方式的选择零钱支付逻辑
  • 爬虫逆向之瑞数五案例:某某医学院(补环境,联调)
  • 适配器模式的三种C++实现
  • 宠物经济行业研究系列报告
  • electron-vite 动态加载脚本 实现动态插件
  • 如何为你的WordPress网站选择合适的安全插件
  • 【效率工具】255款工作计划表格Excel电子版模板:总结日月周报日历安排提醒时间管理
  • 遍历-找到匹配的节点
  • 零基础-动手学深度学习-7.6. 残差网络(ResNet)
  • [leetcode] 子集
  • OpenCL - study - code04 canny
  • 泰勒图中RMSD和RMSE是一个指标吗?
  • 掌控AI工具链:用 Python + API 构建 AI MCP 服务器