自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (4)
  • 收藏
  • 关注

原创 FastAPI 学习教程 · 第8部分

本文介绍了如何优化FastAPI项目结构并实现自动化部署。主要内容包括: 项目结构优化 推荐了分层模块化的目录结构 展示了如何拆分路由、模型和数据库配置 测试开发 使用pytest编写自动化测试 演示了HTTP接口测试的实现方法 容器化部署 提供了完整的Dockerfile配置 说明了构建和运行容器的命令 云平台部署 介绍了使用Render免费部署的步骤 环境管理 讲解了如何通过.env文件管理敏感配置 文章采用代码示例+说明的方式,帮助开发者从单体文件过渡到可维护的项目结构,并实现完整的CI/CD流程。

2026-02-28 14:15:47 798

原创 FastAPI 学习教程 · 第7部分

摘要 本文介绍了FastAPI中的异常处理、中间件和统一响应格式的实现方法。主要内容包括: 异常处理:通过自定义异常处理器美化错误响应,包括处理内置验证错误和自定义异常(如用户不存在)。 中间件应用:演示了CORS中间件配置实现跨域请求,以及自定义日志中间件记录请求耗时。 统一响应格式:提出使用Pydantic模型规范API响应结构,确保所有接口返回一致的JSON格式。 完整示例:提供了整合异常处理、中间件和统一响应的完整代码实现,帮助开发者构建更健壮的API服务。 这些技术能显著提升API的用户友好性、安

2026-02-28 14:13:09 653

原创 FastAPI 学习教程 · 第6部分

本文介绍了如何使用JWT和OAuth2实现API认证授权系统。主要内容包括:1) 安装必要的Python依赖库;2) 创建用户模型和模拟数据库;3) 实现密码哈希验证功能;4) 配置JWT密钥和生成/验证Token的方法;5) 创建登录接口返回Token;6) 通过依赖注入保护API路由,确保只有携带有效Token的用户才能访问。系统采用OAuth2密码流和JWT无状态认证,实现了用户登录验证和API访问控制功能。

2026-01-19 15:01:38 771

原创 FastAPI 学习教程 · 第5部分

本文介绍了如何在FastAPI中使用SQLModel进行数据库集成,实现博客系统的CRUD功能。主要内容包括:1) SQLModel的安装和优势,它结合了Pydantic和SQLAlchemy;2) 数据库模型定义方法,通过SQLModel类同时定义API模型和数据库表;3) 数据库初始化流程,包括创建引擎和表结构;4) 完整CRUD接口实现,涵盖文章创建、查询、更新和删除操作;5) 项目结构说明和完整代码示例。教程采用同步方式简化学习,同时提示了异步方案的可行性,适合FastAPI初学者构建数据持久化应用

2026-01-19 15:00:58 942

原创 FastAPI 学习教程 · 第4部分

FastAPI依赖注入系统摘要 FastAPI的依赖注入(DI)机制通过Depends()实现,可自动提供函数所需的外部资源(如数据库连接、用户认证等)。核心优势包括代码复用、解耦、可测试性和声明式编程。 关键特性: 基础用法:定义依赖函数并在路由中使用Depends() 常见场景:API密钥验证、数据库会话管理(使用yield实现资源自动释放) 支持嵌套依赖:一个依赖可以依赖其他依赖项 典型应用: 认证逻辑复用(如JWT验证) 数据库连接管理(请求开始建立连接,结束自动关闭) 权限校验(组合多个依赖) 依

2026-01-16 14:47:02 450

原创 FastAPI 学习教程 · 第3部分

FastAPI 响应模型与状态码 摘要:本文介绍了 FastAPI 中如何通过响应模型控制 API 输出、设置 HTTP 状态码以及优化接口文档组织。主要内容包括: 响应模型:使用 response_model 参数定义输出数据结构,自动过滤敏感字段 状态码:通过 status_code 参数设置合适的 HTTP 状态码(如 201 Created) 接口文档:使用 tags 分组接口,添加 summary 和 description 提升文档可读性 自定义响应:支持 JSON、纯文本、HTML 等多种响应

2026-01-16 14:43:51 434

原创 FastAPI 学习教程 · 第2部分

学会接收用户通过 URL 传递的查询参数,以及通过 JSON 发送的请求体数据;掌握使用 Pydantic 定义和验证数据结构

2026-01-12 19:09:00 1179

原创 FastAPI 学习教程 · 第1部分

FastAPI 学习教程 第1部分:FastAPI 入门与基本路由 的详细内容,专为初学者设计,包含清晰的讲解、逐步操作指引和可运行的示例代码

2026-01-12 19:06:48 1207

原创 Go 语言进阶学习:第 2 周 —— 接口、反射与错误处理进阶

Go接口与反射核心要点总结 本文深入探讨Go语言的接口设计哲学、类型操作及反射机制,适用于已掌握基础并发编程的开发者。主要内容包括: 接口设计:遵循"小接口原则",通过组合实现复杂功能,标准库如io.Reader等典型示例展示隐式实现的优势与零值陷阱。 类型操作:安全使用类型断言和类型switch处理动态类型,实战演示插件式处理器设计模式。 反射机制:强调反射应作为最后手段,详解reflect包的基础用法和结构体遍历技巧,并提醒性能损耗与指针修改注意事项。 学习建议:5-7天完成,结合每

2026-01-07 16:57:24 1229

原创 Go 语言进阶学习:第 1 周 —— 并发编程深度掌握

本文深入讲解Go语言的并发编程模型,重点涵盖goroutine、channel和sync包的使用。首先介绍goroutine的轻量级线程特性及其GMP调度模型,强调主协程退出会导致子协程终止的问题及解决方法。其次详细解析channel的两种类型(无缓冲和有缓冲)及其通信机制,通过select语句实现多路通信和超时控制。最后讲解sync包提供的并发原语,包括WaitGroup用于协程同步,Mutex/RWMutex实现共享资源保护,并给出工作池和流水线两种经典并发模式的实际代码示例。全文通过大量代码演示帮助读

2026-01-07 16:56:32 1265

原创 FastMCP 2.0 服务端用户权限与身份验证教学文档(权限篇)

本文系统介绍了FastMCP 2.0的身份验证与权限控制体系,涵盖四种主要模式:1)简单的令牌验证,适用于已有JWT基础设施的场景;2)支持动态客户端注册(DCR)的远程OAuth,适合现代身份提供商;3)OAuth代理模式,用于集成GitHub等传统OAuth服务;4)完整的OAuth服务器方案。文章重点分析了各模式的技术复杂度、适用场景和实现方法,推荐企业用户优先选择支持DCR的远程OAuth方案,并提供了具体的代码示例和权限控制实现方式。

2026-01-06 09:40:16 893

原创 FastMCP 2.0 服务端开发教学文档(下)

本文介绍了 FastMCP 2.0 服务端的高阶开发能力,主要包括三大核心功能: 上下文(Context):通过依赖注入或运行时函数获取,提供日志记录、进度报告、资源访问、LLM采样等交互能力 代理与服务器组合:支持远程代理和本地服务器组合,包含静态导入与动态挂载两种模式,支持标签过滤和元信息配置 交互机制:详细说明用户征询(支持结构化输入)、多级日志记录和进度报告三种交互方式 全文以代码示例为主,展示了如何构建可扩展、交互式的生产级 MCP 服务,特别强调上下文对象的桥梁作用和代理服务器的灵活组合能力。

2026-01-06 09:38:13 969

原创 FastMCP 2.0 服务端开发教学文档(上)

本文档介绍了FastMCP 2.0框架的使用方法,它是一个用于构建MCP(模型上下文协议)服务器的Python框架。主要内容包括:1)FastMCP的基本概念和核心功能(资源、工具、提示模板);2)安装方法和版本控制注意事项;3)创建服务器实例并添加工具和资源;4)运行服务器的两种方式;5)工具的深入使用方法,包括装饰器参数、类型注解、返回值处理、异步支持和错误处理等。文档面向Python开发者,提供了构建MCP服务器的完整指南。

2026-01-05 14:40:06 1358

原创 八周Python强化计划(八)

本文介绍了Python项目优化的关键实践,包括日志记录、单元测试、调试技巧和代码规范。主要内容有: 使用logging模块替代print实现分级日志输出 通过assert编写简单测试验证代码逻辑 演示三种调试方法:print调试、日志调试和IDE断点调试 介绍PEP8代码规范及自动检查工具 提供Python不同发展方向的学习路线建议 文章还包含项目实战示例,如增强代码健壮性、支持结果输出到文件等功能优化。最后强调通过完善项目并上传GitHub来巩固学习成果,建议学习者选择一个具体方向进行深入实践。

2026-01-05 13:24:23 798

原创 八周Python强化计划(七)

摘要: 本周实战项目开发一个命令行词频统计工具,通过模块化设计(main.py处理交互,text_utils.py实现核心逻辑)综合运用文件操作、字符串处理及collections.Counter。核心功能包括文本清洗(去标点、转小写)、词频统计与格式化输出,并通过argparse支持命令行参数(如--top N)。项目强调工程化思维,涵盖错误处理、代码解耦及标准库组合应用,为后续扩展(如停用词过滤、结果导出)奠定基础。

2025-12-31 10:52:56 758

原创 LangGraph 智能工作流引擎:让 AI 自动拆解需求并执行任务

本文介绍了如何利用LangGraph构建一个智能工作流引擎(PIER智能体),能够自动处理模糊需求并完成任务。主要内容包括: 项目目标:构建Plan-Execute-Inspect-Report(PIER)智能体,实现需求理解、任务拆解、执行和结果交付的全流程自动化 核心组件: 状态(State):设计AgentState数据结构记录工作流进展 工具(Tools):定义web_search和generate_report等工具函数 工作流节点(Nodes):实现规划、执行、反思、交付四个阶段 关键技术: 使

2025-12-31 10:39:46 1285

原创 八周Python强化计划(六)

本文介绍了Python标准库实战与虚拟环境管理的核心内容。主要内容包括: 标准库模块:讲解了datetime处理时间、json读写数据、collections中的Counter和defaultdict用法,以及random生成随机数据。 虚拟环境管理:详细说明了如何创建venv虚拟环境、激活/退出环境、安装依赖包,以及通过requirements.txt管理项目依赖。 实践练习:提供了日程记录器和天气模拟器两个实战项目,帮助巩固标准库和虚拟环境的使用。 核心速记卡:总结了datetime、json、Coun

2025-12-30 09:34:33 960

原创 零基础入门 LangGraph:用中文一步步构建你的第一个智能代理

本文以通俗易懂的方式介绍了如何使用LangGraph构建一个能做算术题的AI助手。主要内容包括: 核心概念: 将任务分解为多个步骤(节点) 用"状态"记录进展(MessagesState) 用"边"定义步骤间的跳转规则 实现步骤: 准备GLM-Z1-9B模型环境 定义加法等算术工具函数 创建两个关键节点: llm_call:AI思考节点 tool_node:工具调用节点 设置条件跳转逻辑 运行效果: 输入"3加4等于多少" AI先思考决定调用加法工

2025-12-30 09:29:42 659

原创 八周Python强化计划(五)

本周课程聚焦Python面向对象编程(OOP)进阶知识,主要包含两大主题:类方法/静态方法/多态和魔法方法。第一部分讲解类属性与实例属性的区别,@staticmethod和@classmethod的用法,以及多态的实现原理。第二部分深入探讨魔法方法,包括__str__、repr、len、__getitem__等,使自定义类支持内置操作。通过购物车、温度转换等实战案例,帮助学生掌握如何让类支持len()、in、for等操作,提升代码灵活性和可读性。课程采用讲解+演示+练习模式,重点培养OOP编程思维和实践能力

2025-12-29 10:37:04 523

原创 八周Python强化计划(四)

本周教学聚焦面向对象编程(OOP)基础,包含两大核心知识点:类与对象基础、继承与方法重写。课程通过汽车等生活实例,生动讲解类与对象的关系、属性初始化、方法定义等概念,强调self关键字的作用。在继承部分,演示了代码复用机制,涵盖方法重写和super()的使用。配套的Book类、Item类等实践练习帮助巩固知识。关键点包括:类作为模板、对象是实例、构造方法__init__、继承的is-a关系等。教学采用概念讲解+编码演示+动手练习的模式,确保理论与实践结合。

2025-12-29 10:32:17 848

原创 八周Python强化计划(三)

本周教学主题为Python文件操作与模块化开发。主要内容包括:1) 使用open()和with进行文本文件读写,处理CSV文件;2) 理解模块导入机制,创建自定义模块;3) 使用pip安装第三方库;4) 掌握if __name__ == '__main__'的作用。课堂通过读写文本/CSV文件、创建模块、安装colorama库等实践案例,帮助学生掌握文件操作和模块化编程技巧。课后任务要求学生开发日记本程序,综合运用所学知识。

2025-12-26 10:16:42 294

原创 八周Python强化计划(二)

本周课程聚焦Python核心数据结构的高级应用和推导式与生成器。主要内容包括:1)列表、元组、字典和集合的高级操作方法,强调可变与不可变对象的区别;2)推导式(列表/字典/集合)的Pythonic写法及其应用;3)生成器(yield)和生成器表达式的懒加载特性,对比推导式在内存使用上的差异。通过课堂练习掌握数据结构操作和推导式改写技巧,理解生成器在大数据处理中的优势。核心要点:推导式适合多次遍历场景,生成器更节省内存。

2025-12-26 10:14:04 414

原创 八周Python强化计划(一)

本周Python课程重点讲解函数进阶与异常处理: 【函数进阶】 掌握*args和**kwargs参数处理任意数量参数 理解变量作用域规则,慎用global关键字 学会用lambda编写简洁匿名函数 参数顺序规则:位置→默认→*args→**kwargs 【异常处理】 使用try/except捕获程序异常 通过raise主动抛出异常 掌握else/finally子句用法 能处理常见错误类型(ValueError等) 课堂练习包括编写带异常处理的平均值函数、成绩单打印函数等,强调代码健壮性。建议课后完成除法计算

2025-12-24 16:44:43 393

原创 Chroma 向量数据库完全指南

Chroma是一个开源的轻量级向量数据库,专为AI应用设计,支持高效的向量嵌入存储和检索。它提供Python/JavaScript API,内置多种嵌入模型,并支持元数据过滤和持久化存储。核心功能包括创建集合、添加文档、语义查询和元数据过滤。安装简单,只需pip install chromadb即可使用。典型应用场景包括构建问答系统和文档检索系统,通过语义相似度匹配实现智能搜索。Chroma支持自定义嵌入函数和本地/云端持久化存储,适合各种规模的AI项目。

2025-12-23 14:47:55 3169

原创 多模态RAG工程开发教程(上)

本项目是一个基于FastAPI的多模态RAG(检索增强生成)系统,集成了长期记忆功能、流式响应和向量化知识检索。系统支持文本、图像、音频(预留扩展)等多种模态输入,能够根据用户历史记忆提供个性化服务。

2025-12-22 16:51:01 361

原创 LangChain 高级功能实战教程(下)

本文深入探讨智能体系统的三大核心能力:长期记忆、人机协同审批流程和RAG架构实战。在长期记忆部分,详细介绍了基于LangGraph Store的数据存储机制,支持命名空间隔离、向量检索和结构化过滤。通过代码示例展示了用户偏好的读写操作,包括基础用法(保存/读取用户配置)和高级用法(基于嵌入模型的语义搜索记忆)。文章还提供了硅基流动API的具体实现示例,帮助开发者构建生产级智能体系统。

2025-12-19 14:36:42 959

原创 LangChain 高级功能实战教程(上)

本教程基于LangChain v1官方文档,系统讲解构建AI智能体的关键概念。上篇聚焦安全性、上下文管理与工具集成,涵盖守卫机制、PII检测和自定义内容过滤。通过确定性规则和基于模型的审查,实现敏感信息防护、有害内容拦截等安全功能。教程提供Python代码示例,展示如何利用中间件在输入输出环节插入安全检查,包括内置PII检测和自定义关键词过滤,确保智能体运行安全合规。下篇将深入长期记忆、人机协同与检索增强技术。

2025-12-18 19:42:46 1001

原创 快速上手 LangChain v1 教程(下):高级能力构建与实战扩展

本文深入讲解LangChain v1的高级功能,包括流式输出、中间件系统等。流式输出提供三种模式:代理进度流、LLM Token流和自定义流,支持实时反馈需求。中间件系统是核心扩展机制,包含预置中间件如人工审批、敏感信息检测等,并支持自定义中间件开发。这些功能帮助开发者构建可监控、可调试、可扩展的AI Agent,满足生产级部署需求。文章通过代码示例详细演示了各功能的实现方式。

2025-12-15 16:59:35 1184

原创 快速上手 LangChain v1 教程(上):核心概念与基础构建

本教程介绍了LangChain v1框架的核心概念与基础构建方法。LangChain是一个用于构建AI智能体的Python框架,支持将LLM与外部工具结合,提供记忆能力、结构化输出和中间件控制。教程包含安装指南、模型初始化方法(支持字符串标识和手动配置两种方式),以及消息系统(SystemMessage、HumanMessage等)的详细说明。重点讲解了工具(Tools)的定义与注册方法,通过@tool装饰器实现外部操作扩展,并展示了错误处理中间件的使用。教程以硅基流动API为例,提供了完整的代码示例,帮助

2025-12-12 16:19:48 1062

原创 ubuntu21.04美化使用

ubuntu美化使用最新

2021-12-06 18:33:04 10885 12

原创 deepin有线网卡无法连接网络

deepin有限网卡无法连接网络今天使用机房的电脑重装deepin20.2.4以及20.3后无法连接网络,特意写(水)的一篇。1.错误原因有线网络部分一直显示连接,但是就是连接不上,提示重插入网线或者检查路由器。看遍网上相关资料后,发现时有线有线网卡故障RTL8111/8168/8411和官方自动安装r8169驱动的不兼容原因。2.问题解决方式1.查看网卡驱动是否和我一样:lspci | grep -i ethernet04:00.0 Ethernet controller: Realte

2021-11-23 20:36:35 7459

原创 HUSTOJ搭建2021

本次搭建时间为2021年11月19日,因学校oj测试,特搭建oj使用。在这里给出踩坑经验,希望大佬们多多指点。1.系统环境本人使用的系统是deepin20.2.4最新版,且不是虚拟机使用。具体配置如图2.deepin下安装hustoj在国内的gitee网站,我们可以看到hustoj的源项目,同时,作者也给出了其他版本的安装,大部分的问题也可以看作者的wiki。这里我们给出deepin的安装命令。基于 Deepin 20+ 安装国内桌面用户 Deepin 20+ (内置QQ、微信、WPS方便出题

2021-11-21 09:17:59 2792

原创 deepin下zsh的安装与使用

1.安装zshsudo apt updatesudo apt upgragesudo apt install zshchsh -s /bin/zsh2.安装oh-my-zsh基于zsh命令行,是对zsh的包装,提供了主题配置,插件机制.1.curl sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"2.wget sh -c "$(wget -O-

2021-11-14 09:56:52 2021

原创 deepin下vscode配置与使用

一.deepin下vscode配置与使用1.下载在星火商店或者deepin商店中自带下载,我们只需点击下载安装即可。2.使用(1).HTML编写安装插件:Live Server安装后有两种使用方式1.右击鼠标2.按下 (Ait+l,Ait+O)(2).C/C++使用前置条件:确保系统中安装gcc与g++编译器安装插件:C/C++,Code Runner(运行环境),C++ Intellisense(自动补全)安装后 Ctrl+Alt+N 运行3.美化1.Bracket P

2021-10-20 15:15:17 1991

原创 基于protues与keli下贪吃蛇的实现

一.设计内容及功能1.1设计内容制作一个8*8点阵的贪吃蛇游戏,系统以单片机的C语言的软件设计,系统通过LED点阵屏为载体显示数据,并用四个输入端表示四个控制键(上下左右)。系统硬件部分通过protues实现,软件代码部分在keil4环境下用C51语言编写,包括游戏初始化蛇的节数,以及障碍墙壁,分数的显示,游戏结束时自动复位。1.2 完成的功能1、用四个按钮控制贪吃蛇的行径,蛇的初始长度为2点,设置墙壁。2、蛇吃到长度为1点的食物时,自身长度增加1点,数码管显示分数加一。3、当蛇碰到墙壁或自己的

2021-03-15 20:57:24 1177 1

原创 C++常用标准模板库(STL)

C++常用标准模板库1.vector(向量,即动态数组)时间复杂度分析:数组后面插入元素和删除尾部元素O(1),头部或者中间插入删除依旧是O(n)优点:可以动态的随着元素的增加和减少改变数组的长度,使用起来与普通数组区别不大操作方法:头文件 #include定义与初始化操作vector<int>v;//创建一个数组v,类型为intvector<int>v(v1);//创建一个数组v,类型为int,并且初始化为v1vector<int>v(v1.b

2021-03-11 15:25:26 1367

原创 deepin下conky配置

预览效果安装使用1.安装conkysudo apt-get install conky2.设置conkyrc在终端输入vim .conkyrc在内容中填写3.添加开机启动在终端输入cd .config/autostart新建文本vim conky.desktop在conky.desktop中输入以下内容[Desktop Entry]Type=ApplicationVersion=1.0Name=Conky Comment= Desktop monitor Ma

2021-03-11 12:03:52 602 1

原创 动态规划:背包专题

背包专题//这里使用f[N][N]作为dp的数组/*val[N]表示价值,w[N]表示体积*/typedef struct node{ int val;//价值 int w;//体积}bao;一.01背包01背包特点:每个物品只放一次1.朴素写法//模板const int n=1003;int f[N][N],val[N],w[N];for(int i=1;i<=n;i++){ for(int j=1;j<=v;j++) {

2021-03-09 20:09:40 221

原创 数论:博弈论

数论:博弈论1.巴什博弈(BAshGame)题目模板只有一堆n个物品两个人轮流取,每次只能取1~m个物品,谁先取完,谁胜利;(n,m是输入的随机数)解题思路1.当 n = m+1 时 第一个取的人不可能获胜;2.•当 n = k(m + 1) + r 时 (k,r,s都是未知的整数)*​ •先取者拿走 r 个,那么后者再拿(1~m)个​ • 此时 n =(k-1)*(m+1)+s​ •先取者再拿走s 个 最后总能造成 剩下n=k(m+1) 的局面*3.•若n=k

2021-03-09 20:06:48 574 1

原创 数据结构与算法(排序算法)

引言:我们的数据结构已经学习完基本的知识,但是光有数据结构是不可以的,现在我们将目光放在接下来的内容,基础算法部分。现在我们就开始第一部分的学习——排序算法排序一.排序简介二.桶排序1.定义2.代码原理3.总结三.快速排序1.定义与原理2.代码实现3.总结四.归并排序一.排序简介我们最初学习过最经典的三种排序方式,他们分别是起泡排序法,选择排序法,以及插入排序法。这三种排序是最基础的,也是我...

2020-01-22 11:58:29 659

有线网卡8168网络驱动

结合博客使用

2021-11-23

最简单的zsh安装脚本

配合博客使用

2021-12-04

单片机贪吃蛇最终版.zip

基于protues与keli下贪吃蛇的实现

2021-03-15

deepin_conky

结合本篇博客使用

2021-03-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除