LangChain 是什么?

LangChain 是一个专为大语言模型(LLM)应用开发设计的开源框架。它提供了一套标准化的接口,让开发者能够轻松对接各种大模型(OpenAI、通义千问、DeepSeek 等),而无需关心底层 API 的差异。

简单来说,LangChain 之于 Python AI 开发,就像 Spring AI 之于 Java AI 开发——统一接口、屏蔽差异、开箱即用

它的核心优势:

  • 模型无关:同一套代码可以无缝切换不同的大模型,只需修改配置

  • 生态丰富:内置对话记忆、RAG、Agent、工具调用等高级能力

  • 兼容 OpenAI 协议:国内大多数模型(通义千问、DeepSeek 等)都提供了 OpenAI 兼容接口,LangChain 可以直接对接

下面我们通过一个最简单的对话接口,带你快速上手。

源码:使用 LangChain + FastAPI 实现一个 AI 对话接口

源码:[项目源码下载](/oncall/智能 OnCall Agent 项目/项目源码下载(完整)/) 使用langchain实现一个ai对话接口

创建项目 & 安装依赖

创建一个项目目录,新建 requirements.txt,写入以下依赖:

fastapi
uvicorn
langchain-openai

然后执行安装:

pip install -r requirements.txt

三个依赖各司其职:

依赖说明
fastapi高性能 Python Web 框架,用于快速构建 HTTP 接口
uvicornASGI 服务器,负责启动和运行 FastAPI 应用
langchain-openaiLangChain 对 OpenAI 协议的封装,支持所有兼容 OpenAI 接口的模型

2. 配置大模型

使用阿里云百炼(DashScope)提供的 OpenAI 兼容接口来接入通义千问模型。

API Key 获取方式:前往 阿里云百炼控制台 创建 API Key。

在代码中配置模型时需要三个关键参数:

参数说明
api_key你在百炼控制台获取的 API Key
base_url百炼的 OpenAI 兼容地址:https://dashscope.aliyuncs.com/compatible-mode/v1
model使用的模型名称,这里选用 qwen3-max

3. 编写对话接口(完整代码)

整个项目只需一个 main.py 文件,代码如下:

from fastapi import FastAPI
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

app = FastAPI()

llm = ChatOpenAI(
    api_key="sk-你的API Key",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    model="qwen3-max",
)

@app.get("/api/chat")
async def chat(id: str = "", question: str = ""):
    if not question:
        return {"message": "question 不能为空", "data": None}

    response = llm.invoke([HumanMessage(content=question)])
    return {
        "message": "OK",
        "data": {
            "answer": response.content
        }
    }

没看错,总共不到 20 行代码,就实现了一个完整的 AI 对话接口。

4. 关键代码解析

代码说明
ChatOpenAI(...)创建大模型客户端,通过 base_url 指向百炼的 OpenAI 兼容接口,一行配置即可对接通义千问
HumanMessage(content=question)将用户的问题封装为 LangChain 标准的「用户消息」格式
llm.invoke([...])同步调用大模型,传入消息列表,等待返回结果
response.content提取大模型返回的文本内容
@app.get("/api/chat")使用 FastAPI 定义一个 GET 接口,通过查询参数接收用户提问

整个调用链路一气呵成:封装消息 → 调用模型 → 提取回答,核心逻辑只需一行代码。

5. 启动 & 测试

启动应用:

uvicorn main:app --host 0.0.0.0 --port 8080

参数说明:

  • main:appmain 是文件名,app 是 FastAPI 实例的变量名

  • --host 0.0.0.0:允许外部访问

  • --port 8080:监听 8080 端口,与 Java 版本保持一致

启动成功后,打开浏览器或使用 curl 访问:

curl "http://localhost:8080/api/chat?question=你好,介绍一下你自己"

返回结果示例:

{
  "message": "OK",
  "data": {
    "answer": "你好!我是通义千问,一个由阿里云开发的大语言模型..."
  }
}

此外,FastAPI 还自带交互式 API 文档,启动后访问 http://localhost:8080/docs 即可在浏览器中直接测试接口,无需任何额外工具。