-
Github开源协议
选择开源许可证(Open Source License)来约束代码🏆 常见开源许可证一览 许可证 是否允许商用 是否需要开源衍生品 是否可闭源使用 是否允许修改 特点简述 MIT ✅ 是 ❌ 否 ✅ 是 ✅ 是 非常宽松,允许闭源使用和修改,只需保留版权声明 Apache 2.0 ✅ 是 ❌...…
-
Git删除敏感密钥
删除git敏感密钥如果你现在遇到了这个场景,在github 上不小心 上传了私钥操作同时新版本 已经领先于之前的版本了输入git log 如下:这是我的模拟场景commit 0ed3d55db179964998d83076dd3f6f87849de84a (HEAD -> main, origin/main, origin/HEAD)Author: jacinli <poplar_ripest80@icloud.com>Date: Tue Mar 25 23:29:0...…
-
docker使用uv安装依赖
官方使用FastAPI 官方 Dockerfile 中用了两次:RUN --mount=type=cache,target=/root/.cache/uv \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ uv sync --frozen --no-install-project # ✅ 第...…
-
python 格式化利器
工具✅ 一站式推荐方案(轻量 + 快速) 工具 作用 是否必须 ruff 格式化 + lint + isort 一体化 ✅ 必须 mypy 静态类型检查,适配 SQLAlchemy 2.0 ✅ 推荐 pytest + pytest-cov 测试 + 覆盖率 ✅ 推荐 bandit...…
-
pytest测试代码专用
介绍pytest 是一个功能强大、灵活且易用的 Python 测试框架,用于编写和运行单元测试、集成测试等。它是 Python 社区中最受欢迎的测试工具之一,相比内置的 unittest 模块,pytest 提供了更简洁的语法、更丰富的功能和更好的扩展性。 官网: pytest.org 安装: 通过 pip 安装 pip install pytest。 版本要求: 当前使用的是 pytest-8.3.5(根据你的输出),这是一个较新的版本,支持 Python 3.12。不需要继承特定...…
-
OpenAI工具调用
工作流程第 1 步:调用模型,传入工具列表使用工具链response = await client.chat.completions.create( model="gpt-4-turbo", messages=[ {"role": "user", "content": "北京的天气怎么样?"} ], tools=[ ...工具列表... ], tool_choice="auto", # 让模型自己决定是否调用)OpenAI:• 会分析你的 us...…
-
Langfuse追踪Trace
介绍🧠 Langfuse 是什么?Langfuse 是一个专门为 LLM 应用(如 OpenAI / LangChain / 自定义 Agent) 设计的 观测与追踪平台(Observability Platform)。 简单说,它就像是你为 AI 应用插上的 “黑匣子”,可以记录每一次调用过程、上下文、耗时、错误等信息,并提供 Web UI 让你可视化分析和优化。 功能点 说明 ✅ Trace 跟踪 记录一次完...…
-
工厂基类
统一注册工具函数、统一调用执行的框架,就像你现在做的那样 —— 类似于一个「工具工厂」。from typing import Dict, Callable, Anyimport inspectimport json# 工具工厂基类class BaseTool: registry: Dict[str, Callable] = {} @classmethod def register(cls, fn: Callable): """注册工具函数到工厂""" ...…
-
Cloudfare配置内网穿透
注册cloudfare注册cf后需要绑定自己的域名后,可以实现更多的功能这里面首先关闭自己买的服务器的DNSSEC ,关闭,然后需要写入自己的:Name Servers写入CF的DNS ,即表示已经激活👉 https://dnschecker.org/#NS/jacin.tech只要显示的是 Cloudflare 的两个 NS,就表示验证成功 ✅这样就表示添加成功了:一般类型就是: NS x.cloudflare.com N...…
-
PicGo配置
下载 pigco ,然后去github 建一个仓库,可以命名为https://github.com/jacinli/image-hosting1. 准备 GitHub 仓库 创建仓库: 登录 GitHub,点击右上角的 “+” 号,选择 “New repository”。 给仓库取一个名字(比如 image-hosting),选择 Public(公开仓库,免费用户只能用公开仓库作为图床)。 勾选 “Add a README file” 初始化仓库。 ...…
-
SSL证书与CA证书
一般个人开发者 不嫌麻烦的话可以使用免费的ssl证书 ,不过一般只有3个月,到了就需要进行更换,否则就是不行的了。或者可以某宝 购买SSL证书,一般Certum 比较便宜,大约18元一个域名,有一个域名可以用/xxxx 来维护其他的服务实例,或者165+ 元买通配符域名,即 *.abc.com 这个也算可以的吧。但是注意最好自己生成KEY 私钥 + CSR文件,给卖家只要CSR 文件即可,没有私钥即正确,如果一般机构给你公私钥了,那说明不太安全,最好CSR的方法。(但是有一个很无语,腾讯云...…
-
Https协议
HttpsHTTPS(Hypertext Transfer Protocol Secure)是 HTTP 协议的加密版本,它使用 SSL/TLS 协议来加密客户端和服务器之间的通信。具体来说:• 加密通信:在用户请求访问一个 HTTPS 网站时,客户端(如浏览器)和服务器通过 SSL/TLS 握手 来建立一条加密的通道。这个过程包括证书验证、密钥交换等步骤,最终生成一个用于加密的会话密钥。• 数据加密:一旦加密通道建立,浏览器和服务器之间的所有通信数据都会使用对称加密技术(如 AES)加密...…
-
扫码登录
后端处理qrcode(安全为主) 1. 前端请求 /login/qrcode/ 获取 uuid 和 qrcode。 2. 前端每秒轮询 /login/status/{uuid},后端分情况处理: • 二维码过期(uuid 失效)→ 让前端请求新的二维码。 • 用户未扫码 → pending,前端继续轮询。 • 用户扫码 & 登录成功 → 返回 token,前端完成登录。 3. 用户扫码后,后端更新 Redis 状态,前端最终轮询到 token 后跳转。登录状态流转:二维码的 状态变...…
-
微信小程序登录
调用接口[wx.login()]获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台账号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台账号)及本次登录的会话密钥(session_key)等。临时登录凭证 code 只能使用一次。如果开发者拥有多个移动应用、网站应用、和公众账号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号(包括小程序...…
-
手机号登录与高并发思考
基础逻辑一般来说这个验证码登录分为手机号、以及邮箱登录手机号短信验证,以腾讯云SMS 服务为例:这个操作无非对后端来说就是两个接口:一个是获取验证码,这块后端生成6位数字+expire_time 去推送到腾讯云sdk ,腾讯云sdk再去推送运营商,运营商再去推送到用户一个就是验证验证码,根据phone+ expire 去redis查就行了注意 第一个用户 使用手机号获取验证码的时候,不要插库,因为没有经过验证,所有涉及到手机号相关的,特别是绑定、登录等必须要验证手机号腾讯云短信sms 服务...…
-
协程调度
介绍Python 协程调度指的是 在单线程内利用协程(coroutines)实现并发执行 的机制。这主要依赖于 Python 内置的 asyncio 模块。• 协程(Coroutines):使用 async def 定义的函数,这类函数在遇到 await 时会挂起执行,将控制权交还给事件循环,然后在适当时刻恢复执行。• 异步编程:利用协程实现非阻塞的代码执行,即使只有一个线程也可以同时处理多个 I/O 密集型任务。• 事件循环 是 Python 协程调度的核心,它不断轮询任务,检查哪些任务...…
-
sqladmin管理工具
介绍Github 开源地址:https://github.com/aminalaee/sqladmin网站说明链接地址:https://aminalaee.dev/sqladmin/一个现代、优雅的 SQLAlchemy 管理后台工具,非常适合用在 FastAPI 项目中SQLAdmin 是一个基于 FastAPI + SQLAlchemy 构建的管理后台框架,灵感来自于 Django Admin,目标是为 Python 项目提供:• 🚀 简洁易用的后台界面• 📋 基于 SQLAlchem...…
-
uv包管理工具
介绍uv 是一个 极快的 Python 包管理器,兼容 pip / virtualenv / pyproject.toml,专注于:• 🚀 极速安装依赖(比 pip 快几十倍)• 📦 支持 requirements.txt 和 pyproject.toml• 🧱 内置虚拟环境(不依赖 venv)• 🔒 完整的依赖锁定机制(支持 uv pip compile)• 💡 使用 Rust 编写,性能强悍 功能 pip uv ...…
-
SSE流式fastapi
介绍SSE(Server-Sent Events)是一种 服务器主动向客户端“推送”数据的技术,特别适合用来实现像 GPT 这种「流式输出」的效果。SSE 是一种基于 HTTP 的单向通信协议:• 客户端(浏览器)发起请求后• 服务器可以不断「推送消息」给客户端• 使用 MIME 类型:text/event-stream• 天然支持断线重连(Last-Event-ID)用途• 🌊 流式响应(比如 GPT、AI 对话)• 📢 实时通知 / 消息广播• 📈 实时数据更新(股票、仪表盘)• 🧠 ...…
-
openai流式解析
OpenAI 流式的代码:首选一般请使用os.getenv 去读环境变量的内容注意使用pip install python-dotenv 的安装方法load_dotenv 是这个库提供的一个函数,用于读取 .env 文件并将其中定义的键值对设置为系统的环境变量。默认情况下,load_dotenv() 会自动查找当前目录下的 .env 文件。如果文件不在默认路径,可以通过参数指定,例如 load_dotenv(‘/path/to/.env’)。为什么代码里用 dotenv 而不是 pytho...…