LangChain
目录
DeepSeek
LangChain 是一个用于构建大语言模型应用的开发框架,其核心概念在于将 LLM 调用、数据检索、记忆存储等组件“链式”组合,形成可编排的复杂工作流。它主要用于简化智能体、问答系统、RAG 等应用的开发,通过标准化接口与模块化设计,显著提升 AI 应用的构建效率与灵活性。
核心概念

场景示例
通过一个最简单的与大模型交互问答示例,展示 LangChain 的基本用法。
环境准备
pip install flask langchain langchain-openai os配置好自定义大模型的环境变量:MODEL_BASE_URL、MODEL_NAME、API_KEY。
创建 Server
server.py 文件:
from flask import Flask, request, jsonify
# === LangChain 核心组件 ===
from langchain_core.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
# === Flask 初始化 ===
app = Flask(__name__)
# =========================
# Step 1: 初始化 LLM
# =========================
# 这里填写你的模型信息(OpenAI-compatible)
llm = ChatOpenAI(
base_url=os.environ.get("MODEL_BASE_URL"),
model=os.environ.get("MODEL_NAME"),
api_key=os.environ.get("API_KEY"),
)
# =========================
# Step 2: 定义 PromptTemplate
# =========================
# 核心作用:规范输入结构
prompt = PromptTemplate.from_template(
"你是一个简洁的助手,请用一句话回答用户问题:\n{user_input}"
)
# =========================
# Step 3: 构建 LCEL Chain
# =========================
# LangChain 新版核心写法(Runnable)
chain = prompt | llm
# =========================
# Step 4: 封装调用函数
# =========================
def run_chain(user_input: str):
print("\n===== LangChain 调用开始 =====")
print(f"[输入] user_input: {user_input}")
# Prompt 渲染(仅用于日志展示)
formatted_prompt = prompt.format(user_input=user_input)
print(f"[Prompt] \n{formatted_prompt}")
# 调用 Chain
response = chain.invoke({"user_input": user_input})
print(f"[原始返回] {response}")
# Chat 模型返回是对象,需要取 content
result = response.content
print(f"[最终输出] {result}")
print("===== LangChain 调用结束 =====\n")
return result
# =========================
# Step 5: Flask HTTP 接口
# =========================
@app.route("/ask", methods=["POST"])
def ask():
data = request.json
user_input = data.get("user_input", "")
result = run_chain(user_input)
return jsonify({"input": user_input, "output": result})
# =========================
# 启动服务
# =========================
if __name__ == "__main__":
print("🚀 Server running at http://localhost:5000")
app.run(debug=True)创建 Client
client.py 文件,发送请求:
import requests
URL = "http://localhost:5000/ask"
def ask(user_input):
response = requests.post(URL, json={"user_input": user_input})
print("User:", user_input)
print("AI:", response.json()["output"])
# === 对话测试===
ask("Who are you?")运行和测试
开 2 个终端,分别运行:
python server.py
python client.py