当前位置: 首页 > article >正文

ChatGPT-API-Scanner:从密钥泄露扫描工具看代码安全与自动化检测

1. 项目概述与核心思路拆解最近在安全研究领域一个名为 ChatGPT-API-Scanner 的工具引起了我的注意。简单来说这是一个专门用于在 GitHub 上扫描泄露的 OpenAI API 密钥的自动化脚本。它的存在与其说是一个“攻击工具”不如说是一面“警示镜”清晰地映照出开发者在代码安全实践上的疏忽。我自己在管理团队项目和审查开源代码时也时常为这类无意的密钥泄露感到头疼。这个项目正好提供了一个绝佳的研究样本让我们能深入理解密钥泄露的常见模式、自动化检测的原理以及最重要的——如何从根本上避免这类问题。这个工具的核心价值在于其“主动发现”能力。它模拟了潜在攻击者的行为通过自动化爬虫技术在公开的代码仓库中搜寻那些本不该出现的敏感凭证。对于安全研究人员、企业安全团队乃至个人开发者而言理解其工作原理能帮助我们更好地构建防御策略检查自身项目是否存在类似风险。它不适合也绝不能用于非法获取他人资源但其技术实现本身对于提升我们的安全意识和防护水平具有很高的学习和参考价值。接下来我将从工具的设计思路、技术实现细节、实操部署过程以及围绕API密钥安全的最佳实践进行一次全面的拆解。无论你是对Python自动化感兴趣还是关心代码安全相信都能从中获得启发。2. 核心组件与技术选型解析2.1 为什么选择 Selenium 而非官方 API项目文档的FAQ里第一个问题就直指核心为什么用Selenium这种浏览器自动化工具而不是更“正统”的GitHub Search API这背后有两个关键的技术原因。首先是搜索能力的限制。GitHub的官方搜索API功能相对基础它支持的是关键词匹配但不支持正则表达式Regex搜索。而寻找API密钥这类具有特定模式例如以sk-开头的一长串字符的字符串正则表达式是最精准、最高效的武器。通过编写如sk-[a-zA-Z0-9]{48}这样的正则模式我们可以几乎无遗漏地匹配OpenAI API密钥的格式。Web端搜索虽然对普通用户隐藏了正则功能但其底层引擎是支持的通过Selenium操控浏览器我们就能间接利用这个强大的搜索能力。其次是绕过反爬策略与模拟真人行为。直接调用API虽然速度快但容易触发频率限制Rate Limit且请求头等信息更容易被服务器识别为机器人。Selenium驱动一个真实的Chrome浏览器所有的网络请求、Cookie管理、页面渲染都与真人操作无异这极大地降低了被GitHub风控系统拦截的概率。当然代价就是速度会慢一些资源消耗也更大但这在“获取最佳搜索结果”这个首要目标面前是可以接受的折中。注意使用Selenium进行自动化爬取必须遵守目标网站此处是GitHub的robots.txt协议和服务条款。高频率、大规模的爬取行为不仅不道德也可能导致你的IP甚至GitHub账户被封禁。此工具的设计应仅限于小范围、低频次的安全研究用途。2.2 数据库设计为什么用 SQLite工具将扫描结果存储在github.db这个SQLite数据库中。这是一个非常务实的选择。SQLite是一个无服务器、零配置的进程内数据库整个数据库就是一个.db文件无需安装任何额外的数据库服务如MySQL或PostgreSQL。这对于一个轻量级的、单机运行的Python脚本来说简直是绝配。它简化了部署用户克隆项目后就能直接运行没有外部依赖。从数据表设计来看它至少会包含以下关键字段api_key密钥本身、source_repo发现该密钥的仓库URL、found_time发现时间、status密钥状态如有效、无效、已吊销。status字段尤为重要因为扫描到的密钥可能已经过期或被所有者主动撤销工具后续可以调用OpenAI的验证接口来更新这个状态避免研究者使用无效密钥。2.3 依赖管理uv 的现代 Python 工作流项目没有使用传统的piprequirements.txt而是采用了新兴的uv包管理器和pyproject.toml配置。这是一个值得称赞的现代实践。uv由 Astral 公司也是 Ruff 的创造者开发用 Rust 编写速度极快并且能自动处理 Python 版本通过.python-version文件。uv sync命令相当于pip install但它更智能、更快速并且能创建可复现的依赖环境。pyproject.toml是 Python 社区推崇的新一代项目配置标准它统一了打包、依赖管理和工具配置。在这个文件里不仅定义了项目依赖还可以配置代码格式化如black、代码检查如ruff、pylint等开发工具。通过uv sync --all-groups可以一键安装所有开发依赖这对于保障代码质量和团队协作一致性非常有帮助。采用这套工具链体现了项目维护者对开发体验和工程规范的前沿关注。3. 详细实操部署与运行指南3.1 环境准备与依赖安装在开始运行扫描器之前我们需要一个干净、可复现的环境。以下步骤在 macOS、Windows含WSL2和主流Linux发行版上均测试通过。第一步安装系统级依赖Google Chrome确保系统已安装 Chrome 浏览器。Selenium 需要它作为驱动。你可以从官网下载安装。uv这是项目的Python包管理器。打开终端执行以下命令一键安装以类Unix系统为例curl -LsSf https://astral.sh/uv/install.sh | sh安装完成后重启终端或执行source ~/.bashrc或对应shell的配置文件使uv命令生效。在Windows上如果使用PowerShell也有对应的安装脚本。第二步获取项目代码在终端中选择一个合适的工作目录克隆仓库并进入git clone https://github.com/Junyi-99/ChatGPT-API-Scanner.git cd ChatGPT-API-Scanner此时你会看到项目目录结构核心是main.py以及pyproject.toml、uv.lock等配置文件。第三步同步项目依赖这是最关键的一步uv会根据配置文件自动创建虚拟环境并安装所有依赖uv sync这个命令会读取.python-version文件自动下载并配置指定版本的Python如果本地没有。根据pyproject.toml和uv.lock解析所有生产依赖如selenium, requests, regex等并安装到项目独立的虚拟环境中。所有依赖都被隔离在这个项目内不会污染你的系统Python环境。如果你计划阅读或修改代码建议安装开发工具组以便进行代码检查和格式化uv sync --all-groups3.2 首次运行与身份认证完成安装后直接运行主脚本uv run main.pyuv run命令会自动激活项目对应的虚拟环境并在其中执行main.py。首次运行的认证流程脚本启动后Selenium 会自动打开一个新的 Chrome 浏览器窗口。浏览器会导航到 GitHub 的登录页面。这里需要你手动输入你的 GitHub 账号和密码进行登录。登录成功后浏览器窗口可能会保持打开状态脚本将在后台控制它进行搜索操作。重要提示这里需要使用你自己的 GitHub 账号。我强烈建议不要使用你的主账号或关联了重要资源的账号。可以专门注册一个用于安全测试的“小号”。因为自动化脚本的行为可能被 GitHub 视为异常存在一定的风险。登录后请务必注意不要进行任何手动操作以免干扰脚本运行。3.3 高级参数与定制化扫描工具提供了一些命令行参数让你可以更灵活地控制扫描行为。理解这些参数能帮你进行更有针对性的研究。从指定迭代开始 (--from-iter)扫描过程是分“轮次”或“迭代”进行的每一轮可能对应一组特定的搜索关键词和语言组合。如果脚本意外中断你可以使用这个参数从断点恢复避免重复劳动。uv run main.py --from-iter 100仅检查数据库中已有密钥的状态 (-ceko)这个模式不会进行新的 GitHub 搜索而是读取github.db中已存储的 API 密钥逐个调用 OpenAI 的验证接口更新它们的status字段例如从unknown更新为valid或invalid。这对于定期清理数据库、确认密钥有效性非常有用。uv run main.py --check-existed-keys-only自定义搜索关键词与编程语言 (-k,-l)这是最强大的定制功能。默认的搜索列表可能比较宽泛。你可以根据研究重点缩小或调整搜索范围。-k或--keywords: 指定搜索关键词列表。例如你怀疑某些密钥可能藏在特定的配置变量名里。-l或--languages: 指定在哪种编程语言的代码中进行搜索。这利用了GitHub的高级搜索语法language:XXX。示例假设你想专注于在 Python 和 JavaScript 项目中寻找与“openai”和“api key”相关的泄露。uv run main.py -k “openai” “api key” “OPENAI_API_KEY” -l python javascript执行后工具会组合这些参数生成如openai language:python、“api key” language:javascript等搜索查询进行更有针对性的扫描。调试模式 (--debug)当脚本运行出现异常或结果不符合预期时可以开启调试模式。这会输出更详细的日志信息包括Selenium执行的每一步、网络请求和响应等便于定位问题。uv run main.py --debug4. 结果分析与数据管理4.1 解读扫描结果数据库脚本运行后会在项目根目录生成或更新github.db文件。你可以使用任何 SQLite 浏览器如 DB Browser for SQLite 或命令行工具来查看它。通过命令行查看的基本步骤# 进入 sqlite3 交互环境 sqlite3 github.db # 查看所有表 .tables # 假设主表名为 ‘found_keys’查看其结构 .schema found_keys # 查看前10条记录 SELECT * FROM found_keys LIMIT 10; # 退出 .quit典型的表结构可能包含以下字段字段名类型说明idINTEGER自增主键api_keyTEXT扫描到的API密钥字符串source_urlTEXT发现该密钥的GitHub文件或代码片段的URLrepo_nameTEXT所属仓库名称file_pathTEXT在仓库中的文件路径line_numberINTEGER在文件中的行号如果可获取statusTEXT密钥状态unknown初始、valid有效、invalid无效、revoked已吊销last_checkedTIMESTAMP最后一次验证状态的时间found_atTIMESTAMP首次发现的时间4.2 密钥有效性验证与状态更新扫描到的密钥只是“字符串”不代表它有效。status字段为unknown的记录需要进一步验证。工具可能内置或你可以自行编写一个验证脚本。验证原理是调用 OpenAI API 的一个简单、低消耗的端点例如列出模型GET https://api.openai.com/v1/models或进行一个极小的补全请求。关键是要设置一个很低的max_tokens和超时时间避免消耗他人额度尽管密钥已泄露但伦理上仍应最小化影响。一个简单的验证思路伪代码import requests import sqlite3 def check_key_status(api_key): headers {“Authorization”: f“Bearer {api_key}”} try: # 使用一个轻量级请求例如获取模型列表 resp requests.get(“https://api.openai.com/v1/models”, headersheaders, timeout5) if resp.status_code 200: return “valid” elif resp.status_code 401: # 认证失败 return “invalid” else: return “error” except requests.exceptions.RequestException: return “error” # 连接数据库更新状态 conn sqlite3.connect(‘github.db’) cursor conn.cursor() cursor.execute(“SELECT id, api_key FROM found_keys WHERE status ‘unknown’“) for key_id, api_key in cursor.fetchall(): new_status check_key_status(api_key) cursor.execute(“UPDATE found_keys SET status ?, last_checked datetime(‘now’) WHERE id ?”, (new_status, key_id)) conn.commit() conn.close()运行--check-existed-keys-only模式时工具内部就是在执行类似的过程。4.3 数据伦理与后续处理当你手中有了一份包含潜在有效API密钥的列表时必须严肃对待数据伦理。绝不使用这些密钥属于他人财产使用它们等同于盗窃服务和资源是明确违反OpenAI服务条款和可能涉及法律的行为。负责任披露更恰当的做法是进行“负责任披露”。你可以尝试联系该仓库的所有者通过GitHub Issue或邮箱礼貌地告知其代码中可能存在API密钥泄露建议其立即撤销旧密钥并生成新密钥。注意沟通方式避免被误认为是威胁或钓鱼。清理数据用于研究后应及时、安全地删除本地数据库文件。切勿公开分享或传播这些敏感数据。5. 深度防御如何避免成为被扫描的目标研究这个工具的最大意义在于反向思考我们如何确保自己的项目不会出现在这样的扫描结果里以下是我总结的、经过实践检验的密钥管理最佳实践。5.1 绝对禁止将密钥硬编码在代码中这是最原始也是最危险的错误。无论你的仓库是公开还是私有都不要这样做。错误示例在config.py或app.js中直接写API_KEY “sk-...”。风险一旦代码被提交到版本控制系统如Git即使后来删除历史记录中仍然存在。如果仓库被意外设为公开或内部成员泄露密钥即刻暴露。5.2 使用环境变量管理密钥这是最基本、最通用的安全实践。将密钥存储在操作系统的环境变量中代码运行时从环境变量读取。# Python 示例 import os api_key os.environ.get(“OPENAI_API_KEY”) if not api_key: raise ValueError(“请设置 OPENAI_API_KEY 环境变量”)如何设置环境变量本地开发在项目根目录创建.env文件写入OPENAI_API_KEYsk-...并使用python-dotenv库在程序启动时加载。切记将.env加入.gitignore文件生产环境在服务器或云平台如AWS, GCP, Vercel, Railway的控制面板中配置环境变量。CI/CD管道在GitHub Actions、GitLab CI等工具的“Secrets”设置中配置。5.3 利用密钥管理服务对于企业级应用或拥有大量敏感信息的项目应使用专业的密钥管理服务云服务商提供AWS Secrets Manager, Azure Key Vault, Google Cloud Secret Manager。第三方服务HashiCorp Vault, Doppler, 1Password Secrets Automation。 这些服务提供加密存储、细粒度访问控制、自动轮换、审计日志等功能安全性远高于环境变量。5.4 启用并善用 Git 的防护机制GitHub 等平台提供的安全功能是你的第一道防线。GitHub Push Protection正如项目文档警告的GitHub 已为所有新公开仓库默认启用推送保护。它会实时扫描推送内容中的已知秘密模式包括OpenAI API密钥并在检测到时阻止推送。你应在所有仓库中强制启用此功能。GitHub Secret ScanningGitHub 会主动扫描仓库中的所有内容包括历史提交与合作伙伴如OpenAI的秘密模式数据库匹配。如果发现泄露GitHub 会通知对应的服务提供商如OpenAI由他们通知并协助开发者撤销密钥。作为仓库所有者你可以在设置中启用此功能。.gitignore文件这是本地防护。确保将包含敏感信息的文件如.env,config.ini,*.pem,*.key加入.gitignore。Pre-commit Hooks在本地提交前自动检查。可以使用pre-commit框架集成像detect-secrets、truffleHog这样的工具在代码进入暂存区前就发现潜在泄露。5.5 密钥使用的最小权限与定期轮换最小权限原则不要使用权限过大的密钥。OpenAI 允许你创建仅具有特定权限如只读、仅限某些模型的API密钥。为不同的应用场景创建不同的密钥。定期轮换像更换密码一样定期如每季度撤销旧密钥并生成新密钥。即使密钥不慎泄露其有效窗口也很有限。监控与告警关注OpenAI账户的使用情况仪表板。设置用量告警如果发现异常调用峰值立即检查是否泄露。6. 常见问题排查与进阶技巧6.1 运行时报错与解决方案在实际运行中你可能会遇到一些问题。这里记录几个我踩过的坑和解决方法。问题1ChromeDriver版本不匹配错误selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version ...原因与解决Selenium 需要与已安装的 Chrome 浏览器版本精确匹配的ChromeDriver。项目可能通过webdriver-manager等库自动管理但有时会失败。方案A推荐确保uv sync已安装所有依赖。项目应该配置了自动下载正确驱动。方案B手动查看你的Chrome版本浏览器地址栏输入chrome://version/然后到 ChromeDriver官网 下载对应版本的驱动放在系统PATH或项目目录下。问题2GitHub 登录后脚本卡住或报错原因登录流程可能触发了二次验证2FA或者登录后的页面跳转与脚本预期不符。解决确保用于测试的GitHub账号关闭了双重认证以简化自动化流程。如果必须使用2FA账号可能需要修改脚本处理TOTP验证码这大大增加了复杂度。问题3扫描速度非常慢且很快被限制原因GitHub 对Web搜索有严格的频率限制和反爬机制。即使使用Selenium模拟真人过快、过多的请求也会被识别。解决这是设计使然。工具内部应该已经设置了合理的延迟如time.sleep(random.uniform(2, 5))在请求之间。不要试图通过减少延迟或增加线程来提速这几乎必然导致IP被临时封禁。将工具视为一个低速、长期的监控工具而非高速抓取器。6.2 扩展工具功能的想法基于这个项目的基础框架你可以将其扩展为更通用的内部安全审计工具。多平台扫描除了GitHub是否可以适配 GitLab、Bitbucket 等其它代码托管平台它们的搜索接口和页面结构不同需要单独编写适配模块。更多秘密类型除了OpenAI API密钥还可以定义正则模式来扫描 AWS Access Key、Google API Key、数据库连接字符串、各种服务的令牌等。可以参考 GitHub 的 secret patterns database 或 TruffleHog 的规则 。集成到CI/CD将扫描逻辑封装成一个脚本或Docker镜像集成到你的CI/CD管道中。在每次代码推送或合并请求时自动扫描变更内容防止新的秘密被提交。这比事后扫描更有预防性。结果通知扫描到潜在泄露后除了存入数据库是否可以自动发送邮件或Slack通知给指定的安全负责人6.3 关于“免费GPT”和密钥安全的思考项目关键词中提到了“freegpt”。这恰恰点出了一个核心矛盾很多人寻找泄露的API密钥是希望“免费”使用GPT服务。但这种行为不合法也不道德侵犯了密钥所有者和OpenAI的权益。不可靠泄露的密钥可能随时被撤销导致你的应用中断。高风险你使用的密钥可能被原所有者监控你的所有请求内容和结果都可能被他人窥视毫无隐私和安全可言。真正可持续的“免费”或低成本使用方式是合理利用官方提供的免费额度如新用户赠送、参与研究项目获取资助或者使用按量付费的API其成本在合理使用下并不高。依赖泄露的密钥无异于在沙滩上建城堡。回过头来看ChatGPT-API-Scanner 这个项目其技术实现简洁而有效清晰地展示了自动化信息收集的能力。而它最大的价值是给所有开发者上了一堂生动的安全教育课在数字世界里任何写入代码的明文秘密都如同写在公共场所的日记。保护它们不是可选项而是开发生命周期中必须贯穿始终的底线思维。

相关文章:

ChatGPT-API-Scanner:从密钥泄露扫描工具看代码安全与自动化检测

1. 项目概述与核心思路拆解 最近在安全研究领域,一个名为 ChatGPT-API-Scanner 的工具引起了我的注意。简单来说,这是一个专门用于在 GitHub 上扫描泄露的 OpenAI API 密钥的自动化脚本。它的存在,与其说是一个“攻击工具”,不如…...

aghub:GitHub开发者效率工具集,批量克隆、仓库管理与自动化实战

1. 项目概述:一个为开发者打造的“瑞士军刀”式工具集如果你是一名开发者,尤其是经常和开源项目、命令行工具打交道的后端或运维工程师,那么你一定经历过这样的场景:为了完成一个看似简单的任务,比如批量克隆某个组织下…...

动态多模态潜在空间推理框架DMLR设计与实现

1. 动态多模态潜在空间推理框架DMLR解析最近在整理多模态学习领域的算法框架时,发现了一个很有意思的工作——动态多模态潜在空间推理框架(Dynamic Multi-modal Latent-space Reasoning,简称DMLR)。这个框架在跨模态对齐和推理任务…...

Windows 一键部署 OpenClaw 教程|5 分钟启用本地 AI 智能体,简化全环节配置

2026 年开源圈爆火的「数字员工」OpenClaw(昵称小龙虾),GitHub 星标狂揽 28 万 ,凭「本地运行 零代码操作 自动干活」的核心优势圈粉无数!很多人误以为它是普通聊天 AI,实则是能真正操控电脑的自动化神器…...

Edge 浏览器保存密码真的安全吗?一次讲清“明文内存”争议、真实风险和正确防护

一、先说结论:这不是“Edge 一无是处”,而是浏览器密码管理器的老问题被放大了 这次争议之所以引起关注,不是因为“Edge 把密码明文存在硬盘上”。这点要先纠正。 Microsoft Edge 官方文档明确说明:Edge 保存的密码在磁盘上会加密…...

苹果签名

...

揭秘书匠策AI:毕业论文写作的“智能导航员”,让学术之路畅通无阻!

在学术的浩瀚海洋中,毕业论文无疑是每位学子扬帆远航前必须跨越的一道重要关卡。它不仅是对你多年学习成果的总结,更是开启未来职业生涯或深造之路的钥匙。然而,面对繁重的文献调研、复杂的逻辑构建、以及严格的格式要求,许多学子…...

创业团队如何利用Taotoken快速验证多个大模型产品创意

创业团队如何利用Taotoken快速验证多个大模型产品创意 1. 统一接入降低技术成本 对于资源有限的创业团队而言,直接对接多个大模型厂商的API往往面临高昂的技术成本。每家厂商的认证机制、计费方式和接口规范各不相同,开发适配层需要投入大量时间。Taot…...

PLC、智能仪表通过智能网关转换为OPC UA服务端(含客户端测试过程)

埃和智能网关支持各种PLC设备、智能仪表通过HTTP、MQTT协议JSON格式对接MES等各种系统平台,也可以对接MySQL、Oracle等各种SQL数据库,还可以将设备数据转为OPC UA服务端的数据标签,支持多客户端数据读写。数据对接SQLServer同时转为OPCUA标签…...

CST微波工作室新手避坑指南:从Brick建模到材料库调用的5个实用技巧

CST微波工作室新手避坑指南:从Brick建模到材料库调用的5个实用技巧 刚接触CST微波工作室的工程师或学生,往往会被其强大的功能和复杂的界面所震撼。作为一款专业的电磁场仿真软件,CST在微波器件设计、天线分析等领域有着广泛应用。但正是由于…...

一个数据包让服务器蓝屏?MS12-020漏洞实战,微软补丁救场

摘要: 远程桌面协议(RDP)是 Windows 服务器的常见入口,但 2012 年曝出的 MS12‑020 漏洞,允许攻击者仅发送一个恶意数据包,便使未打补丁的系统瞬间蓝屏崩溃(拒绝服务)。本文基于真实…...

3分钟配置Spyder深色模式:Python开发者的护眼终极指南

3分钟配置Spyder深色模式:Python开发者的护眼终极指南 【免费下载链接】spyder Official repository for Spyder - The Scientific Python Development Environment 项目地址: https://gitcode.com/gh_mirrors/sp/spyder Spyder作为Python科学计算的强大IDE&…...

从Kryo核心到Symphony系统:探秘移动SoC异构计算与能效协同设计

1. 从“胶水”到“指挥家”:初代Kryo核心与Symphony系统管理器的设计哲学2015年,当高通选择在Snapdragon 820上回归自研CPU核心,推出首代Kryo时,整个移动芯片行业的叙事正在发生微妙转变。彼时,智能手机的性能竞赛已从…...

解决SEGGER_RTT_printf无法打印浮点数问题

/* 在 SEGGER_RTT_vprintf 函数的 switch 语句中添加 */ case f: case F: {float fv (float)va_arg(*pParamList, double); // 注意:float 会提升为 doubleint integer (int)fv;int decimal;// 打印整数部分_PrintInt(&BufferDesc, integer, 10, 0, 0, 0);_S…...

从单Agent协作到多Agent并行:收藏这份AI编程协作新范式指南,小白也能轻松掌握大模型

随着AI编程占比提升,传统单Agent协作模式已无法满足高效需求。本文探讨了AI编程协作范式的转移,提出人应与多个Agent并行协作,并通过关键节点Review和验收整合结果。作者设计开发了Mexus工具,该工具提供WebUI交互终端,…...

Snap.Hutao:免费高效的原神工具箱完全使用指南

Snap.Hutao:免费高效的原神工具箱完全使用指南 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …...

使用技巧(四):还在手写Hooks脚本?五个现成插件装好就生效,拦截删文件、护密钥、强制测试

别再手动格式化!Claude Code 五个 Hooks 插件装好就生效,拦截删文件、护密钥、强制测试 Windows/macOS/Linux Claude Code 2.x 2026-05-08 一、Claude 又没跑测试就提交了? 你有没有遇到过这些场景: Claude 写完代码&#xff…...

高手进阶(三):写完代码该做什么?代码审查别再只用/review:Claude Code三档审查体系,<1%误报率照抄配置

代码审查 2026——从 /review 到 /ultrareview 的完整体系 Windows 10/11 Claude Code v2.1.x (2026-05) DeepSeek V4 Pro / Anthropic API 🟡 中度时效 最后更新 2026-05-08 一、这篇教程解决什么问题 一句话定位:代码审查是日常最高频的开发场景之…...

25_通过参考视频快速生成提示词——高效复刻精彩分镜

文章目录 一、新建项目并导入参考视频 二、解析视频,自动拆解分镜列表 三、调用 Gemini Pro 一键生成全套提示词 四、用即梦验证人物形象一致性 五、生成分镜图与动画 六、核心经验总结 我们来学习一种高效的创作方法:通过分析一段已有的精彩影片,借助Topnow AI平台自动拆解…...

DDD难落地?就让AI干吧!

DDD 这些年一直有点尴尬。 知道它有价值的人不少,真正愿意照着它的方式把需求、模型、结构和代码一步一步做下来的人并不多。最常见的印象也差不多:概念多、步骤多、层次多,看起来像是把原本能直接写出来的业务系统,又绕了一圈。…...

人工智能、机器学习、深度学习及神经网络基础

第一部分:课程导入(2分钟)我们用45分钟从零入门,彻底搞懂人工智能、机器学习、深度学习到底是什么、有什么区别,同时了解现在AI都用在哪些地方、开发AI常用什么工具,最后弄懂所有AI技术最底层的核心原理——…...

28V直流电源直线通电飞机起动概述

一、工作原理概述该电源采用“‌三相AC-DC-DC‌”三级变换架构,实现高效率、高稳定性的电能转换:‌输入整流与PFC校正‌ 输入‌三相AC380V10%‌ 交流电经EMI滤波后,进入‌PFC(功率因数校正)整流模块‌,转换…...

香港品牌研究院发布:2026年GEO行业发展白皮书

2026年GEO行业发展白皮书 ——从粗放运营到AI品牌基建高质量发展 **文件编号:**HKIBR-2026-GEO-001 **版本编号:**V1.0 **发布时间:**2026年4月 **研究发布|学术监制:**香港品牌研究院HongKongBrandInstitute **…...

AI生成的前端界面,为什么总是不够好看?

为什么 AI 生成的界面总是"差那么一口气"?用 AI 写前端,你有没有遇到过这种情况——代码跑起来没问题,功能都有,但打开一看,总感觉哪里不对劲。间距挤、排版乱、视觉层次平、配色说不上哪里丑但就是丑……和…...

免费去图片水印App排行榜:2026实测推荐,一键去除水印哪款好用?

图片被水印挡住,想用却下不了手——这个问题相信不少人都遇到过。不管是从小红书、抖音保存下来的素材图,还是电商产品图、自媒体封面,只要带了平台水印或版权标识,用起来就很别扭。 市面上声称免费的去水印工具多如牛毛&#xff…...

成功实现首个pytorch编写的softmax模型并调优的记录

第一次编写softmax模型,测试通过跟随经典的深度学习“Dive-into-DL-Pytorch”,编写softmax模型,使用FashionMNIST数据集(6万张训练数据集1万张测试数据集,含10个类别的预测),普通办公电脑cpu&am…...

安达发|食品业数字化转型:APS计划排产排程排单软件破解生产难题

安达发APS高级生产计划智能排产排程自动排单软件系统推荐_MES 在当今快消品市场竞争日益激烈的背景下,食品行业正面临着前所未有的挑战——原材料保质期短、订单波动频繁、生产工艺复杂、多品种小批量生产常态化。传统的手工排产或Excel表格管理早已难以应对这些复…...

我想拍桌子,作为 Java 后端程序员,老板限我一天把 RAG 升级成 Agent

大家好,我是秃头哥,一名 Java 后端程序员,每天开心撸 CRUD、调 RAG 问答、搭 Spring BootElasticsearch 知识库,本来安安稳稳过日子。 然后,今天突变… 老板直接把我叫到工位,甩下死命令: “咱…...

STM32看门狗实战:用CubeMX和HAL库快速配置独立看门狗IWDG(附防误触发技巧)

STM32看门狗实战:用CubeMX和HAL库快速配置独立看门狗IWDG(附防误触发技巧) 在嵌入式系统开发中,系统稳定性是至关重要的考量因素。想象一下,你精心设计的智能家居控制器在用户家中运行数月后突然"卡死"&…...

ARM开发板触摸屏移植全记录:Qt应用依赖的tslib-1.4交叉编译与配置详解

ARM开发板触摸屏移植实战:从tslib交叉编译到Qt应用集成 触摸屏作为嵌入式设备最自然的人机交互方式,其性能直接影响用户体验。但在实际项目中,工程师常会遇到触摸坐标漂移、点击抖动、响应延迟等问题。本文将深入探讨如何通过tslib-1.4的定制…...