Langchain框架的基础介绍

LangChain是一个用于构建基于大型语言模型(LLM)应用程序的开源框架。它提供了一系列工具和组件,帮助开发者更高效地利用语言模型的能力,构建复杂的AI应用。以下是LangChain框架的核心概念和功能:

1. 核心组件
  • Models(模型):支持多种LLM接口,包括OpenAI、Anthropic等主流模型,也支持本地部署的模型。
  • Prompts(提示):提供模板化提示管理,支持动态变量插入,比如用户输入或上下文数据。
  • Memory(记忆):支持短期和长期记忆存储,让模型在对话中保持上下文连贯性。
  • Indexes(索引):集成向量数据库和文档检索功能,支持高效的知识库查询。
  • Chains(链):通过预定义的工作流将多个模型调用串联起来,完成复杂任务。
2. 典型应用场景
  • 智能问答系统:结合知识库检索和语言模型生成能力,构建精准的问答服务。
  • 文档总结工具:自动分析长文档并生成简洁摘要。
  • 代码辅助工具:帮助开发者理解、生成和优化代码。
  • 个性化聊天机器人:通过记忆功能实现个性化对话体验。
3. 使用示例(Python)
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
# 初始化模型
llm = OpenAI(model_name="text-davinci-003")
# 创建提示模板
prompt = PromptTemplate(
    input_variables=["product"],
    template="为{product}写一段50字的产品描述"
)
# 运行链式调用
formatted_prompt = prompt.format(product="智能手表")
response = llm(formatted_prompt)
print(response)
4. 扩展功能
  • Agents(代理):让模型能够动态选择工具和决策执行路径
  • Callbacks(回调):提供执行过程中的钩子函数,方便监控和记录
  • Evaluation(评估):内置多种评估方法,帮助测试模型表现
5. 生态系统

LangChain支持与主流技术栈集成,包括:

  • 向量数据库(Pinecone、Weaviate)
  • 云服务(AWS、GCP)
  • 开发工具(LangSmith、LangServe)

Langchain模型调用的分类整理

按照模型功能分类

非对话模型
适用于生成文本、补全内容等非交互场景。示例代码调用OpenAI类生成关于春天的诗歌:

import os
import dotenv
from langchain_openai import OpenAI

dotenv.load_dotenv()
os.environ["OPENAI_API_KEY"] = os.getenv("GUIJI_KEY")
os.environ["OPENAI_BASE_URL"] = os.getenv("GUIJI_URL")

llm = OpenAI(model='deepseek-ai/DeepSeek-V3.2-Exp')
response = llm.invoke("写一首关于春天的诗")
print(response)

对话模型
适用于多轮交互场景,需构造消息列表(包含系统消息和用户消息)。示例调用ChatOpenAI类:

from langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage, HumanMessage

chat_model = ChatOpenAI(model='deepseek-ai/DeepSeek-V3.2-Exp')
messages = [
    SystemMessage(content='我是你的智能菜谱厨师,我叫马飞龙'),
    HumanMessage(content='你好,我是王法帝,很高兴认识你')
]
response = chat_model.invoke(messages)
print(response.content)

嵌入模型
用于文本向量化,示例调用OpenAIEmbeddings类:

from langchain_openai import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings(model='Qwen/Qwen3-Embedding-0.6B')
res1 = embeddings_model.embed_query(r"./plot.py")
print(res1)

按照参数配置方式分类

硬编码方式
直接在代码中写入API密钥和模型参数,灵活性差。

环境变量
通过.env文件管理敏感信息,示例:

import os
dotenv.load_dotenv()
os.environ["OPENAI_API_KEY"] = os.getenv("GUIJI_KEY")

配置文件
推荐使用YAML或JSON文件集中管理配置,便于维护和扩展。


按照API提供方分类

LangChain API
LangChain API 是一个强大的工具链框架,它集成了多种主流语言模型(如GPT、Claude等),为开发者提供统一的调用接口。通过抽象底层模型差异,开发者可以用相同的代码风格调用不同厂商的模型服务。例如,在Python中只需简单几行代码即可完成模型调用,无需关心各个模型API的具体实现细节。该API特别适合需要快速切换或对比不同模型效果的场景,也降低了多模型管理的复杂度。

官方OpenAI API
这是由OpenAI官方提供的原生接口服务,开发者需要按照OpenAI的API规范直接发送HTTP请求。与封装接口不同,官方API需要开发者自行处理请求构造、错误重试、响应解析等底层细节。典型调用流程包括:设置API密钥、构建符合OpenAI格式的请求体、处理返回的JSON数据。虽然灵活性更高,但开发复杂度也相应增加,适合对OpenAI模型有深度定制需求的场景。

第三方平台API
指各类提供AI模型服务的第三方云平台(如AWS Bedrock、阿里云等)开放的API接口。这类API需要严格遵循对应平台的文档规范,包括但不限于:特殊的鉴权方式(如AK/SK认证)、定制的请求头、平台特有的参数格式等。每个平台的调用方式可能存在显著差异,开发者需要仔细阅读官方文档,部分平台还会提供SDK来简化调用过程。这类接口适合已经使用特定云服务的企业集成AI能力。

Logo

更多推荐