当前位置: 首页 > news >正文

AI学习——FastAPI 接口封装

FastAPI 接口封装

  • 一、FastAPI 介绍
  • 二、安装依赖
  • 三、FastAPI 最基础接口
  • 四、把 网页总结Agent 封装成 API
    • 功能
    • 代码
  • 五、启动 API
  • 六、自动生成的接口文档
    • 👉 http://localhost:8000/docs
  • 七、测试接口(3种方式)
    • 方式1:在 /docs 里点「Try it out」直接测
    • 方式2:用 curl 调用
    • 方式3:任何前端/小程序/后端都能调用

前言:
  1. FastAPI 基础路由
  2. 网页总结 Agent / 文档问答 / RAG封装成 API
  3. 自动生成接口文档
  4. 支持外部调用(前端、小程序、其他服务都能调用)

一、FastAPI 介绍

FastAPI = 最快、最简单把 Python 代码变成 API 的工具

  • 1分钟写接口
  • 自动生成可视化文档
  • 支持 POST/GET
  • 适合把Agent、RAG、总结工具做成接口供外部调用

链路:
把 网页总结Agent 封装成 API → 别人发 URL → 你返回结构化笔记


二、安装依赖

pipinstallfastapi uvicorn langchain langchain-openai beautifulsoup4

三、FastAPI 最基础接口

fromfastapiimportFastAPI app=FastAPI()# 1. 最简单接口(GET)@app.get("/")defhome():return{"message":"AI Agent API 服务已启动"}# 2. 带参数接口@app.get("/add")defadd(a:int,b:int):return{"result":a+b}

运行:

uvicorn main:app--reload

打开浏览器访问:

  • http://localhost:8000 → 看到欢迎语
  • http://localhost:8000/add?a=1&b=2 → 直接返回结果
  • http://localhost:8000/docs →自动生成API文档(超级强)

四、把 网页总结Agent 封装成 API

功能

  • 外部传入url
  • API 内部调用 Agent
  • 返回结构化笔记
  • 支持所有前端/后端/小程序调用

代码

# main.pyfromfastapiimportFastAPIfrompydanticimportBaseModelfromlangchain_openaiimportChatOpenAIfromlangchain.memoryimportConversationBufferMemoryfromlangchain.agentsimportAgentExecutor,create_react_agentfromlangchain.toolsimportToolfromlangchainimporthubimportrequestsfrombs4importBeautifulSoup# ==================# 1. 初始化 FastAPI# ==================app=FastAPI(title="AI 网页总结 Agent API",version="1.0")# ==================# 2. 初始化 LLM# ==================llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.1,api_key="你的API_KEY",base_url="https://api.chatanywhere.tech/v1")# ==================# 3. 记忆功能# ==================memory=ConversationBufferMemory(memory_key="chat_history",return_messages=True)# ==================# 4. 网页抓取工具# ==================deffetch_and_clean(url:str)->str:try:html=requests.get(url,timeout=10).text soup=BeautifulSoup(html,"html.parser")tags=soup.find_all(["p","h1","h2","h3","h4","li"])content="\n".join(t.get_text(strip=True)fortintags)returncontent[:12000]exceptExceptionase:returnf"抓取失败:{str(e)}"web_tool=Tool(name="WebFetcher",func=fetch_and_clean,description="输入URL获取网页正文")# ==================# 5. 结构化总结 Prompt# ==================prompt=hub.pull("hwchase17/react-chat")prompt.template+=""" 请你总结网页内容,严格输出以下格式: 【文章主题】 【核心观点】 【重点内容】 【结构化笔记】 """# ==================# 6. 创建 Agent# ==================agent=create_react_agent(llm,[web_tool],prompt)agent_executor=AgentExecutor(agent=agent,tools=[web_tool],memory=memory,verbose=True)# ==================# 7. 定义API接收参数格式# ==================classSummaryRequest(BaseModel):url:str# 用户传入URL# ==================# 8. 【核心API接口】# ==================@app.post("/summarize",summary="输入网页链接,返回结构化总结")defsummarize_website(request:SummaryRequest):result=agent_executor.invoke({"input":request.url})return{"code":200,"url":request.url,"summary":result["output"]}# ==================# 9. 健康检查接口# ==================@app.get("/")defroot():return{"status":"running","agent":"网页总结AI"}

五、启动 API

uvicorn main:app--reload--host0.0.0.0--port8000

六、自动生成的接口文档

打开浏览器访问:

👉 http://localhost:8000/docs

你会看到:

  • 接口列表
  • 可直接在线测试
  • 自动生成参数说明
  • 一键调用、看返回结果

这就是 FastAPI 最强的地方!


七、测试接口(3种方式)

方式1:在 /docs 里点「Try it out」直接测

输入:

{"url":"https://baike.baidu.com/item/人工智能"}

返回:

{"code":200,"url":"https://baike.baidu.com/item/人工智能","summary":"【文章主题】...【核心观点】...【结构化笔记】..."}

方式2:用 curl 调用

curl-XPOST"http://localhost:8000/summarize"-H"Content-Type: application/json"-d'{"url":"https://baike.baidu.com/item/人工智能"}'

方式3:任何前端/小程序/后端都能调用

✅ Java
✅ Vue / React
✅ 微信小程序
✅ Python
✅ 移动端APP


http://www.jsqmd.com/news/941166/

相关文章:

  • FunASR实战:如何用Python给会议录音自动加标点和分段?
  • 别再被AI培训割韭菜了!从战略到变现,老板必知的AI智能体应用部署4大内幕
  • 2026 台北国际电脑展开幕,英伟达、英特尔等科技巨头发布多款新品
  • 免费微信聊天记录永久保存终极指南:WeChatMsg让数据真正属于你
  • 手机号码定位神器:3分钟免费查询归属地,地图精准标注
  • AWR2944开发板实测DDM雷达原始数据+MATLAB一键处理脚本
  • 淮北市全品类贵金属黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 前途无量YY
  • 5分钟高效部署Poppler Windows完整方案:专业级PDF处理实战指南
  • 从‘算得对’到‘证得清’:一个非数学专业生的《数学分析》自学踩坑与上岸心得
  • 7-Zip-zstd终极指南:让文件压缩速度提升300%的智能解决方案
  • 零基础入门计算机网络:一文搞懂体系结构与分层思想
  • 告别手抖废片:用DeblurGAN-v2的MobileNet-DSC版,手机也能实时搞定图像去模糊
  • Adobe Firefly 3.0+Figma AI Beta双引擎深度评测:实测17个真实项目,响应延迟下降68%但存在3个致命兼容盲区
  • 别再手动画圆了!用Arcpy脚本工具批量生成矢量圆(附完整Python代码)
  • 小升初规划决策模型:基于能力发展阶段的分年级策略
  • 别再为时序数据标注发愁了!手把手教你用自监督学习搞定预测、分类与异常检测
  • B站视频转文字的终极方案:Bili2text完整指南让知识提取效率翻倍
  • 免费Mac光标定制终极指南:5分钟掌握Mousecape个性化鼠标体验
  • ExtractorSharp:5步掌握游戏资源编辑的完整指南
  • LeetCode 链表
  • 企业网络割接避坑指南:为什么你的深信服AD配置完上不了网?
  • 从零开始:用Docker在Mac上5分钟搞定PostgreSQL 15开发环境(附常用命令速查)
  • 从收音机到手机:三极管放大电路三种组态(共射、共集、共基)在实际产品中的经典应用拆解
  • AdaMamba:自适应Mamba模型在时间序列预测中的创新应用
  • 别再只会拖路由器了!EVE-NG里用VPCS模拟真实PC的5个实战场景(附完整命令清单)
  • 从GPON到400G:家庭宽带里的‘B+’和数据中心里的‘PAM4’到底在讲什么?
  • 工业质检实战:用YOLOv8+DCNv4搞定NEU-DET钢材缺陷检测,mAP提升到0.737的保姆级配置
  • 从关键词匹配到语义理解:构建智能混合搜索系统的核心技术与实践
  • 告别‘炼丹’:用ACGAN、SGAN和cGAN玩转可控图像生成(附PyTorch实战代码)
  • 别再只调API了!手把手教你从H.264裸流到FLV封装的底层实现(附SPS/PPS处理避坑指南)