[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-aschmelyun--subvert":3,"tool-aschmelyun--subvert":64},[4,17,25,39,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":10,"last_commit_at":23,"category_tags":24,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":26,"name":27,"github_repo":28,"description_zh":29,"stars":30,"difficulty_score":10,"last_commit_at":31,"category_tags":32,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[33,34,35,36,14,37,15,13,38],"图像","数据工具","视频","插件","其他","音频",{"id":40,"name":41,"github_repo":42,"description_zh":43,"stars":44,"difficulty_score":45,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[14,33,13,15,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":45,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[15,33,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":45,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70612,"2026-04-05T11:12:22",[15,14,13,36],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":75,"owner_website":82,"owner_url":83,"languages":84,"stars":113,"forks":114,"last_commit_at":115,"license":116,"difficulty_score":10,"env_os":117,"env_gpu":118,"env_ram":119,"env_deps":120,"category_tags":128,"github_topics":129,"view_count":136,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":137,"updated_at":138,"faqs":139,"releases":169},2079,"aschmelyun\u002Fsubvert","subvert","Generate subtitles, summaries, and chapters from videos in seconds","Subvert 是一款基于 OpenAI 技术的开源视频处理工具，能在数秒内自动为视频生成字幕、章节标记及内容摘要。它主要解决了手动制作视频元数据耗时费力的痛点，让用户无需逐字听写或反复观看，即可快速获得结构化的视频信息。\n\n该工具特别适合需要高效处理视频内容的创作者、教育工作者以及具备基础技术能力的开发者。对于普通用户，只要本地安装了 Docker 并拥有 OpenAI API 密钥，只需一行命令即可部署使用；开发者则可以直接从源码运行或将其集成到自有服务中。\n\nSubvert 的技术亮点在于其巧妙的双模型协作流程：首先利用 FFMpeg 提取音频，调用 OpenAI 的 Whisper 模型进行高精度语音转文字（生成 VTT 格式字幕）；随后将转录文本送入 ChatGPT 模型，智能提炼出符合 YouTube 描述风格的简短摘要，并按用户指定长度划分视频章节。目前项目仍处于积极迭代阶段，以单容器 Docker 镜像形式发布，部署轻便灵活，是提升视频后期效率的实用助手。","# Subvert\n\n![Docker Semver](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fv\u002Faschmelyun\u002Fsubvert?style=flat-square)\n![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Faschmelyun\u002Fsubvert?label=pulls&style=flat-square)\n\nGenerate subtitles, chapters, and summaries of videos in seconds with the help of OpenAI.\n\n🚧 This is very much a work-in-progress, please [create issues](https:\u002F\u002Fgithub.com\u002Faschmelyun\u002Fsubvert\u002Fissues\u002Fnew) for bugs if they appear 🚧\n\n![Demo gif of Subvert converting a video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faschmelyun_subvert_readme_2560523851bb.gif)\n\n## Getting started\n\nYou'll need:\n\n- [Docker installed](https:\u002F\u002Fdocs.docker.com\u002Fget-docker\u002F) on your local machine\n- An [OpenAI API key](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys)\n\nSubvert is self-contained in a single Docker image and can be started with a one-line command:\n\n```\ndocker run -it -p 80:8080 -e OPENAI_API_KEY=sk-123abc aschmelyun\u002Fsubvert\n```\n\nThis will boot up a server running the application and make it available to your machine at http:\u002F\u002Flocalhost.\n\n## How it works\n\nAfter selecting a video file to process, you have the option of choosing whether you also want to generate chapters and a summary.\n\nYour video is sent to an API where the audio is extracted from it using FFMpeg, and then sent to **OpenAI's Whisper model** for transcription into the common vtt format.\n\nIf you chose to select chapters or a summary, that transcript is then sent to a **ChatGPT model** for processing into concise chapters of the length you wanted, and a brief summary that would fit in something like a YouTube description.\n\n## Configuration\n\nYou can adjust a few parameters in the container by passing in [environment variables](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Freference\u002Fcommandline\u002Frun\u002F#env) with your command using additional `-e` flags. Here are the current ones you can add:\n\n- `OPENAI_API_KEY` **(required)** - Sets the key responsible for communication with OpenAI's APIs. No default.\n- `UPLOAD_MAX_FILESIZE` - Changes PHP's UPLOAD_MAX_FILESIZE setting. Default: `256M`\n- `MEMORY_LIMIT` - Changes PHP's MEMORY_LIMIT setting. Default: `512M`\n\n## Starting from source\n\nAlternative, if you have **PHP 8.1+** and **npm** installed on your local machine, you can boot the application up directly from the source code instead.\n\nFirst, check out this repo to your desired location. Then, navigate to the `src` directory and run:\n\n```\n.\u002Fstartup.sh\n```\n\nAlternatively, you can run the commands inside of the `startup.sh` script individually for the same result.\n\n## Deploying\n\nBecause this project is contained in a single Dockerfile, it can be deployed immediately to any server provisioned with Docker. Alternatively, the Subvert Docker image can be ran on cloud instances via AWS, Azure, GCP, Fly.io, etc.\n\n> Note: This image currently only exposes the insecure :80 http port.\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md)\n","# Subvert\n\n![Docker Semver](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fv\u002Faschmelyun\u002Fsubvert?style=flat-square)\n![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Faschmelyun\u002Fsubvert?label=pulls&style=flat-square)\n\n借助 OpenAI，可在几秒钟内为视频生成字幕、章节和摘要。\n\n🚧 该项目目前仍处于开发阶段，如有问题请 [提交 Issue](https:\u002F\u002Fgithub.com\u002Faschmelyun\u002Fsubvert\u002Fissues\u002Fnew) 🚧\n\n![Subvert 转换视频的演示 GIF](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faschmelyun_subvert_readme_2560523851bb.gif)\n\n## 快速开始\n\n你需要：\n\n- 在本地机器上安装 [Docker](https:\u002F\u002Fdocs.docker.com\u002Fget-docker\u002F)\n- 一个 [OpenAI API 密钥](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys)\n\nSubvert 封装在一个独立的 Docker 镜像中，只需一行命令即可启动：\n\n```\ndocker run -it -p 80:8080 -e OPENAI_API_KEY=sk-123abc aschmelyun\u002Fsubvert\n```\n\n这将启动一个运行该应用的服务器，并使其可通过 http:\u002F\u002Flocalhost 在你的机器上访问。\n\n## 工作原理\n\n选择要处理的视频文件后，你可以决定是否同时生成章节和摘要。\n\n你的视频会被上传到一个 API，使用 FFmpeg 提取音频，然后发送到 **OpenAI 的 Whisper 模型** 进行转录，输出为常见的 vtt 格式。\n\n如果你选择了生成章节或摘要，该转录文本将进一步发送到 **ChatGPT 模型**，以你指定的长度生成简洁的章节，并生成一段适合 YouTube 描述的简短摘要。\n\n## 配置\n\n你可以通过在命令中添加额外的 `-e` 标志来传递 [环境变量](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Freference\u002Fcommandline\u002Frun\u002F#env)，从而调整容器中的几个参数。当前支持的环境变量如下：\n\n- `OPENAI_API_KEY` **(必需)** - 设置用于与 OpenAI API 通信的密钥。无默认值。\n- `UPLOAD_MAX_FILESIZE` - 修改 PHP 的 UPLOAD_MAX_FILESIZE 设置。默认值：`256M`\n- `MEMORY_LIMIT` - 修改 PHP 的 MEMORY_LIMIT 设置。默认值：`512M`\n\n## 从源码启动\n\n如果你的本地机器已安装 **PHP 8.1+** 和 **npm**，也可以直接从源代码启动应用程序。\n\n首先，将此仓库克隆到你希望的位置。然后进入 `src` 目录并运行：\n\n```\n.\u002Fstartup.sh\n```\n\n你也可以单独执行 `startup.sh` 脚本中的每条命令，效果相同。\n\n## 部署\n\n由于该项目包含在一个 Dockerfile 中，因此可以立即部署到任何已预装 Docker 的服务器上。此外，Subvert 的 Docker 镜像也可以在 AWS、Azure、GCP、Fly.io 等云平台上运行。\n\n> 注意：该镜像目前仅暴露不安全的 :80 HTTP 端口。\n\n## 许可证\n\nMIT 许可证 (MIT)。请参阅 [许可证文件](LICENSE.md)","# Subvert 快速上手指南\n\nSubvert 是一个利用 OpenAI 技术，能在数秒内为视频自动生成字幕、章节和摘要的开源工具。\n\n## 环境准备\n\n在开始之前，请确保你的本地机器满足以下条件：\n\n*   **Docker**: 已安装并正在运行（推荐最新稳定版）。\n    *   国内用户可参考 [Docker 官方中文文档](https:\u002F\u002Fdocs.docker.com\u002Fget-docker\u002F) 或使用国内镜像源加速安装。\n*   **OpenAI API Key**: 你需要拥有一个有效的 OpenAI API 密钥以调用 Whisper 和 ChatGPT 模型。\n    *   获取地址：[OpenAI API Keys](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys)\n\n> **注意**：本项目目前处于开发阶段（Work-in-Progress），如遇 Bug 请在 GitHub 仓库提交 Issue。\n\n## 安装步骤\n\nSubvert 被封装在单个 Docker 镜像中，无需复杂配置，只需一行命令即可启动服务。\n\n在终端中执行以下命令（请将 `sk-123abc` 替换为你真实的 OpenAI API Key）：\n\n```bash\ndocker run -it -p 80:8080 -e OPENAI_API_KEY=sk-123abc aschmelyun\u002Fsubvert\n```\n\n**参数说明：**\n*   `-p 80:8080`: 将容器的 8080 端口映射到本地的 80 端口。\n*   `-e OPENAI_API_KEY=...`: 设置必要的环境变量，用于连接 OpenAI 服务。\n\n启动成功后，服务将在本地运行。\n\n## 基本使用\n\n1.  **访问界面**：打开浏览器，访问 `http:\u002F\u002Flocalhost`。\n2.  **上传视频**：在网页界面中选择你要处理的视频文件。\n3.  **选择功能**：勾选是否需要生成“章节（Chapters）”和“摘要（Summary）”。\n4.  **开始处理**：\n    *   系统会自动提取音频并使用 **OpenAI Whisper** 模型生成标准 `.vtt` 格式字幕。\n    *   若选择了章节或摘要，转录文本将进一步发送给 **ChatGPT** 模型，生成精简的章节标记和适合 YouTube 描述的简短摘要。\n5.  **下载结果**：处理完成后，下载生成的字幕文件及相关元数据。\n\n---\n\n### 进阶配置（可选）\n\n如果需要调整文件大小限制或内存限制，可以通过添加 `-e` 参数来覆盖默认值：\n\n```bash\ndocker run -it -p 80:8080 \\\n  -e OPENAI_API_KEY=sk-123abc \\\n  -e UPLOAD_MAX_FILESIZE=512M \\\n  -e MEMORY_LIMIT=1G \\\n  aschmelyun\u002Fsubvert\n```\n\n*   `UPLOAD_MAX_FILESIZE`: 修改 PHP 上传文件大小限制（默认 `256M`）。\n*   `MEMORY_LIMIT`: 修改 PHP 内存限制（默认 `512M`）。","某教育科技公司的内容运营团队每天需要处理大量讲师录制的长视频课程，以便上传至学习平台供学员观看。\n\n### 没有 subvert 时\n- 人工听写视频字幕耗时极长，一段 1 小时的课程往往需要数小时才能完成逐字稿，严重拖慢上线节奏。\n- 缺乏自动章节划分，学员无法快速定位知识点，只能在进度条上盲目拖拽寻找特定内容。\n- 视频简介和摘要全靠人工撰写，不仅风格难以统一，还容易遗漏核心考点，导致课程点击率偏低。\n- 多语言支持困难，若要生成外语字幕需额外聘请翻译或购买昂贵的专业服务，成本高昂。\n\n### 使用 subvert 后\n- 上传视频后几分钟内即可自动生成高精度字幕（vtt 格式），将原本数小时的工作压缩至秒级，极大提升发布效率。\n- 利用 ChatGPT 模型自动分析转录文本，精准切割出带有时间戳的课程章节，让学员能按需跳转学习。\n- 一键生成简洁有力的课程摘要，直接用于 YouTube 或平台描述栏，显著优化了课程的搜索曝光与吸引力。\n- 基于 Whisper 模型的强大能力，轻松扩展多语言字幕支持，以极低的 API 成本实现课程内容的全球化分发。\n\nsubvert 通过自动化流程将视频后期处理的繁琐工作转化为分钟级的标准化操作，让团队能专注于课程内容本身而非重复劳动。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faschmelyun_subvert_25605238.gif","aschmelyun","Andrew Schmelyun","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Faschmelyun_f35b75a6.jpg","Full-stack developer, passionate about starting side projects and helping others learn.",null,"Port St. Lucie, FL","me@aschmelyun.com","https:\u002F\u002Faschmelyun.com","https:\u002F\u002Fgithub.com\u002Faschmelyun",[85,89,93,97,101,105,109],{"name":86,"color":87,"percentage":88},"PHP","#4F5D95",83.4,{"name":90,"color":91,"percentage":92},"Vue","#41b883",11.2,{"name":94,"color":95,"percentage":96},"Blade","#f7523f",3.2,{"name":98,"color":99,"percentage":100},"Shell","#89e051",1,{"name":102,"color":103,"percentage":104},"JavaScript","#f1e05a",0.7,{"name":106,"color":107,"percentage":108},"Dockerfile","#384d54",0.5,{"name":110,"color":111,"percentage":112},"CSS","#663399",0.1,859,57,"2026-04-01T17:15:39","MIT","Linux, macOS, Windows","未说明","最低 512MB (默认 PHP 内存限制)，推荐视视频文件大小而定",{"notes":121,"python":118,"dependencies":122},"该工具主要基于 Docker 运行，需预先安装 Docker 并配置 OpenAI API 密钥。若从源码运行，需本地安装 PHP 8.1+ 和 npm。音频转录和摘要生成依赖云端 OpenAI 服务（Whisper 和 ChatGPT 模型），而非本地 GPU 推理。默认最大上传文件大小为 256MB，可通过环境变量调整。目前容器仅暴露不安全的 HTTP 80 端口。",[123,124,125,126,127],"Docker","OpenAI API (Whisper & ChatGPT)","FFMpeg","PHP 8.1+","npm",[38,15,35],[130,131,132,133,134,135],"chatgpt","openai","transcription","translation","video-editing","whisper",4,"2026-03-27T02:49:30.150509","2026-04-06T06:53:14.886847",[140,145,150,155,160,165],{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},9467,"如何修改 Docker 镜像中允许上传的最大文件大小？","可以通过在运行 `docker run` 命令时添加 `-e` 标志来传递两个新的环境变量：\n1. `UPLOAD_MAX_FILESIZE`：更改 PHP 的上传大小限制，默认值为 `256M`。\n2. `MEMORY_LIMIT`：更改 PHP 的内存限制，默认值为 `512M`。\n\n示例命令：\n`docker run -e UPLOAD_MAX_FILESIZE=512M -e MEMORY_LIMIT=1G aschmelyun\u002Fsubvert:latest`\n\n请确保先拉取最新镜像：`docker pull aschmelyun\u002Fsubvert:latest`。如果在 docker-compose 中使用，也可以在配置文件中添加这些环境变量。","https:\u002F\u002Fgithub.com\u002Faschmelyun\u002Fsubvert\u002Fissues\u002F3",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},9468,"为什么在反向代理（Nginx）下使用 HTTPS 时 CSS 等资源无法加载？","这是因为资源被硬编码为 HTTP 协议。解决方法是在 Nginx 配置中添加安全策略头以强制升级不安全的请求。\n\n在 Nginx Proxy Manager 的 \"Advanced\" 配置中添加以下代码：\n```\nlocation \u002F {\n    proxy_pass http:\u002F\u002F\u003C你的内部 IP>:\u003C端口>\u002F;\n    proxy_set_header Host $http_host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"Upgrade\";\n    \n    # 关键配置行：\n    add_header 'Content-Security-Policy' 'upgrade-insecure-requests';\n}\n```\n关键是添加 `add_header 'Content-Security-Policy' 'upgrade-insecure-requests';` 这一行。","https:\u002F\u002Fgithub.com\u002Faschmelyun\u002Fsubvert\u002Fissues\u002F15",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},9469,"处理视频时卡在第一步（提取音频）或报错 \"Step 99\"，且控制台没有明显错误，怎么办？","这通常是因为上传的文件过大。OpenAI 的 Whisper API 仅能处理约 25MB 的文件。如果文件超过此限制（例如 1.4GB），会导致处理失败。\n\n解决方案：\n1. 确保已更新到最新的 Docker 镜像 (`aschmelyun\u002Fsubvert:latest`)，新版本会在前端显示更具体的错误信息而不是通用的 \"Step 99\"。\n2. 检查并增加上传大小限制（参考相关 FAQ 设置 `UPLOAD_MAX_FILESIZE`）。\n3. 目前项目正在开发分批处理功能以突破此限制，在此之前请尝试使用较小的视频文件或自行分割视频。","https:\u002F\u002Fgithub.com\u002Faschmelyun\u002Fsubvert\u002Fissues\u002F20",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},9470,"选择特定语言生成字幕时出现数据类型错误（如 \"is not of type 'string'\"），如何解决？","这是一个已知的翻译生成器 Bug，导致 API 返回的数据格式不符合预期。维护者已经修复了该问题。\n\n解决方法：\n请拉取最新的 Docker 镜像并重试：\n`docker pull aschmelyun\u002Fsubvert:latest`\n\n更新后，该错误应不再出现。如果问题依旧，请检查控制台获取新的具体错误信息。","https:\u002F\u002Fgithub.com\u002Faschmelyun\u002Fsubvert\u002Fissues\u002F1",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},9471,"遇到通用错误提示 \"Step 99: There was an error\" 但看不到具体原因，该如何排查？","旧版本的容器镜像会隐藏具体错误只显示通用消息。维护者已发布更新，现在会在前端直接显示实际错误内容。\n\n操作步骤：\n1. 删除当前容器。\n2. 拉取最新镜像：`docker pull aschmelyun\u002Fsubvert:latest`。\n3. 重新运行容器。\n4. 再次尝试操作，此时界面上会显示具体的错误信息，便于进一步排查或提交新的问题报告。","https:\u002F\u002Fgithub.com\u002Faschmelyun\u002Fsubvert\u002Fissues\u002F19",{"id":166,"question_zh":167,"answer_zh":168,"source_url":159},9472,"启用 API 并填写账单详情后，为什么服务仍然需要很长时间才能正常工作？","这是正常现象。根据用户反馈，即使在正确启用 API 并完善所有账单详细信息后，系统可能仍需要大约一个小时的时间才能完全生效并开始正常工作。请耐心等待一段时间后再重试。",[170,175,180,185,190,195,200,205,210,215],{"id":171,"version":172,"summary_zh":173,"released_at":174},106884,"v1.0.9","- Fixes #6, adds volume support for uploaded audio and video files","2023-04-16T19:23:17",{"id":176,"version":177,"summary_zh":178,"released_at":179},106885,"v1.0.8","- Fixes #17, prevents additional OPENAI_API_KEY lines from being written to the .env file","2023-04-16T07:58:39",{"id":181,"version":182,"summary_zh":183,"released_at":184},106886,"v1.0.7","- Fixes #13 by adding max upload filesize to footer and blocking uploads larger than it on the frontend","2023-04-16T06:59:28",{"id":186,"version":187,"summary_zh":188,"released_at":189},106887,"v1.0.6","- Adds better error reporting on the frontend instead of a random \"Step 99\"...","2023-04-15T23:30:04",{"id":191,"version":192,"summary_zh":193,"released_at":194},106888,"v1.0.5","- Adds the ability to upload audio files, which skips the need to perform extraction from video.","2023-04-15T23:06:51",{"id":196,"version":197,"summary_zh":198,"released_at":199},106889,"v1.0.4","- Adds ASSET_URL to .env.example","2023-04-15T22:24:53",{"id":201,"version":202,"summary_zh":203,"released_at":204},106890,"v1.0.3","- Adds SSL support via a `docker-compose.yml` file and nginx proxy in an attempt to fix #8 ","2023-04-15T21:46:47",{"id":206,"version":207,"summary_zh":208,"released_at":209},106891,"v1.0.2","- Fixes #3, provides environment variables to adjust PHP's `UPLOAD_MAX_FILESIZE` and `MEMORY_LIMIT` config settings.","2023-03-31T05:52:52",{"id":211,"version":212,"summary_zh":213,"released_at":214},106892,"v1.0.1","- Fixes #2 by imploding an array of strings to pass to ChatGPT as a single string\r\n- Adds APP_VERSION to display what version of the app is running in the footer","2023-03-31T04:22:27",{"id":216,"version":217,"summary_zh":218,"released_at":219},106893,"v1.0.0","Initial release!","2023-03-28T06:36:52"]