LangChain 入门 服务端部署-FastAPI
在向模型提交多模态消息,比如:音频、视频、图片时,我们不建议直接发送文件数据(base64)给模型,这会大量占用内存和会话记忆。更常见的方案是:
- 先将多模态文件上传至通用的OSS服务,例如:阿里云OSS、腾讯云COS等
- 获取oss服务的文件url地址,组织多模态消息,发送给大模型

我们的服务端需要具备以下接口:
- 对话接口:接收用户聊天消息,并调用Agent
- 会话管理接口:查询或删除会话历史
- 文件上传接口:调用OSS提供的客户端,实现文件上传授权,将来由前端完成文件上传,文件不经过服务器。
app/
├── main.py # FastAPI 入口,配置路由和静态文件
│
├── agents/
│ └── personal_chief.py # AI 代理核心逻辑
│
├── api/
│ └── v1/
│ ├── chat.py # 对话 API
│ │ ├── POST /chat/stream 流式对话
│ │ ├── GET /chat/messages 获取历史
│ │ └── DELETE /chat/messages 清空历史
│ │
│ └── oss.py # OSS 上传签名 URL
│
├── models/
│ └── schemas.py # Pydantic 数据模型,请求/响应数据结构定义
│
├── common/
│ └── logger.py # 日志配置
│
└── static/ # Next.js 编译产出的静态网页
├── index.html # 前端入口
├── _next/ # Next.js 构建资源
└── ... # 其他静态资源
安装依赖
uv add fastapi alibabacloud-oss-v2
import os
from fastapi import FastAPI
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
from app.api.v1 import chat
from app.api.v1 import oss
from app.common.logger import setup_logging
# 初始化日志配置
setup_logging()
# 初始化FastAPI
app = FastAPI(
title="Personal Chief API",
description="私厨",
version="0.1.0"
)
# ...中间代码略...
if __name__ == "__main__":
import uvicorn
# 启动命令:python -m app.main
uvicorn.run("app.main:app", host="127.0.0.1", port=8001, reload=True)
本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/20430782
浙公网安备 33010602011771号