基于FastAPI+LangChain+LangGraph+Agent+多模态的AI Agent 有渔渔具网站

不是套壳 Chat,是真正会意图路由、调用工具、查知识库、看图识装备、帮用户加购物车的 Agent。

前端 Vue3,后端 FastAPI,AI 编排 LangGraph,多模态走 OpenAI Vision 协议------

模型、提示词、知识库全部支持后台页面在线配置,改提示词不用动一行代码。


一、项目技术栈

一个 AI 应用从「模型调用」走到「可交付系统」,中间隔着工程化这道坎。这个项目把整条链路都补齐了:

层次 技术选型 在项目里的作用
后端框架 FastAPI + Tortoise ORM + MySQL 异步高性能接口、自动建表、自动注册路由,自带 Swagger
AI 编排 LangChain(langchain-core / langchain-openai)+ LangGraph StateGraph 显式编排 Agent 节点流转,工具注册与调用
多模态 OpenAI Vision 协议 上传钓场/渔具照片即可让 AI 识别理解,并接入后续工具链
前端 Vue3 + Vue Router + Element Plus + Axios + Vite 前后台双端, adapter 自动携带 token
可视化 ECharts 后台数据看板:订单状态环形饼图、分类/热销条形图
富文本 wangEditor 5 + markdown-it + highlight.js 后台资讯/商品详情富文本编辑;AI 回答按 Markdown 渲染并做代码高亮
流式输出 SSE(StreamingResponse) AI 回答打字机效果
鉴权 JWT + FastAPI Depends + 前端路由守卫 前后台双层隔离,越权直接 401

一句话总结:后端用 Python,AI 用 LangGraph 编排,前端能用页面把 AI 的「大脑」(模型、提示词、知识库)全部换掉。


二、项目功能介绍

1. 前台商城(用户端)

  • 首页:轮播图、公告(点击从右上角弹出公告正文)、分类导航、推荐商品、热销榜、最新资讯

  • 商品:分类筛选 / 搜索 / 排序 / 分页;详情页支持多图、规格、收藏、评价、富文本图文详情与相似推荐

  • 交易:购物车(勾选结算、批量删除、清空)、下单结算、订单中心(支付 / 收货 / 取消 / 评价)

  • 资讯中心:富文本资讯,后台编辑即可带图带视频

  • AI 智能助手:支持文字 + 图片提问,回答支持 Markdown + 代码高亮,还能直接推送商品卡片

体验细节:任意页面加购/删除后,顶部购物车角标实时刷新(基于轻量全局事件总线);页面滚动条全站隐藏但滚动照常。

2. 后台管理(运营端)

数据统计看板(ECharts)、分类管理、商品管理(多图上传 / 富文本描述 / 上下架)、订单管理、评价管理、资讯管理、轮播图、公告、管理员、会员管理,所有列表统一支持每页条数切换 + 页码跳转。

3. AI 能力中心(项目的核心)

  • 模型配置:对话 / 向量 / 图片模型,支持 OpenAI、DeepSeek、通义、智谱、硅基流动、Ollama 等任意 OpenAI 兼容协议,可设默认、启停、多模态标记,一键「测试连接」

  • 提示词配置:agent_system / intent / rag / tool_answer / chitchat / vision / recommend 全部落在数据库,改完即时生效,支持变量渲染预览

  • 知识库管理:文档增删改、自动切片(300 字窗口 + 60 字重叠)、重建索引、切片预览、检索测试

  • 对话记录:完整消息(含用户头像)、意图/工具/引擎标签、Agent 执行轨迹、引用来源、推荐结果

4. Agent 工作流

复制代码
用户提问(文本 / 图片)
   │
   ▼
perceive   多模态感知:有图片时调用视觉模型理解图片内容
   │
   ▼
classify   意图路由:LLM 输出 {工具, 参数},失败或超时降级本地规则路由
   │
   ├─► knowledge  知识库 RAG 检索(向量相似度 + 关键词加权)
   ├─► tool       工具调用:商品搜索 / 详情 / 装备推荐 / 订单查询 / 资讯搜索 / 加入购物车
   └─► generate   直接生成
   │
   ▼
generate   结合人设提示词 + 历史消息 + 工具/检索结果生成答复
   │
   ▼
持久化:消息、执行轨迹、引用来源、推荐商品卡片

前台给用户看答案,后台给运营看全链路:同一个会话,前台气泡里只有回答正文 + 商品卡片;后台「对话记录」里完整保留每一步走了哪个节点、调了哪个工具、引用了哪段知识。这就是 Agent 系统最需要的可解释性。

没配模型也不会崩:自动降级为「离线兜底回复」,并把工具/检索结果直接呈现给用户。


三、拿到项目能学到什么

这部分是它和普通 CRUD 项目的最大区别:它把一个 AI 应用的工程化全链路都跑了一遍。

  1. Agent 编排思维(最值钱的部分)不再把 LLM 当黑盒调 API,而是用 LangGraph 把「感知 → 路由 → 检索/工具 → 生成 → 持久化」拆成显式节点,理解什么是状态图、条件分支、工具注册。这套思维迁移到任意 Agent 项目都通用。

  2. RAG 落地全流程切片策略为什么要有重叠?向量召回和关键词召回怎么加权?没有 embedding 模型时怎么降级?比起背原理,把这一个链路踩完才是真的学会了------这些在项目里全部有实现。

  3. 高可用设计LLM 超时怎么降级兜底?多模型厂商如何一套代码兼容(LangChain 优先 + httpx 兜底)?Vector 库缺失时功能如何不崩?这些都是面试必问的「异常处理」题。

  4. AI 应用的工程细节

  • 流式输出时为什么不能每来一个字就跑一次语法高亮(代码块未闭合时怎么处理)

  • SSE 流式接口怎么写、前端怎么拼接渲染

  • Markdown 渲染的 XSS 防护(html: false)

  • 多模态消息(文本 + 图片)怎么构造进同一条对话

  1. 前后端分离的完整工程双层鉴权隔离、统一结果封装(Result.success)、全局异常处理、分页封装、文件上传协议适配;前端 Axios 拦截器、路由守卫、事件总线、ECharts 封装、富文本组件复用。

四、可以对应去刷哪些面试题

做完这个项目,下面这些题你都能答到点上、并且有真实代码可以举例:

Python / FastAPI 方向

  1. FastAPI 的 Depends 依赖注入原理是什么?怎么用它做鉴权?

  2. 异步 ORM(Tortoise)和 SQLAlchemy 的区别?连接池怎么配?

  3. 怎么设计一个统一的响应体与全局异常处理?

  4. CORS 预检(OPTIONS)请求为什么会出现?FastAPI 怎么配中间件?

  5. pydantic 模型和 ORM 模型的边界怎么划?(项目里 Account 是登录态对象,不能直接 get_or_none------这个坑我踩过)

LangChain / Agent 方向

  1. 什么是 Agent?ReAct 和 LangGraph 的 StateGraph 有什么区别?

  2. Function Calling / Tool Calling 的执行流程是什么?工具描述怎么写模型才调得准?

  3. 意图路由(Router)怎么做?LLM 路由失败怎么降级?

  4. Agent 的短期记忆(多轮对话历史)怎么管理?上下文超长怎么办?

  5. 怎么让 Agent 的每一步都可观测、可追溯?(执行轨迹设计)

RAG 方向

  1. 文档切片的窗口大小与重叠比例怎么定?切得太碎/太长分别有什么后果?

  2. 向量检索和关键词检索(BM25)怎么结合?混合检索的权重怎么调?

  3. 没有 embedding 模型时,RAG 还能不能跑?降级方案怎么设计?

  4. 怎么评估召回效果?(项目里贴心地做了「检索测试」页面)

  5. 知识库更新后索引怎么增量维护?

多模态 / 流式

  1. OpenAI Vision 协议的图片消息怎么构造?base64 还是 URL,各有什么代价?

  2. SSE 和 WebSocket 的区别?什么场景该用 SSE?

  3. 流式返回时前端如何边收边渲染?断流、粘包怎么处理?

前端 / 工程化

  1. 前端如何让 Markdown 输出既安全又支持代码高亮?(html: false 的理由)

  2. 流式输出场景下如何避免重复渲染导致卡顿?(流式期间跳过高亮)

  3. 跨页面的全局状态如何同步?(事件总线 vs Pinia)

  4. 富文本编辑器的图片上传协议怎么对接?(wangEditor 要求返回 {errno, data:[{url}]})

  5. 弹窗锁滚动时页面为什么会抖?如何消除(滚动条宽度补偿)?

系统设计 / 场景题

  1. 让你设计一个「电商 AI 客服」,你怎么画架构图?(本项目就是完整答案)

  2. AI 回答不准确时,你的排查路径是什么?(先看提示词 → 看意图路由 → 看召回内容 → 看工具返回值)

  3. 如何控制大模型调用成本?(意图分级、缓存、降级、模型分层)


项目完整说明、目录结构、快速开始见同目录《项目说明文档.md》,

界面截图见根目录 项目截图/。

如果你也在做 AI 应用,欢迎对照这套链路检查自己还差哪一环:编排、检索、降级、观测,缺一环,Demo 就走不到生产。

五、功能截图部分

登录注册

后台首页

全部商品

钓鱼资讯

模型配置

AI选竿助手

前台首页

相关推荐
锋行天下1 小时前
Langgraph-cli 本地构建失败,改用服务器docker构建的流程
人工智能·前端框架·全栈
释厄6231 小时前
群体投票双通道狭隘论——AI泡沫出清后的主角确权
人工智能
IT古董2 小时前
《Agent开发工程师成长指南》- 第4章 第2节:Prompt设计五要素——任务、角色、上下文、约束与输出格式
大数据·人工智能·prompt
霸道流氓气质2 小时前
AI 流式对话与实时聊天平台:SSE 解码竞态、有状态会话隔离与背压取消的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
孟健2 小时前
我把9个AI助理迁到了Grok Bot,连远程服务器都省了
人工智能·aigc·ai编程
AI+程序员在路上2 小时前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能
AI备案指南-满满3 小时前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记
这个DBA有点耶3 小时前
连拿六年第一后宣布出海:国产数据库凭什么敢撕掉“平替”的标签?
数据库·人工智能·架构
Jmyd01233 小时前
数字孪生校园ROI测算模型:成本收益参数化与敏感性分析方法
人工智能·数字孪生·三维数字化