AI写不出优质的代码?其实是你引导错了!

视频链接: https://www.bilibili.com/video/BV1jw38z9EEn/ 正确的引导方法 先搞清楚你自己具体的需求。比如代码用什么语言编写?用什么技术栈?要具体实现什么功能?应用的场景是什么?是前端、后端还是全栈等等 逻辑清晰,简洁干练地表述你的需求。 比如: 编写一个Python脚本,在代码中硬编码S3_Endpoint、S3_Area、S3_key、S3_Secret、S3_Url(暂时全部留空)。运行后监听Ctrl+Alt+A,一旦被按下,立即检查剪贴板内是否有图片(支持文件格式和纯图格式),将其转换为Webp格式并上传到S3 API的S3_Url路径下,最后模拟键入![](图片链接) 如果不确定AI是否理解了你的需求,可以CallBack一下,避免AI假装理解了你的需求然后一通乱写,比如上面的表述可以改为: 编写一个Python脚本,在代码中硬编码S3_Endpoint、S3_Area、S3_key、S3_Secret、S3_Url(暂时全部留空)。运行后监听Ctrl+Alt+A,一旦被按下,立即检查剪贴板内是否有图片(支持文件格式和纯图格式),将其转换为Webp格式并上传到S3 API的S3_Url路径下,最后模拟键入![](图片链接)。你明白了吗,请告诉我你将要如何完成这个任务,在我批准前请不要编写代码 有时候表达模糊实际上是好事。 因为你一旦开始描述创建一个什么什么变量,赋值为多少多少的时候,实际上你不是在用AI写代码,而是让AI将你的自然语言代码转换为编程语言代码,这就不是一个创造式的需求,而是一个翻译类的需求,最终代码生成质量的好坏完全取决于你的技术知识储备和逻辑思维是否强大。 所以,在面对大部分的需求,我们可以先大致描述一个框架,确认AI的方向正确后慢慢编写项目 AI也会犯错,并且极其容易瞎猜。不要尽信AI给出的内容,在涉及到你不懂的知识时,我们可以翻阅维基百科等权威知识网来验证 不要让AI一直自我检查。现代的AI IDE中,大部分已经实现了Agent模式,也就是: 用户提出需求 -> AI分析并实现需求 -> AI自动Debug -> 最终交付用户项目。 但是在我半年的AI IDE使用经验中,如果代码出现Bug,请不要说类似: 这个代码跑不了,帮我看看 这样的话,我仍然建议你将完整的报错信息复制粘贴给AI并且要求他分析并解决,例如: [报错信息]它报错了,请根据报错信息深度分析一下问题导致的原因,并给我一个解决方案,而不是让AI自身Debug。 因为有时候程序的报错可能只是一个简单的环境变量没配置,或者是你没有使用一个主流的方案,单纯让AI自我检讨只会让AI选择它最认为出错的地方。 换位思考一下,你有个甲方一直告诉你这个方案不行但是就不告诉你哪里不行你头不头疼。但是AI毕竟不是人类,它只会在它认为正确的道路上越走越远,运气好迭代几次Bug解决了,运气不好到达了IDE设置的迭代次数限制然后给你又新写了一坨新史山,然后你花钱买的请求数也就这样浪费了 最后,请善用AI,你也可以询问AI: 你的最佳调用方式是什么。当然,她也有可能欺骗你。 AI推荐 ChatGPT:快速,不限额。适合解决你的疑问 Claude:相比于GPT更强大,更擅长编写代码,尤其是前端,目前大部分AI IDE都接入了Claude 3.5 Sonnet及以上的模型,非常适合编写可拆解,易维护的小脚本 VS Code(Github Copilot):AI IDE。由微软开发,免费用户可以使用Claude 3.5 Sonnet模型,但是份额较少。Pro计划10USD/m,仅支持Paypal和海外卡支付 Cursor:AI IDE。由Anysphere开发,免费用户仅能使用Auto模型(一般不会分配到Claude模型)。Pro计划10USD/m,仅支持Paypal和海外卡支付 Trae(国际版):AI IDE。由字节跳动开发,需要国外IP。新用户Pro计划开通首月仅需3USD/m(之后为10USD/m),支持支付宝和海外卡支付。本人目前在用 写任何项目都完全不推荐使用网页版的任何大模型编写!请使用AI IDE!

June 16, 2025 · 1 min · 51 words

NAT1开放内网网站

配套视频 原理 正式开始 创建必要的Cloudflare API令牌 创建拥有如下图权限的令牌,使得Lucky可以使用此令牌设置DDNS、签发SSL、更新Cloudflare动态重定向 创建基底Cloudflare动态重定向规则 如图填写,替换为你的域名 表达式: wildcard_replace(http.request.full_uri, "*://*.072103.xyz/*", "https://${2}.stun.072103.xyz:6666/${3}") 观察网址,记录下如下图的数据 打开开发者工具后,再保存,确保抓到这样的包,保存备用 将 dash.cloudflare.com/api 改为 api.cloudflare.com/client 。将刚才获得的红框内的内容填写到 rules 后面 如果你不是第一次更新,可能会带有一个 "position":{"index":1}, 删除它,否则后面的WebHook将会出错。 将我们硬编码的 6666 端口改为Lucky STUN的变量 #{port} 最终我们记录了以下信息 https://api.cloudflare.com/client/v4/zones/f305febd3a25b5bb3a46b802328a75a8/rulesets/35218f125f7f4421b4c76314464689a2/rules/17228a4add70429c9cdd38eb7fec1d02 {"description":"stun","expression":"(http.host wildcard \"*.072103.xyz\" and not http.host in {\"pic.072103.xyz\" \"hpic.072103.xyz\"})","action":"redirect","action_parameters":{"from_value":{"status_code":301,"preserve_query_string":true,"target_url":{"expression":"wildcard_replace(http.request.full_uri, \"*://*.072103.xyz/*\", \"https://${2}.stun.072103.xyz:#{port}/${3}\")"}}},"enabled":true} 让Cloudflare接管 *.072103.xyz 的流量 配置Lucky DDNS 配置Lucky SSL/TLS证书 配置Lucky Web服务 配置Lucky STUN 注:我这里使用了路由器的端口转发,将Lucky的16666(Web服务)端口转发到了路由器的17777端口。如果你不会端口转发,请不要启用 不使用Lucky内置端口转发 并且目标端口填写16666 配置WebHook 如图配置 接口地址:你之前记录的 https://api.cloudflare.com/... 请求方法: PATCH 或者 POST ...

May 30, 2025 · 1 min · 73 words

浏览器自带下载慢?你需要一个第三方下载器 Motrix!

原理 通过浏览器插件拦截下载请求,再将原始请求转发给 Motrix,就可以实现由 Motrix 接管下载。 下载 Motrix 前往官网:https://motrix.app/ 下载 Motrix。 如果你连下载 Motrix 都觉得慢……那就先忍一忍。 安装完成后,大概就是这个样子: 配置 Motrix 打开 Motrix,进入 进阶设置 -> RPC。你会看到 RPC 监听端口(默认为 16800)和一个随机生成的 RPC 授权密钥。 记住监听端口,并复制好授权密钥(点击小眼睛后即可复制,旁边的骰子图标用于随机生成新密钥)。完成后点击“保存并应用”。 配置浏览器 仅支持 Chromium 系浏览器(如 Chrome 和新版 Microsoft Edge),Firefox 请另寻方案。 浏览器扩展请选择:Aria2 Explorer。 安装完成后,右键扩展图标,进入“扩展选项”,在这里填入 Motrix 的 RPC 配置。 最后,右键扩展并勾选“下载拦截”,然后再尝试下载文件。如果配置无误,浏览器中的下载请求会被 Aria2 Explorer 捕获并转发给 Motrix。此时你可以在 Aria2 Explorer 和 Motrix 中看到正在下载的文件。

May 25, 2025 · 1 min · 53 words

利用WebHook来为你的订阅者推送文章更新信息

原理解析 静态博客一般会托管在Github来方便静态网站构建服务提供商进行自动构建和发布站点。 我们可以通过 WebHook 在文章更新后自动通知订阅者。但单一 WebHook 有各自的缺陷: WebHook 类型 优点 缺点 Github WebHook 能检测文件变动,知道哪些文章更新了 不知道构建时长,需要设置保守延迟 Netlify WebHook 构建完成后通知,时机精准 不能检测文件变动 最佳方案是 两者结合使用,工作流为: Push → Github WebHook 通知Bot(记录变动文章) → Netlify WebHook 通知构建完成 → Bot 即刻推送文章更新消息 正式开始 设置你的自托管WebHook接收器 我使用Koishi编写一个插件创建一个HTTP服务器用于接受WebHook,并且在接收到指定提交信息的WebHook后将在2分钟后在我的群里广播文章更新消息 如果你的服务在内网,可以使用Cloudflared将WebHook接收服务器开放到公网。否则Github将无法将WebHook信息发送到你的服务 配置Github Repo WebHook 打开你的博客仓库,在仓库设置找到WebHooks 添加一个新的WebHook,如图设置 配置Netlify WebHook 如果你的站点部署在 Netlify,可以进一步配置构建完成通知。 添加HTTP POST钩子 创建一个部署成功钩子 Bot端配置 设置一个双监听WebHook服务器,同时接受Github和Netlify的WebHook 开发测试 在你的博客仓库进行一次Push操作,检查是否收到了WebHook信息并且分析信息配置你的WebHook接收器做后续操作

May 18, 2025 · 1 min · 53 words

让Vercel对接你的S3对象存储(仅下载)

视频教程(推荐): https://www.bilibili.com/video/BV17b5gz5Ea4 正式开始 使用方法非常简单,进入GitHub仓库:GitHub - afoim/S3cloudrive-index: S3cloudrive public directory listing. Powered by Next.js. 按照README部署即可 原理 采用Vercel Function登录S3,获取文件列表传递给前端拼接URL显示,原项目是对接的OneDrive:iRedScarf/onedrive-index: OneDrive public directory listing, and One-Click Deploy to Vercel. Powered by Vercel and Next.js.。本项目仅更改了后端对接的存储类型,理论上你可以三改后对接任意存储… 本人想对接天翼云盘PC的驱动,但是登录鉴权一直不会做,有没有人来帮帮我()

May 4, 2025 · 1 min · 32 words

手把手教你部署Discourse

正式开始 确保你安装了 Docker 和 Docker-Compose 选一个目录创建 docker-compose.yml 写入内容 version: '2' services: postgresql: image: docker.io/bitnami/postgresql:11 volumes: - 'postgresql_data:/bitnami/postgresql' environment: - POSTGRESQL_POSTGRES_PASSWORD=admin12345 - POSTGRESQL_USERNAME=ex_discourse - POSTGRESQL_PASSWORD=user12345 - POSTGRESQL_DATABASE=example_discourse redis: image: docker.io/bitnami/redis:6.0 environment: - REDIS_PASSWORD=redis12345 volumes: - 'redis_data:/bitnami/redis' discourse: image: docker.io/bitnami/discourse:2 ports: - '127.0.0.1:880:3000' volumes: - 'discourse_data:/bitnami/discourse' depends_on: - postgresql - redis environment: # 用户和站点配置 - DISCOURSE_HOST=example.com - DISCOURSE_USERNAME=siteadmin - DISCOURSE_PASSWORD=siteadmin12345 - DISCOURSE_EMAIL=siteadmin@gmail.com # 数据库连接配置 - DISCOURSE_DATABASE_HOST=postgresql - DISCOURSE_DATABASE_PORT_NUMBER=5432 - DISCOURSE_DATABASE_USER=ex_discourse - DISCOURSE_DATABASE_PASSWORD=user12345 - DISCOURSE_DATABASE_NAME=example_discourse # Redis 连接配置 - DISCOURSE_REDIS_HOST=redis - DISCOURSE_REDIS_PORT_NUMBER=6379 - DISCOURSE_REDIS_PASSWORD=redis12345 # 使用 postgresql-client 为 Discourse 创建数据库 - POSTGRESQL_CLIENT_POSTGRES_USER=postgres - POSTGRESQL_CLIENT_POSTGRES_PASSWORD=admin12345 - POSTGRESQL_CLIENT_CREATE_DATABASE_NAME=example_discourse - POSTGRESQL_CLIENT_CREATE_DATABASE_EXTENSIONS=hstore,pg_trgm # SMTP - DISCOURSE_SMTP_HOST=smtp.mailgun.org - DISCOURSE_SMTP_PORT=587 - DISCOURSE_SMTP_USER=邮箱用户名 - DISCOURSE_SMTP_PASSWORD=邮箱密码 - DISCOURSE_SMTP_PROTOCOL=tls或ssl - DISCOURSE_SMTP_AUTH=login sidekiq: image: docker.io/bitnami/discourse:2 depends_on: - discourse volumes: - 'sidekiq_data:/bitnami/discourse' command: /opt/bitnami/scripts/discourse-sidekiq/run.sh environment: # 用户和站点配置 - DISCOURSE_HOST=example.com - DISCOURSE_USERNAME=siteadmin - DISCOURSE_PASSWORD=siteadmin12345 - DISCOURSE_EMAIL=siteadmin@gmail.com # 数据库连接配置 - DISCOURSE_DATABASE_HOST=postgresql - DISCOURSE_DATABASE_PORT_NUMBER=5432 - DISCOURSE_DATABASE_USER=ex_discourse - DISCOURSE_DATABASE_PASSWORD=user12345 - DISCOURSE_DATABASE_NAME=example_discourse # Redis 连接配置 - DISCOURSE_REDIS_HOST=redis - DISCOURSE_REDIS_PORT_NUMBER=6379 - DISCOURSE_REDIS_PASSWORD=redis12345 # SMTP - DISCOURSE_SMTP_HOST=smtp.mailgun.org - DISCOURSE_SMTP_PORT=587 - DISCOURSE_SMTP_USER=邮箱用户名 - DISCOURSE_SMTP_PASSWORD=邮箱密码 - DISCOURSE_SMTP_PROTOCOL=tls或ssl - DISCOURSE_SMTP_AUTH=login volumes: postgresql_data: driver: local redis_data: driver: local discourse_data: driver: local sidekiq_data: driver: local 需要修改的部分。配置文件中两份都要改 ...

May 1, 2025 · 2 min · 243 words

Github全站反向代理搭建指南

引言 由于网络原因,国内访问Github经常遇到各种问题。本文将带你从原理到实践,搭建一个属于自己的Github全站反向代理。 为什么不能只用透明代理? 针对Github这样的网站,我们无法仅使用一个简单的透明反向代理指向 github.com 来解决,原因有两点: 1. 外域依赖问题 Github官网有许多外域依赖,比如 raw.githubusercontent.com、avatars.githubusercontent.com 等。如果只代理主域名,这些资源请求会直接访问原站,导致加载失败。 2. 钓鱼风险 注意!直接反代主流网站后,不久你的网站就会被Cloudflare标记为钓鱼站点,因为你原封不动的克隆了人家站点并且 没有显式屏蔽登录页面。 解决方案:透明代理 + HTML覆写 核心思路 我们需要实现两个关键功能: 透明代理:将请求转发到Github服务器 HTML覆写:重写Github返回的HTML,将其中的外域改为我们自己的域 请求流程对比 原始流程: 用户 -> github.com -> raw.githubusercontent.com(被github.com请求) 代理流程: 用户 -> gh.072103.xyz -> raw-githubusercontent-com.072103.xyz(被gh.072103.xyz请求) 对于 gh.072103.xyz 的请求由代理服务转发到 github.com,而针对于 raw-githubusercontent-com.072103.xyz 的请求则转发到 raw.githubusercontent.com。 域名映射配置 你需要配置类似这样的域名映射: const domain_mappings = { 'github.com': 'gh.', 'avatars.githubusercontent.com': 'avatars-githubusercontent-com.', 'github.githubassets.com': 'github-githubassets-com.', 'collector.github.com': 'collector-github-com.', 'api.github.com': 'api-github-com.', 'raw.githubusercontent.com': 'raw-githubusercontent-com.', 'gist.githubusercontent.com': 'gist-githubusercontent-com.', 'github.io': 'github-io.', 'assets-cdn.github.com': 'assets-cdn-github-com.', 'cdn.jsdelivr.net': 'cdn.jsdelivr-net.', 'securitylab.github.com': 'securitylab-github-com.', 'www.githubstatus.com': 'www-githubstatus-com.', 'npmjs.com': 'npmjs-com.', 'git-lfs.github.com': 'git-lfs-github-com.', 'githubusercontent.com': 'githubusercontent-com.', 'github.global.ssl.fastly.net': 'github-global-ssl-fastly-net.', 'api.npms.io': 'api-npms-io.', 'github.community': 'github-community.' }; 假如你的域名为 abc.com,你需要将以下子域名绑定到你的代理服务: gh.abc.com avatars-githubusercontent-com.abc.com raw-githubusercontent-com.abc.com …等等 防钓鱼措施 我们需要找到原站点的所有登录页逐一屏蔽,对于Github.com,我们需要屏蔽: ...

April 14, 2025 · 4 min · 764 words

崩坏星穹铁道全局加速

原理剖析 注入一个DLL实现绕过ACE反作弊,然后用CE的变速精灵 正式开始 确保你安装了Virtual Studio 2022 中的工作负载:使用C++的桌面开发 克隆DLL源码仓库:GitHub - gmh5225/Honkai-StarRail-ACE-B: This repository provides code and instructions for bypassing the anti-cheat system in Honkai Star Rail game, allowing players to access previously restricted features and improve their gameplay experience. For informational purposes only. Use at your own risk. 前往 Releases · TsudaKageyu/minhook 分别下载 bin 和 lib ,将其解压后寻找文件 libMinHook.x64.lib 和 MinHook.h 将其放到DLL源码仓库根目录 代码需要小改,这里省略 编译: MSBuild star_rail.sln /p:Configuration=Release /p:Platform=x64 /property:GenerateFullPaths=true 产物在: \x64\Release\star_rail.dll 前往 Releases · master131/ExtremeInjector 下载并解压,得到 Extreme Injector v3.exe ...

April 14, 2025 · 1 min · 86 words

绕过USTC的浏览器JS验证

前言 当我们去下载类似于 https://mirrors.ustc.edu.cn/debian-cd/12.10.0/amd64/iso-dvd/debian-12.10.0-amd64-DVD-1.iso 这样的大文件时,USTC大概率会给你一个这样的:正在验证你的浏览器 的页面 如果你正在使用一个浏览器,比如Chrome、FireFox等,那过几秒你就能看到文件被成功开始下载 但是,如果你正在使用wget等无JS特性的工具下载这类文件,你将会被网站服务器拒绝: ERROR 403: Forbidden. ~# wget https://mirrors.ustc.edu.cn/debian-cd/12.10.0/amd64/iso-dvd/debian-12.10.0-amd64-DVD-1.iso --2025-04-04 14:44:13-- https://mirrors.ustc.edu.cn/debian-cd/12.10.0/amd64/iso-dvd/debian-12.10.0-amd64-DVD-1.iso Resolving mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)... 2001:da8:d800:95::110, 202.141.176.110 Connecting to mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)|2001:da8:d800:95::110|:443... connected. HTTP request sent, awaiting response... 403 Forbidden 2025-04-04 14:44:14 ERROR 403: Forbidden. 在之前,如果我想要下载这类文件我都会使用浏览器去下载,但是今天我在向我的朋友对这件事发牢骚的时候他跟我说他绕过了 于是我便想深挖一下,然后发现其实根本不是什么JS验证!!! 分析 让我们首先打开这类链接,然后查询网页源代码 <h1>Verifying your browser</h1> <p>Additional verification is required for this file you requested.</p> <p>This page requires JavaScript. Please wait for a few seconds.</p> <div class="footer"> <p>Your IP address is 2409:8a30:320:6480:1c6e:aab8:b415:c4fa</p> </div> <script> document.cookie = "addr=2409:8a30:320:6480:1c6e:aab8:b415:c4fa; max-age=300"; setTimeout(function () { location.reload(); }, 2000); </script> 你会发现,代码其实非常简洁干练,如果你的浏览器支持JavaScript,浏览器则会将 addr=2409:8a30:320:6480:1c6e:aab8:b415:c4fa这一串内容写入你的Cookie,之后等待两秒重载页面,然后网站发现你携带了这个Cookie,就会让你成功下载了。反之,如果你的浏览器不支持JavaScript,就会触发403,导致无法下载 ...

April 3, 2025 · 2 min · 286 words

自建邮局太麻烦?两种免费域名邮箱方案任你选!

引言 最早我开始知道域名邮箱是因为偶然在一位我朋友的开发群内看到他的微软账户绑定的邮箱是admin@他网站的域名.com。 我当时就很好奇,就去问他你这个邮箱是自建的吗? 因为我当时也知道可以通过购买VPS然后配上一些开源邮局框架来自建邮箱,但是这需要金钱和时间成本,而且我认为不大稳定,所以一直就没有试过。 然后他说他用的是Cloudflare的邮件转发服务。但是因为是转发,如果你想要以域名邮箱的身份发邮件就需要费一番周折,这也太割裂了。 于是发现了网易免费企业邮和腾讯企业邮箱,可以免费绑定你的域名用作域名邮箱,既能收,也能发。 方案对比 网易免费企业邮 腾讯企业邮箱 开启SMTP/IMAP ⭐⭐ 较麻烦,有坑 ⭐⭐⭐⭐⭐ 简单直接 稳定性 ⭐⭐⭐ 较老牌 ⭐⭐⭐⭐⭐ 大厂背书 推荐程度 不推荐 推荐 方案一:腾讯企业邮箱(推荐) 正式开始 首先进入 腾讯企业邮箱 创建一个企业,会让你绑定企业微信,按照步骤弄好就行 接下来绑定域名,添加几条MX记录即可 开启SMTP/IMAP/POP3 我们需要前往 腾讯企业邮箱-登录入口 注意,这里点击 其他方式登录 然后选择账号密码登录 接着选择成员登录(如果直接进去了就跳过这一步) 接下来左上角点击设置 收发信设置 这里就能查看到SMTP和IMAP的地址和端口(实测TLS也是支持的,只是它没写) 生成客户端密码 接下来前往邮箱绑定 生成新密码 方案二:网易免费企业邮 注意:网易企业邮存在一些问题,SMTP/IMAP/POP3默认是关的,你想打开就弹出一个 管理员未开启当前登录权限,体验较差,更推荐使用腾讯企业邮箱。 创建账号并配置管理员 首先前往 网易免费企业邮箱 创建一个账号。直接用手机号注册 注意,注册完毕后登录账户名和登录密码会通过短信发给你,然后前往 https://mail.qiye.163.com/ 进行登录 如果你不喜欢系统随机生成的密码,可以先点击忘记密码,然后填写账户名,验证绑定的手机号后即可重置密码 登陆进去后大概是这样 如果你不喜欢你的账户名,比如我的就是 erchashush @acofork.freeqiye.com,这个erchashush其实是可以更改的 在组织机构管理中点击账号管理,选择新建账号 然后写一个你想要的别名。绑定手机填你的,因为第一次登录需要验证码验证,如果填错了直接删除即可 然后我们需要给这个新账号提权,如果你想用superadmin登录后台的话 接着右上角退出登录,然后使用新创建的管理员账户登录 ...

March 11, 2025 · 1 min · 76 words