Markdown 语法与外挂标签写法汇总
🥧本文汇总 Markdown 格式以及外挂标签在网页端的渲染效果,可作为文档进行查询
使用 GitHub Actions 自动部署 Hexo 博客
每次写完一篇博客,在本地 hexo s 预览完觉得没问题了,还得手动敲一遍 hexo g && hexo d,等它慢慢推到 GitHub 上……说实话,烦死了。有几次我写完文章都凌晨两点了,敲完部署命令就去睡了,第二天起来发现 TM 的部署失败了,原因是本地 Node 版本跟远程不一致,生成的页面样式全崩了。
后来我寻思,这玩意儿不就是 CI/CD 最典型的场景吗?push 代码 → 自动构建 → 自动部署。GitHub Actions 免费额度够用,配一次永久生效,咱就搞起来吧。
为什么要自动化部署先说说我之前手动部署的痛苦:
本地环境不稳定 —— 我电脑上装了 Node 16、18、20 三个版本(用 nvm 管理的),有时候切错版本,hexo generate 直接报错
忘记部署 —— 有好几次文章写完了,commit 推上去了,结果忘了 hexo d,过了两天才发现博客上还是旧内容
换电脑就抓瞎 —— 出去玩的时候用笔记本写文章,结果那台机器没装 Hexo 环境,还得现装
用 GitHub Actions 的话,这些问题统统不存在了。只要 gi ...
Python 项目 Docker 化部署实战
之前写了篇 Docker 配代理的文章,把 Docker 拉镜像慢的坑给填了。这次来聊聊一个更实际的话题——咋把 Python 项目正经地 Docker 化部署。
说实话,刚开始搞 Docker 的时候,我写的 Dockerfile 那叫一个粗糙,镜像动辄 1G+,构建还贼慢。后来踩了不少坑,才算摸出一套相对靠谱的写法。今天就从基础到进阶,一次性给大伙儿捋清楚。
一个最基础的 Dockerfile咱先从最简单的来,假设你有个 Python 项目,结构大概长这样:
123456my-project/├── app/│ ├── __init__.py│ └── main.py├── requirements.txt└── Dockerfile
最基本的 Dockerfile 写法:
12345678910FROM python:3.10-slimWORKDIR /appCOPY requirements.txt .RUN pip install --no-cache-dir -r requirements.txtCOPY . .CMD ["python", ...
用 Docker 一键部署 frps 服务端
之前写了篇 frp 内网穿透的教程,当时是直接把 frps 二进制文件丢服务器上用 systemd 管理的。后来寻思这玩意儿能不能用 Docker 跑,一来方便管理不怕环境搞乱,二来换服务器的时候 docker-compose up -d 一行命令就搞定了不用重新配。折腾了一下发现还真挺好使,搞了个精简镜像才不到 30M,干脆开个仓库记录一下。
仓库地址:https://github.com/Jerry-FaGe/frps-docker
先决条件
Docker
Docker Compose
一台有公网 IP 的服务器(云服务器就行)
为什么用 Docker 跑 frps直接跑二进制文件有啥问题呢?倒也不是不行,就是有点烦:
环境依赖 —— 虽然 frps 本身是静态编译的没啥依赖,但你想改配置、看日志、管理进程,还是得手动搞 systemd service 文件
升级麻烦 —— 每次升级得手动下载、解压、替换文件、重启服务 ...
Docker 中配置代理的几种方式
在日常使用 Docker 的过程中,我们可能会遇到需要通过代理服务器来进行网络通信的情况。例如,在构建 Docker 镜像、运行容器或者下载 Docker 镜像时,可能需要配置代理以访问外部网络。下面我们将详细介绍在这三种情况下如何配置代理。
构建镜像 docker build 的时候,使用 --build-arg 参数配置代理
Docker 容器运行的时候,需要设置宿主机 docker 的 config.json 文件来设置代理。
下载镜像 docker pull 的时候,使用的 Docker 服务的环境变量来设置 dockerd 进程的代理。
1. 构建镜像 docker build 时构建镜像的时候跟别的环境都是隔离的,所以要通过命令行参数 --build-arg 来传递代理配置给 docker build 命令。
12345docker build . \ --build-arg "HTTP_PROXY=http://proxy.example.com:7890" \ --build-arg "HTTPS_PROXY=http://prox ...
frp 内网穿透从零搭建指南
之前搭了个 frp 把本地的 stable-diffusion-webui 暴露到公网上,当时在那篇隐藏 cmd 窗口的文章里简单提了一嘴 frp,但没细讲怎么配。后来有不少同学私信问 frp 咋搭的,干脆写一篇从零开始的完整教程吧。
本文基于 frp v0.52.0+ 版本,使用 TOML 格式配置文件。旧版的 INI 格式(frps.ini / frpc.ini)已经不推荐使用了,新功能只能在 TOML/YAML/JSON 格式下生效。
什么是内网穿透?简单说,内网穿透就是让外网能访问你局域网里的设备。你家的电脑在路由器后面,没有公网 IP,外面根本连不进来。frp 就是干这事的——你有一台带公网 IP 的服务器当中转,把流量转发到你内网的机器上。
frp 的架构frp 分两个角色:
frps(Server):部署在有公网 IP 的服务器上,负责接收外部请求并转发
frpc(Client):部署在你的内网机器上,负责把本地服务注册到 frps 上
1外网用户 --> 公网服务器(frps) --> 内网机器(frpc) --&g ...
Stable Diffusion WebUI 本地部署踩坑记录
之前一直在用线上的 Stable Diffusion 服务,生图速度嘛……懂的都懂,排队排到天荒地老。想着本地部署一个,毕竟咱有张 N 卡,不用白不用对吧?结果好家伙,这一部署直接给我整破防了,踩的坑比我画的二次元老婆还多。今天就把这些坑都记录下来,希望能帮到后面入坑的兄弟们。
前期准备在开始之前,先确认一下你的环境:
操作系统:Windows 10 / 11
显卡:NVIDIA 显卡(GTX 1060 6G 及以上,显存至少 4GB,推荐 8GB+)
Git:Git for Windows
Python:强烈推荐 Python 3.10.6,不要用 3.11 或更高版本!
坑点一:Python 版本千万别选最新的!
我一开始装的 Python 3.11,好家伙,后面 pip install 的时候各种报错,torch 和 xformers 的版本对不上,折腾了半天才发现是 Python 版本的锅。AUTOMATIC1111 的 WebUI 官方推荐的就是 Python 3.10.6,别问我为什么不用最新的,问就是血泪教训。
安装 Python 的时候记得勾选 Add ...
OpenAI Function Calling 初探
前言好家伙,OpenAI 这帮人真的是不让人睡觉。6月13号大半夜的,我又收到了那封熟悉的邮件——「OpenAI API Updates」。点开一看,好嘛,GPT-4 和 GPT-3.5 Turbo 都更新了,还降了价,但这都不是重点。重点是一个叫 Function Calling 的新功能。
之前写了那篇 ChatGPT API 初体验,当时就吐槽过 ChatGPT 不能直接调外部接口,输出的格式也不好控制。现在 OpenAI 直接给你整了个大活——让模型学会「打电话」叫函数了。
二话不说,赶紧来试一波。
Function Calling 到底是啥?说人话就是:你给 ChatGPT 一堆函数的「说明书」,它看完之后,当你问它问题的时候,它会告诉你:「兄弟,你应该调这个函数,参数给你准备好了」。
举个栗子🌰:
你问:「今天北京天气咋样?」
ChatGPT 回你:「你去调 get_current_weather 这个函数吧,location 填 北京」
你拿到参数,调你的天气 API,把结果扔回给 ChatGPT
ChatGPT 再用自然语言把天气告诉你
是不是有种「我全都要」 ...
ChatGPT API 简单体验
OpenAI 大半夜 4 点给我发邮件说 ChatGPT 使用的模型 gpt-3.5-turbo 的 API 开放了,好家伙赶紧试试。
生成 API Key调用 API 需要 API Key ,前提是你得有个 OpenAI 的账号,咋注册就不在这说了教程一大把。
打开这个页面,点击 Creat new secret key 。
弹出的窗口里就是你的 API Key ,复制出来找个地方妥善保存,因为这个 key 就只会显示这一次,关掉了这个弹框你就再也找不到完整的 key 了,如果不及时保存就只能删除目前这个再重新生成一个。
编写代码咋装 Python 啥的咱就不讲了,先装个包
1pip install openai
当然不用这个包也行,随便用个请求库比如 requests,在请求头里写上 "Authorization": "Bearer 你的API Key" post 方式直接请求 API 地址。
代码:
123456789101112131415161718192021222324252627282930313233343536 ...
Windows 下开机自启动命令行程序并隐藏 cmd 窗口
命令行程序配置 Windows 开机自启动并隐藏启动时的 cmd 窗口









