- 博客(178)
- 收藏
- 关注
原创 邮件协议、签名与推送
当你用 Gmail / Spark / iCloud 添加其他邮箱时,其实后台做了以下几件事:🔁 整合 = 一个邮箱壳子(客户端)用别人的账号密码登录并同步数据Gmail 网页是 Webmail,它底层仍然:📌 你看到的 HTTPS 只是前端网页浏览的UI层协议,不是邮件实际发送用的协议!邮件获取❓Spark / Apple Mail 等客户端是如何收邮件的?是 Gmail 主动推?还是客户端主动拉?✅ 答案是:主动拉取(Polling 或 IDLE),不是 Gmail 主动推送。⚠️ 注意:Gm
2025-05-04 21:40:36
886
原创 cloudfare+gmail 配置 smtp 邮箱
这里介绍有一个域名后,不需要服务器,就可以实现 cloudfare+ gmail 的 邮箱收发。为什么还需要 gmail 的 smtp 功能,因为 cloudfare 默认只是对 email 进行转发,就是只能收邮件而不能发送邮件,故使用 gmail 的功能来进行代理 发送。,非常适合个人域名使用【因为可以有 200 个名称】!!!!发信:Gmail SMTP 发出(伪装.me 发件人)为什么需要这样配置,这样可以不被大厂作为黑名单从而不会发不出、收不到邮件。
2025-05-04 21:39:25
1413
原创 RTMP 协议解析 1
RTMP协议(Real-Time Messaging Protocol,实时消息传输协议)是由Adobe公司(最初由Macromedia开发)设计的一种用于实时传输音频、视频和数据流的网络协议,主要用于直播和流媒体传输,最初是为了让 Flash Player 和 Flash Media Server 之间进行音视频和数据的实时传输。现在虽然 Flash 被淘汰了,但 RTMP 这个协议因为其。
2025-04-26 23:17:01
649
原创 Git Flow分支模型
✅ Git 合并靠的是三方合并:找共同祖先 + 比较两边 diff 合并内容,而不是简单看提交指针或谁快谁慢!“哦你只是继续往 feat1 分支上加了一个提交,那我只需要合并 C3 的 diff 就行。那合并时,就会冲突,因为从共同祖先 B 开始,两边都对这行做了不同的修改。预发布分支(release/*)用于测试,测试完成合并到 main。适合快速迭代和持续部署的项目,只有一个主分支(main。用于日常开发,合并功能分支(feature/*);✅ 合并时不会乱套,也不会重复合并旧的提交。
2025-04-22 22:28:38
644
原创 FastAPI-MCP
开源地址: https://github.com/tadata-org/fastapi_mcpFastAPI-MCP 是一个开源项目,旨在简化 FastAPI 应用与现代 AI 代理(如基于大语言模型的系统)之间的集成。它通过自动将 FastAPI 的所有 API 端点暴露为符合 Model Context Protocol(MCP)标准的工具,使得 AI 代理能够直接调用和理解这些接口,整个过程无需额外配置,极大地降低了开发者的集成难度。
2025-04-20 22:56:40
677
原创 AutoGen参数说明
这样,其他的代理就可以查看这个列表,了解群聊的历史记录,以便做出相应的回应。因为这样提前发送的信息是manager作为发送方,assistant作为接收方,满足GroupChat的轮对话的过程,但请注意需要把content作为陈述句发送给assistant,否则新一次回答后会再次回复历史信息的问题。is_termination_msg 是一个函数,它接受一个字典形式的消息作为输入,并返回一个布尔值,表示这个接收到的消息是否是一个终止消息,即一个userproxy是否终止对话的标记。
2025-04-13 22:55:07
976
原创 Mac配置开发环境
博主是一名Python后端开发,有时候环境太多 需要配置太多,故做此文章环境Macbook ,请注意自己的是ARM 还是x86 结构。
2025-04-13 22:49:17
880
原创 数据库预热
是在应用启动阶段,或,从而的一种优化手段当 FastAPI 或其他 Web 服务刚启动时:• 你虽然配置了数据库连接池(比如 SQLAlchemy、asyncpg);• 但其实它;• 第一个真实的请求进来时,才会;• 这个首次 handshake 连接建立 + TLS 认证等操作,可能耗时;⏳⚠️ 这在性能敏感系统(比如对外开放 API)中可能引起问题。数据库预热是通过在应用启动时提前“探路”数据库,
2025-04-12 21:18:33
1090
原创 Python装饰器
装饰器(Decorator) 是一个函数,它可以在不修改原函数代码的前提下,增强或修改函数的行为。本质上,装饰器就是“函数的函数”。
2025-04-06 16:05:21
913
原创 5G-A技术
最近的iOS 18.4 推送了 新功能,最引人注目的便是这个5G-A的这个功能,那什么是5G-A呢 ?目前北京 四环内 还是有能显示出5G-A标志的。🌐 一句话概括:✅ 5GA 是什么?5GA(5G Advanced)是 3GPP(全球通信标准组织)在Release 18中定义的5G演进技术标准,相较于当前的5G网络,5GA带来了更强的性能与智能化能力,主要体现在:📶 性能增强:• 速度更快:峰值下载速率预计可达 10Gbps+• 时延更低:可支持 <1ms 的超低延迟• 连接更多:更高密度设备连接,适
2025-04-01 23:30:07
2723
原创 APScheduler定时
🔍 背后原因:apscheduler 的 job 函数是同步调用的虽然我们使用的是 AsyncIOScheduler(支持 asyncio 的调度器),但是它 内部的 add_job() 方法要求传入的是一个 普通函数(sync function),而不是 async def 的协程函数。这个 wrapper() 是普通函数,apscheduler 就可以调度它,而它内部通过 asyncio.create_task() 启动了异步任务。🔧 APScheduler 本质机制:🔁 它内部怎么工作的?• s
2025-04-01 23:03:50
973
原创 定时任务(python)
• 自由度高:可以灵活计算下一次执行时间。• 无需额外依赖,原生 asyncio 就能跑。• 跟 Redis 结合很好,可以做跨进程/跨机器任务协调。• 手动管理定时逻辑(get_next_run_time + asyncio.sleep())。• 多任务可能不好管理,比如暂停/重启某个 job。• 不支持 cron 表达式等复杂调度。import osself.push_interval_seconds = 600 # 推送间隔时间。
2025-04-01 23:02:37
717
原创 .git 文件夹
没错,.git/objects/ 里那些奇奇怪怪的哈希文件,其实就是 Git 真正存储所有数据的地方,它们不是普通的“文件”,而是 Git 自己的。这些文件夹名(如 1a)和文件名(如 2b3c…Git 有• 它们不是普通文本文件,是。• 你如果直接 cat 它们,会看到乱码。• 要查看内容,得用 Git 自己的工具来“解码”。你查看的是一个 commit 对象,它,不直接包含代码内容,而是指向一个 tree 对象,那个 tree 才是“这次提交的文件结构”。
2025-03-26 23:10:29
1012
原创 .gitattributes与git lfs
是 Git 官方推荐的用于管理大文件的扩展工具。“Git 适合管理代码,不适合管理大文件;但我们可以用 Git 来记录大文件的‘引用’,真正的文件存在其他地方。
2025-03-26 23:08:18
1454
原创 Git 删除敏感密钥
如果你现在遇到了这个场景,在github 上不小心 上传了私钥操作同时新版本 已经领先于之前的版本了输入git log 如下:这是我的模拟场景•••确实会导致git filter-repo 本质上是,它会:•••永久性地从历史中如果输出为空,说明确实没有 remote。
2025-03-25 23:55:20
758
原创 docker使用uv安装依赖
📌 作用是:• ✅(不安装你项目代码)• ✅ 使用 lock 文件精确控制版本• ✅✔️ 只要你没改 pyproject.toml 或 uv.lock,这一层永远不需要重建!这是 Docker 构建中非常重要的一环 —— 利用文件不变来缓存 layer,加快构建速度。📌 作用是:• ✅• 因为第一次用了 --no-install-project,项目代码没有装进去🚨 如果你更新了项目源码,但没改 pyproject.toml,就只会触发第二次构建。
2025-03-25 23:14:53
778
原创 pytest测试代码专用
pytest是一个功能强大、灵活且易用的 Python 测试框架,用于编写和运行单元测试、集成测试等。它是 Python 社区中最受欢迎的测试工具之一,相比内置的 unittest 模块,pytest 提供了更简洁的语法、更丰富的功能和更好的扩展性。不需要继承特定的基类(如 unittest.TestCase),只需写普通的 Python 函数。使用 assert 语句即可进行断言,无需复杂的 self.assertEqual 等方法。
2025-03-24 23:38:58
1127
原创 langfuse追踪Trace
Langfuse 是一个专门为 LLM 应用(如 OpenAI / LangChain / 自定义 Agent) 设计的 观测与追踪平台(Observability Platform)。
2025-03-23 23:56:42
819
原创 openai工具调用
使用工具链OpenAI:• 会分析你的 user 提问;• 判断是否需要调用某个工具;• 如果需要,就会返回一个,说明它“决定调用哪个函数 + 参数”。
2025-03-23 18:33:48
405
原创 Python工厂基类
这个 @classmethod 的作用是——将一个函数 fn 注册进当前类的 registry 字典中,键是函数名,值是函数本体。Python 的 inspect.signature(fn) 是标准库中的函数,用来。的框架,就像你现在做的那样 —— 类似于一个「工具工厂」。,装饰的作用是把函数。
2025-03-23 18:32:12
176
原创 Cloudfare内网穿透配置
注册cf后需要绑定自己的域名后,可以实现更多的功能写入CF的DNS ,即表示已经激活只要显示的是 Cloudflare 的两个 NS,就表示验证成功 ✅这样就表示添加成功了:然后搜索cloudflared 便可以下载对应的链接。Cloudflare 并不像其他平台要求你添加 TXT 验证记录,它是来确认你是该域名的管理员。
2025-03-23 16:32:26
780
原创 Picgo 配置--免费图床使用
下载 pigco ,然后去github 建一个仓库,可以命名为https://github.com/jacinli/image-hosting这是一个免费的图床方案使用了picgo + github 仓库的方案可以配置CDN ,强烈建议配置cdn (见最下)通过 PicGo + GitHub 实现免费图床的核心是利用 GitHub 仓库存储图片,PicGo 负责自动化上传并生成链接。你不需要自己搭建服务器,GitHub 本身就是存储和托管的“服务器”。
2025-03-23 01:00:17
815
原创 SSL证书与CA证书
CA 证书(Certificate Authority Certificate)是由「数字证书颁发机构」签发的证书,它的作用是:✅ 证明一个网站/服务器的身份是可信的✅ 用于建立HTTPS 安全连接(SSL/TLS)✅ 支持公钥加密和身份验证字段说明版本一般是 X.509 v3序列号证书的唯一编号签名算法比如 SHA256-RSA颁发者(Issuer)颁发证书的 CA 机构名称主题(Subject)被认证的网站/组织信息公钥网站用于加密通信的公钥有效期起始时间和过期时间扩展字段。
2025-03-23 00:12:39
1129
原创 网络HTTPS协议
HTTPS(Hypertext Transfer Protocol Secure)是 HTTP 协议的加密版本,它使用协议来加密客户端和服务器之间的通信。具体来说:•:在用户请求访问一个 HTTPS 网站时,客户端(如浏览器)和服务器通过来建立一条加密的通道。这个过程包括证书验证、密钥交换等步骤,最终生成一个用于加密的会话密钥。•:一旦加密通道建立,浏览器和服务器之间的所有通信数据都会使用对称加密技术(如 AES)加密。
2025-03-22 23:47:33
1107
原创 扫码登录(前后端双重解决方案)
• 前端拿到 code,再调用自己后端 /users/third_login/login_call/ 交换 token。了,Web 端的轮询 /login/status/{uuid} 状态变为。/login/status/{uuid},体验流畅。pending 生成二维码,等待扫码 40 秒。code**,可以掌控整个流程**(或 redirect_uri)。uuid**,导致失败**。• **缺点:**code。
2025-03-22 23:34:32
1108
原创 手机号登录与高并发思考
这个设备标识可以基于设备的硬件信息、安装的应用ID,或者生成一个唯一的UUID。最好的解决方案是在验证码过期之前提供验证码重发、动态刷新或者适当的过期提醒等方式来保障用户的体验,同时确保系统的安全性和效率。:将 OTP 所需的密钥(通常是一个随机生成的密钥)通过二维码的方式呈现给用户,用户可以使用 TOTP 兼容的应用(如 Google Authenticator 或 Authy)来生成验证码。:每次请求时,记录用户请求的时间戳,在每次请求时检查用户在最近一分钟内的请求次数,如果超过限制,则拒绝该请求。
2025-03-22 23:13:09
918
原创 OpenAI流式解析
在 Python 中,导入模块时使用的是库的模块名,而不是 PyPI 上的包名。load_dotenv 是这个库提供的一个函数,用于读取 .env 文件并将其中定义的键值对设置为系统的环境变量。在异步迭代 response 中的每个 chunk,如果它有内容,就通过 yield 一块一块地“流式返回”。的用法,结合了 Python 的异步编程(async for)和生成器(yield)机制。,特别是在异步函数中逐步输出内容的场景下,它是可接受的。yield 是生成器的关键,它不是“返回”值,而是“
2025-03-22 22:49:47
882
原创 SSE流式FastAPI
SSE(Server-Sent Events)是一种,特别适合用来实现像 GPT 这种「流式输出」的效果。• 客户端(浏览器)发起请求后• 服务器可以不断「推送消息」给客户端• 使用 MIME 类型:text/event-stream• 天然支持断线重连(Last-Event-ID)用途。
2025-03-22 22:48:39
540
原创 Python协程调度
Python 协程调度指的是的机制。这主要依赖于 Python 内置的 asyncio 模块。•:使用 async def 定义的函数,这类函数在遇到 await 时会挂起执行,将控制权交还给事件循环,然后在适当时刻恢复执行。•:利用协程实现非阻塞的代码执行,即使只有一个线程也可以同时处理多个 I/O 密集型任务。•是 Python 协程调度的核心,它不断轮询任务,检查哪些任务准备好继续执行。
2025-03-22 22:46:27
676
原创 Sqladmin - FastAPI框架下一键生成管理后台
Github 开源地址:网站说明链接地址:一个现代、优雅的 SQLAlchemy 管理后台工具,非常适合用在 FastAPI 项目中是一个基于构建的管理后台框架,灵感来自于 Django Admin,目标是为 Python 项目提供:• 🚀 简洁易用的后台界面• 📋 基于 SQLAlchemy 的模型自动管理• ⚙️ 快速 CRUD(增删改查)• ✨ Jinja2 渲染漂亮的 Bootstrap 风格后台。
2025-03-22 17:31:45
847
原创 UV-Python包高效管理工具
uv 是一个,兼容 pip / virtualenv / pyproject.toml,专注于:• 🚀• 📦 支持 requirements.txt 和 pyproject.toml• 🧱 内置虚拟环境(不依赖 venv)• 🔒 完整的依赖锁定机制(支持 uv pip compile)• 💡 使用 Rust 编写,性能强悍。
2025-03-22 16:54:20
1115
原创 ElasticSearch 简单使用
Elasticsearch 与传统的关系型数据库不同,它并不使用“数据库”和“表”的概念。相反,Elasticsearch 使用“索引”(index)来存储数据,索引相当于数据库中的“表”。而“文档”(document)则相当于表中的一行数据。Elasticsearch是NOSQL类型的数据库。索引(index)类似mysql的表,代表文档数据的集合,文档指的是ES中存储的一条数据。Elasticsearch存储结构MYSQL存储结构index(索引)表文档行,一行数据Field(字段)
2024-10-11 17:57:32
885
原创 Alembic使用 (SqlAlchemy)
Fastapi 使用ORM 使用的是SqlAlchemy,这里使用alembic进行数据库文件迁移与数据库迁移。
2024-09-30 15:50:05
1697
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人