项目介绍
本项目核心包含认证与会话两大模块,各模块功能与技术实现如下:
认证模块提供完整的用户身份管理能力,涵盖注册、登录、退出及个人信息查询功能。在权限控制方面,采用统一身份管理架构,通过用户表与权限表实现精细化权限分配;登录机制结合 Redis 实现单点登录,确保用户身份的安全性与唯一性。
会话模块聚焦会话全生命周期管理与 AI 交互能力,具体包括:创建新聊天会话、获取当前用户的所有会话列表、删除指定会话、查询会话历史消息,以及基于豆包 AI 模型的长对话功能 —— 通过维护会话上下文,实现与 AI 的连贯交互体验。
代码结构:

Swagger UI的接口文档:

简单问答:

FastAPI

SQLAIchemy

Python操作Redis

各个模块功能代码介绍

FastAPI
1.1 FastAPI介绍
FastAPI 是一个基于 Python 的现代、高性能 Web 框架,它的设计目标是快速开发 API,同时兼顾高性能、易用性和自动生成交互文档的能力。
FastAPI 基于 Python 类型提示(Type Hints)实现请求数据验证和响应模型定义,底层依赖 Starlette(异步 Web 框架)和 Pydantic(数据验证库),支持同步和异步代码,且完全兼容 OpenAPI(API 规范)和 JSON Schema。
FastAPI在构建 RESTful API、微服务等场景中表现尤为突出。相比 Flask(同步、需大量扩展)、Django(全栈冗余)、Tornado(异步但功能简陋),FastAPI 更适合现代 API 开发,尤其是需要高并发、清晰文档和严格数据验证的场景。
1.2 FastAPI快速构建项目
步骤1:使用pycharm项目创建一个新项目。

步骤2:在项目的终端处更新pip版本。
python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/

步骤3:安装项目依赖。
# 安装FastAPI和ASGI服务器(Uvicorn)pip install fastapi uvicorn -i https://mirrors.aliyun.com/pypi/simple/
步骤4:使用@app注解中定义一个接口。

步骤5:启动项目
方式1:通过命令启动:
uvicorn main:app --reload
方式2:通过入口方法启动:

运行结果:

1.3 Swagger UI文档
Swagger UI 是一个 交互式 API 文档工具,它能自动生成可视化的 API 接口文档,并支持在线调试接口,是前后端开发协作中非常实用的工具。FastAPI 默认集成了 Swagger UI,启动项目后,通过以下地址访问:
Swagger UI 文档(交互式,支持在线调试):
http://ip:port/docs
这是一个可视化的交互式文档,你可以在这里直接测试所有 API 接口,填写参数并发送请求,查看响应结果。
ReDoc 文档(更注重文档展示):
http://ip:port/redoc

02SQLAIchemy
2.1 SQLAIchemy
SQLAlchemy 是 Python 中功能最全面的 ORM 工具,允许你使用 Python 对象来操作数据库,而不必编写复杂的 SQL 语句,类似Java开发MybatisPlus。
2.2 安装依赖
pip install fastapi uvicorn sqlalchemy pymysql python-dotenv pydantic-settings -i https://mirrors.aliyun.com/pypi/simple/
2.3 查询操作API
查询所有:.all ()
查询第一条:.first ()
带条件过滤(支持 >、<、== 等):.filter ()
简化条件(仅支持 ==):.filter_by ()
逻辑与:and_()
逻辑或:or_()
降序:.desc ()
升序:.asc ()
分页:跳过前 n 条 + 取 m 条:.offset (n).limit (m)
计数:统计符合条件的数量:.count ()
聚合函数:平均值:func.avg ()
总和:func.sum ()

2.4 新增操作API
单个新增:
创建对象 + 添加到会话 + 提交 + 刷新:.add () + .commit () + .refresh ()。
批量新增:
批量添加对象:.add_all ()。

2.5 更新操作API
方式 1: 根据索引查询后更新,可以避免间隙锁
查询对象 + 修改属性 + 提交:直接赋值。
方式 2: 直接更新(不查询对象)。
条件过滤 + 批量更新:.update ({字段:新值})。

2.6 间隙锁介绍
间隙锁的触发条件:
间隙锁(Gap Lock)的主要作用是防止幻读,通常在以下情况触发:
使用 REPEATABLE READ 或更高隔离级别(MySQL 默认隔离级别为 REPEATABLE READ)。
执行范围查询或非唯一索引 / 主键的等值查询时,InnoDB 会对查询结果之外的 “间隙” 加锁。
避免间隙锁的步骤:
步骤① 是根据主键查询单条记录,主键是唯一索引,InnoDB 会直接定位到具体行,不会锁定间隙。
步骤② 最终执行的 SQL 类似 UPDATE user SET username = ‘newname’ WHERE id = 1,由于 WHERE 条件是主键等值匹配,InnoDB 只会对该主键对应的行加行锁,不会锁定周围的间隙。
2.7 删除操作API
方式 1: 查询后删除:
查询对象 + 删除 + 提交:.delete ()。
方式 2: 直接删除(不查询对象):
条件过滤 + 批量删除:.delete ()。

2.8 简单的增删改查
SQL文件:

项目结构及.env文件:

config文件:


user_dao.py文件:






main.py文件:



运行结果:

03
Python操作Redis
3.1 Redis介绍
Redis 是一款高性能的内存键值数据库,支持字符串、哈希、列表等多种数据结构,读写速度极快,常用于缓存、会话存储、实时数据处理等场景。
安装依赖:
pip install redis
3.2 Redis配置类

3.3 String类型的API封装


3.4 API方法的调用

set方法的调用:

delete方法的调用:

get方法的调用:

04
项目介绍
4.1 项目结构和功能介绍
本项目核心包含认证与会话两大模块,各模块功能与技术实现如下:
认证模块提供完整的用户身份管理能力,涵盖注册、登录、退出及个人信息查询功能。在权限控制方面,采用统一身份管理架构,通过用户表与权限表实现精细化权限分配;登录机制结合 Redis 实现单点登录,确保用户身份的安全性与唯一性。
会话模块聚焦会话全生命周期管理与 AI 交互能力,具体包括:创建新聊天会话、获取当前用户的所有会话列表、删除指定会话、查询会话历史消息,以及基于豆包 AI 模型的长对话功能 —— 通过维护会话上下文,实现与 AI 的连贯交互体验。
代码结构:

Swagger UI的接口文档:

4.2 注册功能的实现
数据库会话配置:



用户表结构:

数据模型:

Pydantic模型(数据验证与序列化):


定义router路由接口:

认证服务类:


4.3 单点登录介绍和流程介绍
单点登录(Single Sign-On, SSO)介绍:
单点登录(Single Sign-On, SSO)是一种身份认证策略,它允许用户在使用多个相互信任的应用系统时,只需进行一次登录操作即可访问所有系统。这一解决方案极大地提升了用户体验,减少了重复登录的繁琐过程,同时也在一定程度上增强了系统的安全性。
以用户访问本系统为例,单点登录的完整流程如下:
未登录状态引导:用户首次访问本系统时,若未登录,系统会自动重定向至统一认证中心,提示用户进行身份验证。
认证中心验证与凭证生成:用户在认证中心输入账号密码,验证通过后,系统会生成一个包含用户身份信息的JWT(JSON Web Token) 作为临时认证凭证,并返回给用户端(通常存储在浏览器中)。
携带凭证访问应用:用户后续访问本系统时,浏览器会自动在请求头中携带 JWT 令牌,作为身份标识。
凭证校验:本系统收到请求后,会将 JWT 令牌发送至认证中心进行合法性校验(包括令牌有效性、用户权限等)。
无缝授权访问:若令牌校验通过,认证中心返回 “通过” 结果,用户无需再次登录即可直接访问本系统资源,实现 “一次登录,全域通行” 的单点登录效果。
4.4 JWT功能介绍
JWT介绍:
JWT(JSON Web Token)是一种基于 JSON 的轻量级身份认证令牌,用于在客户端与服务器之间安全传递声明信息。它通过数字签名保证信息的完整性和真实性,广泛应用于前后端分离、分布式系统中的身份验证场景,尤其适合与 FastAPI 等现代 Web 框架结合实现无状态认证。
JWT核心作用:
身份凭证:用户登录后,服务器生成 JWT 令牌返回给客户端,客户端后续请求携带令牌证明身份,无需频繁查询数据库验证用户。
信息传递:令牌中可包含用户 ID、权限等非敏感声明信息,减少服务器数据库查询次数,提升性能。
无状态验证:服务器通过验证令牌签名即可确认合法性,无需在服务器存储会话状态,便于水平扩展。
JWT结构:
结构:由header.payload.signature三部分组成,用.分隔。
Header:指定签名算法(如 HS256)和令牌类型。
Payload:包含标准声明(如过期时间exp、用户 IDsub)和自定义信息(如用户名),仅编码不加密。
Signature:用密钥对前两部分签名,防止篡改。
JWT工作流程:
用户登录后,服务器生成 JWT 返回给客户端。
客户端后续请求通过Authorization: Bearer 携带令牌。
服务器验证签名和过期时间,从 Payload 提取用户信息完成认证。
优缺点:
优点:无状态(易扩展)、自包含(减少数据库查询)、支持跨域。
缺点:过期前无法撤销(可结合 Redis 黑名单解决),Payload 不加密。
4.5 登录功能的实现
router接口:

在 FastAPI 中,OAuth2PasswordRequestForm是一个预定义的依赖项,专门用于处理OAuth2 密码模式(Password Flow) 的登录请求。它简化了用户登录时的表单数据解析与验证,是实现基于用户名 / 密码认证的常用工具。
服务类的方法:


config.py的JWT配置功能:

security.py认证功能代码:

4.7 Auth2密码Bearer模式
token的解码:dependencies.py



调用:

4.6 豆包AI_Key的申请
火山引擎网址:
https://console.volcengine.com/
打开网址后注册登录,登录成功后来到模型广场这里选择自己项目要引入的模型,每个模型都有50万的免费token使用。

选择自己要引入的模型,点击API接入:

创建API Key:

创建API Key后,将申请到的API Key配置到项目中:


4.7 调用豆包AI大模型
message表结构:

chat_sessions表结构:

chat_messages表结构:

数据模型:



Pydantic模型(数据验证与序列化):



router入口方法:


服务类方法:






调试结果:

4.8 日志记录功能
日志记录中间件:middlewares.py




日志记录:logging.py


main.py



API路由:

其他代码的阅读可根据下方提示下载查看。
项目运行

项目运行:
需要配置好Python运行环境,我的python版本是3.11.1,我在项目中已经使用下面命令生成了项目的依赖配置:
pip freeze > requirements.txt
可以通过下面的命令安装项目的依赖:
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
如果你的pip版本比较旧,安装报错,可以通过下面命令更新pip版本后重新安装:
python.exe pip -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/
项目运行:

最后
为什么要学AI大模型
当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!
DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。

最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下


这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
2179

被折叠的 条评论
为什么被折叠?



