章节二十九智库——Web服务集成一、导入流程Web集成这一节介绍如何把LangGraph知识库导入流程集成到FastAPI Web服务中让用户可以通过网页上传文件、查看导入进度。FastAPI基础FastAPI是一个高性能的Python Web框架适合快速搭建API服务。它的特点是速度快、代码量少、自带交互式API文档访问/docs即可查看原生支持异步适合高并发场景。核心功能说明定义路由app.get、app.post来处理不同的HTTP请求自动解析路径参数和查询参数并做类型检查支持返回JSON数据、文件响应等多种格式内置跨域中间件CORS解决前后端分离时的跨域问题支持同步和异步函数异步函数用async def定义耗时操作用await让出CPU支持文件上传通过UploadFile接收前端上传的文件支持分块读取大文件支持后台任务BackgroundTasks适合执行耗时的导入流程不阻塞接口响应导入服务集成流程将导入流程集成到Web服务主要包含以下几个核心接口和功能第一步初始化FastAPI应用。配置跨域中间件、挂载静态文件目录、设置API标题和描述。第二步提供前端页面。通过路由返回导入页面的HTML文件用户访问http://localhost:8000/import.html即可看到上传界面。第三步实现文件上传接口/upload。接收前端上传的文件按日期和任务ID分层保存到本地同时上传到MinIO对象存储做持久化备份然后为每个文件启动一个独立的LangGraph后台处理任务。第四步后台任务执行。在后台异步执行完整的LangGraph导入流程解析、切分、向量化、入库每完成一个节点就更新任务状态前端可以轮询查看进度。第五步任务状态查询接口/status/{task_id}。前端通过轮询这个接口获取任务的实时进度包括全局状态等待中/处理中/完成/失败和已完成的节点列表。第六步启动服务。可以直接运行Python脚本启动也可以用uvicorn命令启动支持热重载开发环境首选。二、检索流程Web搭建SSE技术SSE是什么SSEServer-Sent Events是一种基于HTTP的服务端单向推送技术。浏览器建立一个长连接服务端可以持续向客户端推送数据。和普通HTTP请求的区别普通短连接请求一次响应一次完事。轮询客户端不停发请求问好了吗浪费资源。SSE客户端连一次服务端有数据就推实时又省资源。SSE适合的场景任务进度推送、大模型流式输出、日志监控。SSE的数据格式很简单每条消息由event事件名和data数据内容组成消息之间用两个换行符分隔。SSE进阶用法实际项目中SSE通常配合异步队列使用第一步前端提交任务。通过POST请求把查询内容发给后端。第二步后端启动异步任务。把任务交给后台执行同时为这个会话创建一个专属的异步队列。第三步后端处理中持续推送。异步任务每产生一条结果就丢进队列SSE从队列里取数据实时推送给前端。第四步任务完成推送结束标记。往队列里放一个结束标记SSE收到后就停止推送。第五步前端按事件类型处理。可以区分进度事件、完成事件、错误事件分别做不同的展示处理。检索服务集成流程检索流程的Web服务搭建和导入流程类似但多了流式输出的能力第一步定义FastAPI应用和路由。配置跨域挂载聊天页面chat.html定义健康检查接口。第二步定义查询接口/query。接收用户的查询内容和会话ID如果是流式模式就创建SSE队列然后启动LangGraph检索工作流。第三步定义SSE流式接口/stream/{session_id}。从SSE队列中持续取数据并推送给前端实现打字机效果的实时回答。第四步定义历史记录接口/history/{session_id}。从MongoDB中查询当前会话的聊天记录支持分页和清空。第五步集成MongoDB。用Docker部署MongoDB存储会话历史记录包括用户问题、助手回答、改写后的查询、关联的商品名等信息。名词解释FastAPIPython高性能Web框架自带API文档支持异步适合搭接口服务。SSE服务端单向推送技术适合流式输出场景像直播一样实时推送数据。CORS跨域资源共享机制解决前端页面调用后端接口时的域名限制问题。异步程序不用等一个任务做完才干下一个可以同时处理多个任务。MinIO兼容S3协议的对象存储服务用来存文件、图片等二进制数据。MongoDB文档型数据库存JSON格式数据很方便适合存聊天记录。API程序接口不同系统之间靠它互相传数据和发指令。RAG检索增强生成先从知识库找资料再让大模型回答减少胡说。
【Agent智能体】29智库Web服务集成
章节二十九智库——Web服务集成一、导入流程Web集成这一节介绍如何把LangGraph知识库导入流程集成到FastAPI Web服务中让用户可以通过网页上传文件、查看导入进度。FastAPI基础FastAPI是一个高性能的Python Web框架适合快速搭建API服务。它的特点是速度快、代码量少、自带交互式API文档访问/docs即可查看原生支持异步适合高并发场景。核心功能说明定义路由app.get、app.post来处理不同的HTTP请求自动解析路径参数和查询参数并做类型检查支持返回JSON数据、文件响应等多种格式内置跨域中间件CORS解决前后端分离时的跨域问题支持同步和异步函数异步函数用async def定义耗时操作用await让出CPU支持文件上传通过UploadFile接收前端上传的文件支持分块读取大文件支持后台任务BackgroundTasks适合执行耗时的导入流程不阻塞接口响应导入服务集成流程将导入流程集成到Web服务主要包含以下几个核心接口和功能第一步初始化FastAPI应用。配置跨域中间件、挂载静态文件目录、设置API标题和描述。第二步提供前端页面。通过路由返回导入页面的HTML文件用户访问http://localhost:8000/import.html即可看到上传界面。第三步实现文件上传接口/upload。接收前端上传的文件按日期和任务ID分层保存到本地同时上传到MinIO对象存储做持久化备份然后为每个文件启动一个独立的LangGraph后台处理任务。第四步后台任务执行。在后台异步执行完整的LangGraph导入流程解析、切分、向量化、入库每完成一个节点就更新任务状态前端可以轮询查看进度。第五步任务状态查询接口/status/{task_id}。前端通过轮询这个接口获取任务的实时进度包括全局状态等待中/处理中/完成/失败和已完成的节点列表。第六步启动服务。可以直接运行Python脚本启动也可以用uvicorn命令启动支持热重载开发环境首选。二、检索流程Web搭建SSE技术SSE是什么SSEServer-Sent Events是一种基于HTTP的服务端单向推送技术。浏览器建立一个长连接服务端可以持续向客户端推送数据。和普通HTTP请求的区别普通短连接请求一次响应一次完事。轮询客户端不停发请求问好了吗浪费资源。SSE客户端连一次服务端有数据就推实时又省资源。SSE适合的场景任务进度推送、大模型流式输出、日志监控。SSE的数据格式很简单每条消息由event事件名和data数据内容组成消息之间用两个换行符分隔。SSE进阶用法实际项目中SSE通常配合异步队列使用第一步前端提交任务。通过POST请求把查询内容发给后端。第二步后端启动异步任务。把任务交给后台执行同时为这个会话创建一个专属的异步队列。第三步后端处理中持续推送。异步任务每产生一条结果就丢进队列SSE从队列里取数据实时推送给前端。第四步任务完成推送结束标记。往队列里放一个结束标记SSE收到后就停止推送。第五步前端按事件类型处理。可以区分进度事件、完成事件、错误事件分别做不同的展示处理。检索服务集成流程检索流程的Web服务搭建和导入流程类似但多了流式输出的能力第一步定义FastAPI应用和路由。配置跨域挂载聊天页面chat.html定义健康检查接口。第二步定义查询接口/query。接收用户的查询内容和会话ID如果是流式模式就创建SSE队列然后启动LangGraph检索工作流。第三步定义SSE流式接口/stream/{session_id}。从SSE队列中持续取数据并推送给前端实现打字机效果的实时回答。第四步定义历史记录接口/history/{session_id}。从MongoDB中查询当前会话的聊天记录支持分页和清空。第五步集成MongoDB。用Docker部署MongoDB存储会话历史记录包括用户问题、助手回答、改写后的查询、关联的商品名等信息。名词解释FastAPIPython高性能Web框架自带API文档支持异步适合搭接口服务。SSE服务端单向推送技术适合流式输出场景像直播一样实时推送数据。CORS跨域资源共享机制解决前端页面调用后端接口时的域名限制问题。异步程序不用等一个任务做完才干下一个可以同时处理多个任务。MinIO兼容S3协议的对象存储服务用来存文件、图片等二进制数据。MongoDB文档型数据库存JSON格式数据很方便适合存聊天记录。API程序接口不同系统之间靠它互相传数据和发指令。RAG检索增强生成先从知识库找资料再让大模型回答减少胡说。