- 博客(14)
- 收藏
- 关注
原创 从零接触 FastAPI 框架,今日学习 day14:大模型 Function Calling 工具调用实战,集成外部能力到现有对话系统
阿里云百炼兼容 OpenAI 的 tools 格式,每个工具包含名称、功能描述、参数 Schema(JSON Schema 格式),描述越精准,大模型调用准确率越高。description="根据关键词、薪资范围、地点等条件搜索系统内的招聘职位信息","description": "职位关键词,如Python、后端、前端"},"city": {"description": "工作城市,如北京、上海、杭州"},"description": "最低薪资,单位K"},"page": {
2026-08-06 21:00:00
355
原创 从零接触 FastAPI 框架,今日学习 day13:Windows 部署 Docker + Kafka 消息队列入门
Kafka 是一款高吞吐、分布式、可持久化的消息队列中间件,最初由 LinkedIn 开发,现在是大数据与后端架构的标配。它的核心优势是能扛住百万级消息并发,同时保证数据不丢。环境落地:Windows 下搞定 Docker Desktop + WSL2 全套配置,踩过了虚拟化、C 盘占用、WSL 版本的新手坑。中间件部署:用 Docker Compose 一键拉起 KRaft 模式 Kafka,搞懂了监听器配置这个头号天坑,本地开发环境开箱即用。核心概念。
2026-08-05 12:29:54
187
原创 从零接触 FastAPI 框架,今日学习 day12:接入阿里云通义千问大模型,实现单 / 多轮对话与 Redis 上下文管理
基础调用:基于 OpenAI SDK 兼容对接阿里云百炼 qwen3.7-plus,实现了非流式、流式两种单轮对话多轮持久化:用 Redis 存储会话与消息历史,实现了用户多会话管理与对话上下文持久化窗口优化:通过「历史摘要压缩 + 保留近期轮次」的方案,解决了上下文窗口溢出的问题前后端对接:理清了 SSE 流式输出的对接方式与完整会话交互流程。
2026-08-04 16:56:45
334
原创 从零接触 FastAPI 框架,今日学习 day11
用 Pydantic 做返回数据格式化,预留高亮字段承载搜索命中的富文本。"""单条职位搜索结果"""id: int# 高亮字段,搜索命中时返回带标签的内容"""分页搜索结果"""total: intpage: intsize: int必须使用异步客户端:同步 elasticsearch-py 会阻塞 FastAPI 事件循环,高并发下性能骤降版本强制对齐:ES 客户端大版本必须和服务端一致,8.x 客户端连 7.x 服务端会出现兼容报错中文分词优化。
2026-08-03 12:50:00
608
原创 从零接触 FastAPI 框架,今日学习 day10
必须使用 motor 异步库,同步 pymongo 会阻塞 FastAPI 事件循环,接口并发性能暴跌MongoDB 主键_id是 ObjectId 类型,返回前端必须转字符串,直接序列化会报错生命周期不要重复初始化 Mongo 客户端,全局单例只创建一次混合数据库场景:不要在同一个业务同时依赖 MySQL 事务 + Mongo 写入,拆分业务,保证数据最终一致性生产 Mongo 配置副本集,避免单点故障,集合高频查询字段建立索引(user_id、create_time)
2026-08-03 12:41:10
175
原创 从零接触 FastAPI 框架,今日学习 day09
路径必须和实际登录接口完全一致,写错文档授权按钮无法使用。JWT payload 只存 user_id,不存 username;修改用户名不会造成 token 逻辑错乱,禁止存放密码。用户注册新增用户的时候,密码必须调用加密再入库,禁止明文存入数据库。时间一定要使用,本地时区会出现 token 时间错乱。JWT 本身无状态,不能主动让 token 失效,想要实现退出登录,就用到项目已有的,把失效 token 存入黑名单,就是 Day10 内容。SECRET_KEY。
2026-07-28 21:56:57
203
原创 从零接触 FastAPI 框架,今日学习 day08:整合 Redis 缓存,优化多对多查询性能
Redis 异步整合基于封装全局缓存工具,在项目 lifespan 生命周期统一管理 Redis 连接,和 Tortoise ORM 启动 / 关闭流程对齐,项目结构统一规范。缓存分层设计基础静态数据(全量标签):永久缓存,修改时主动清空;动态业务数据(文章详情):设置过期时间,读写分离,减轻 MySQL 压力。多对多业务缓存联动文章、标签存在关联关系,任意一方增删改同时清除双方缓存,保证接口返回数据和数据库一致。缓存执行流程查询接口:先查 Redis 缓存 → 命中直接返回;
2026-07-28 11:18:58
218
原创 从零接触 FastAPI 框架,今日学习 day07
多对多会自动生成中间关联表,无需手动创建,通过实现正反双向查询,through可自定义中间表名称。业务场景:一篇文章可以打多个标签,一个标签可以归属多篇文章。多对多核心字段 ManyToManyField适用场景:文章 - 标签、角色 - 权限、学生 - 课程等双向多关联业务;自动生成中间表,可通过through自定义中间表名称;实现正反双向查询,文章查标签、标签查文章;无外键级联删除,删除主表数据会自动清理中间表关联记录。多对多专用操作 API.add(*实例列表):批量新增标签绑定;
2026-07-26 21:21:19
162
原创 从零接触 FastAPI 框架,今日学习 day06
一个用户对应一份唯一个人资料,使用实现一对一关联,用于反向查询,级联删除(删用户自动删除详情)。age = fields.IntField(null=True, description="年龄")phone = fields.CharField(max_length=11, unique=True, null=True, description="手机号")avatar = fields.CharField(max_length=200, null=True, description="头像地址")
2026-07-24 12:45:52
191
原创 从零接触FastAPI框架,今日学习day05
Create 新增:使用创建数据,提前判断用户名唯一性避免数据库报错。Read 查询查询单条数据,无数据返回 None;.all()查询表内全部数据;Path 路径参数校验 ID 大于 0,限制非法参数。Update 更新实现局部更新,过滤未传参字段,不会覆盖原有数据。Delete 删除根据 ID 删除数据,删除前先校验用户是否存在。代码规范用APIRouter拆分路由,项目结构清晰;Pydantic 统一做请求体参数校验,自动生成文档;
2026-07-23 13:13:16
238
原创 从零接触FastAPI框架,今日学习day04
模型层:使用 Tortoise ORM 定义User模型,掌握主键声明、字段约束(唯一/长度)及元数据表名配置,并通过__all__规范模块导出。迁移层:引入 Aerich 工具管理数据库版本,区分首次初始化(init-db)与后续迭代(migrateupgrade)的命令差异,实现模型变更的增量同步。接口层:基于APIRouter模块化组织路由,结合 Pydantic Schema 完成请求参数校验,实现异步登录查询接口并挂载至主应用。
2026-07-22 12:54:16
187
原创 从零接触FastAPI框架,今日学习day03
今天我们回顾查询参数、请求体及 Pydantic 模型校验的基础上,重点讲解了FastAPI 项目中 MySQL 数据库的配置与 ORM 集成。ORM 概念解析:阐述了对象关系映射(ORM)的核心优势,包括面向对象编程思维、防 SQL 注入、跨数据库兼容性及提升代码可维护性。环境搭建:列出了基于aerichfastapiuvicorn的核心依赖安装命令。数据库配置实战提供了完整的配置字典模板(含连接池、字符集、时区等详细参数)。Lifespan 生命周期钩子(生产推荐)与。
2026-07-21 12:55:50
173
原创 从零接触FastAPI框架,今日学习day02
定义Payload模型#定义字段email:strage:intphone:str'msg':'请求成功','data':{}}以下是针对该篇 FastAPI 学习笔记的 优快云 文章总结,适合用于文章摘要或结尾回顾:本文是 FastAPI 学习系列的第二篇,在回顾了 Day01 同步/异步区别及路径传参的基础上,重点讲解了Query 查询传参与Request Body 请求体传参的核心用法。Query 查询传参 vs Path 路径传参参数嵌入 URL 路径中(如。
2026-07-19 22:53:30
170
原创 今日FastAPI day01学习日志
以上内容为首次接触 FastAPI 框架所写,核心收获在于理解了其主打的异步(Async)特性。相比 Django 的同步阻塞模式,FastAPI 利用async协程实现了非阻塞 I/O,即在等待任务时可切换处理其他请求,极大提升了并发效率。项目启动:通过uvicorn启动服务,并体验了 FastAPI 自动生成的交互式 API 文档(Swagger UI),其自动渲染title等元数据的功能令人印象深刻。路由与参数:学会了定义基础路由及动态路径参数。数据校验:深入实践了强类型校验功能。利用Path。
2026-07-18 19:14:25
292
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅