[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-theaiautomators--insights-lm-public":3,"tool-theaiautomators--insights-lm-public":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",150720,2,"2026-04-11T11:33:10",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":100,"forks":101,"last_commit_at":102,"license":103,"difficulty_score":104,"env_os":105,"env_gpu":106,"env_ram":107,"env_deps":108,"category_tags":119,"github_topics":121,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":131,"updated_at":132,"faqs":133,"releases":163},6659,"theaiautomators\u002Finsights-lm-public","insights-lm-public","Open-source, self-hosted alternative to NotebookLM. Chat with your documents, generate audio summaries, and ground AI in your own sources—built with Supabase and N8N on a React frontend.","InsightsLM 是一款开源且支持私有化部署的 AI 研究助手，旨在为用户提供 Google NotebookLM 的自由替代方案。它允许用户上传专属文档，基于这些资料进行智能对话、生成带出处的可信回答，甚至将内容转化为播客形式的音频摘要。\n\n这一工具主要解决了闭源 AI 服务在数据隐私、定制化能力及本地部署方面的局限。通过完全掌控数据存储与处理流程，InsightsLM 确保企业或个人的敏感知识不会泄露给第三方，同时让 AI 的回答严格“扎根”于用户提供的源文件，有效减少幻觉现象。\n\nInsightsLM 特别适合关注数据安全的企业管理员、需要深度分析内部资料的研究人员，以及希望构建定制化 RAG（检索增强生成）应用的开发者。其独特的技术亮点在于采用了现代化的低代码架构：前端由 Loveable 快速构建，后端则巧妙结合了 Supabase 数据库与 N8N 自动化工作流。这种设计不仅降低了部署门槛，让用户无需编写大量代码即可搭建专属知识库，还提供了极高的扩展性。此外，项目还提供了完全本地化的版本选项，支持对接 Ollama 等本地模型，进一步满足了对离线运行和极致隐私有严格要求","InsightsLM 是一款开源且支持私有化部署的 AI 研究助手，旨在为用户提供 Google NotebookLM 的自由替代方案。它允许用户上传专属文档，基于这些资料进行智能对话、生成带出处的可信回答，甚至将内容转化为播客形式的音频摘要。\n\n这一工具主要解决了闭源 AI 服务在数据隐私、定制化能力及本地部署方面的局限。通过完全掌控数据存储与处理流程，InsightsLM 确保企业或个人的敏感知识不会泄露给第三方，同时让 AI 的回答严格“扎根”于用户提供的源文件，有效减少幻觉现象。\n\nInsightsLM 特别适合关注数据安全的企业管理员、需要深度分析内部资料的研究人员，以及希望构建定制化 RAG（检索增强生成）应用的开发者。其独特的技术亮点在于采用了现代化的低代码架构：前端由 Loveable 快速构建，后端则巧妙结合了 Supabase 数据库与 N8N 自动化工作流。这种设计不仅降低了部署门槛，让用户无需编写大量代码即可搭建专属知识库，还提供了极高的扩展性。此外，项目还提供了完全本地化的版本选项，支持对接 Ollama 等本地模型，进一步满足了对离线运行和极致隐私有严格要求的使用场景。","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fwww.theaiautomators.com\u002Fwp-content\u002Fuploads\u002F2025\u002F07\u002FGroup-2651.svg\" alt=\"InsightsLM Logo\" width=\"600\"\u002F>\n\u003C\u002Fp>\n\n\n# InsightsLM: The Open Source NotebookLM Alternative\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Ftheaiautomators\u002Finsights-lm-public?style=social)](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public\u002Fstargazers)\n[![YouTube Video](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-Watch%20the%20Build-red)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Nla35It-xfc)\n\n> What if the power of a tool like NotebookLM wasn't locked away in a closed system? What if you could build a private, self-hosted alternative that can be customized for your business needs, all without writing a single line of code?\n\nThat's exactly what we've done with **InsightsLM**. This project is an open-source, self-hostable alternative to NotebookLM. It's designed to be a powerful AI research tool that grounds its responses exclusively in the sources you provide, making it a reliable window into your company's knowledge base.\n\n\n## About The Project\n\nNotebookLM is one of the most powerful AI research tools available today. However, its closed-source nature limits its potential for customization and private hosting. InsightsLM was created to bridge this gap.\n\nThis isn't just a basic prototype. It's a robust application with some killer features, developed using a \"vibe-coding\" approach with Loveable for the Javascript frontend and a powerful backend combination of Supabase and N8N.\n\nWe are open-sourcing InsightsLM so you can install it, customize it, improve it, and even commercialize it. The ability to deploy AI agents grounded in a company's specific knowledge (a concept known as Retrieval-Augmented Generation or RAG) represents one of the biggest commercial opportunities for generative AI today.\n\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fwww.theaiautomators.com\u002Fwp-content\u002Fuploads\u002F2025\u002F07\u002FGroup-2652.png\" alt=\"The AI Automators Logo\" width=\"500\"\u002F>\n\u003C\u002Fp>\n\n\n## Fully Local Version\n\nThis version of InsightsLM relies on cloud AI services like OpenAI and Gemini.\n\nIf you'd like to setup a fully local version of this that uses Ollama and Qwen3 along with Whisper and CoquiTTS, then check out our other repo below\n\n[Fully Local InsightsLM](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-local-package)\n\n## Join Our Community\n\nIf you're interested in learning how to customize InsightsLM or build similar applications, join our community, The AI Automators.\n\nhttps:\u002F\u002Fwww.theaiautomators.com\u002F\n\n\n## Key Features\n\n* **Chat with Your Documents:** Upload your documents and get instant, context-aware answers.\n* **Verifiable Citations:** Jump directly to the source of the information to ensure the AI isn't hallucinating.\n* **Podcast Generation:** Create audio summaries and discussions from your source materials, just like in NotebookLM.\n* **Private and Self-Hosted:** Maintain complete control over your data by hosting it yourself. Use local models if you wish.\n* **Customizable and Extensible:** Built with modern, accessible tools, making it easy to tailor to your specific needs.\n\n\n## Demo & Walkthrough\n\nFor a complete demonstration of InsightsLM, an overview of its architecture, and a step-by-step guide on how to set it up, check out our YouTube video:\n\n### Original Video\n\n\u003Cp>\n  \u003Ca target=\"_blank\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Nla35It-xfc\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftheaiautomators_insights-lm-public_readme_49ef0f7d2cb0.png\" alt=\"Video\" width=\"500\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n### Updated Walkthrough (Jan 2026)\n\n\u003Cp>\n  \u003Ca target=\"_blank\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Nla35It-xfc\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftheaiautomators_insights-lm-public_readme_6edeb8f47690.jpg\" alt=\"Updated Setup Walkthrough\" width=\"500\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\n## Built With\n\nThis project is built with a modern, powerful stack:\n* **Frontend:** \n    * [Loveable](https:\u002F\u002Ftheaiautomators.com\u002Fgo\u002Floveable)\n    * [Vite](https:\u002F\u002Fvitejs.dev\u002F)\n    * [React](https:\u002F\u002Freact.dev\u002F)\n    * [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F)\n    * [shadcn-ui](https:\u002F\u002Fui.shadcn.com\u002F)\n    * [Tailwind CSS](https:\u002F\u002Ftailwindcss.com\u002F)\n* **Backend:**\n    * [Supabase](https:\u002F\u002Fsupabase.com\u002F) - for database, authentication, and storage.\n    * [N8N](https:\u002F\u002Ftheaiautomators.com\u002Fgo\u002Fn8n) - for workflow automation and backend logic.\n\n\n## Important: Recent Changes\n\n> ⚠️ **Why This Guide Has Been Updated**\n>\n> Supabase has introduced a new authentication system and is moving towards new publishable + secret keys in place of the anon + service role secret, placing the old ones on a \"legacy\" footing. As a result, the edge functions in this repository have been updated to handle security, authentication, and authorization within the code of the function itself. This allows us to disable the \"Verify JWT\" flag on the functions. **Make sure you have the latest copy of the edge functions from this repository.**\n\n## Getting Started: A Guide for No-Coders to Test and Customize\n\nThis guide provides the quickest way to get InsightsLM up and running so you can test, customize, and experiment.\n\nI recommend you following along with our video here for the full step by step guide - [https:\u002F\u002Fyoutu.be\u002FNla35It-xfc](https:\u002F\u002Fyoutu.be\u002FNla35It-xfc)\n\nYou will need a notepad file open to copy and paste in various credentials and details.\n\n1.  **Create Supabase Account and Project**\n    * Go to [Supabase.com](https:\u002F\u002Fsupabase.com\u002F) and create a free account.\n    * Create a new project. Paste in your `database password` into your open notepad file as you will need this later.\n2.  **Create GitHub Account & Repo from Template**\n    * If you don't have one, create a free account on [GitHub](https:\u002F\u002Fgithub.com\u002F).\n    * Navigate to the InsightsLM template repository here: [**github.com\u002Ftheaiautomators\u002Finsights-lm-public**](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public)\n    * Click the `Use this template` button to create a copy of the repository in your own GitHub account. Fill out the form.\n3.  **Import into Bolt.new and Connect Supabase**\n    * Create an account on [Bolt.new](https:\u002F\u002Fbolt.new\u002F) as it supports Supabase integration. (While the project was built on Loveable, it is currently quite difficult to import existing Github projects into Loveable)\n    * Import your newly created GitHub repository into your Bolt project. You will need to link your Github account to Bolt. Choose the repo and import.\n    * **Wait until Bolt imports the full codebase before proceeding.**\n    * To connect Supabase, go to the **Cog icon** > **Database** > **Advanced** > **Connect to an existing database**\n    * You should see a message: \"Supabase project was connected successfully\"\n    * You'll get a \"missing secrets\" popup - **you can safely ignore this**.\n    * Now type in the Bolt chat: `Execute the database migration in script 20250606152423_v0.1.sql in the supabase\u002Fmigrations folder`\n    * *(Note: You may need a paid Bolt account for this step to succeed)*\n    * Once the migration succeeds, type: `Now deploy the edge functions in the supabase\u002Ffunctions folder and set the Verify JWT with legacy secret flag to false as we are handling auth within the edge function code`\n4.  **Verify Edge Functions Config**\n    * The edge functions will now be available in the Supabase dashboard.\n    * **Important:** Go into **each edge function** in the Supabase dashboard and ensure the \"Verify JWT with legacy secret\" option is set to False. If its enabled, then disable it. The updated edge functions now handle authentication internally.\n5.  **Import and Configure N8N Workflows**\n    * The `\u002Fn8n` directory in this repository contains the JSON files for the required N8N workflows. There are 2 approaches here.\n        1. The easiest is to import the \"Import_Insights_LM_Workflows.json\" file into a new workflow in n8n and follow the steps in the video. This includes configuring an n8n API key which will be used to auto-create all workflows needed by the system. You will also need to set various credentials.\n        2. Instead of using the above workflow importer, you can instead download and import the 6 JSON workflows in this directory. You will need to go node by node in each workflow to configure them for your services. (e.g. Supabase, OpenAI, Gemini, Sub-Workflows etc). Follow the TODOs in each workflow.\n6.  **Add N8N Webhooks to Supabase Secrets**\n    * Your N8N workflows are triggered by webhooks from the Supabase Edge Functions. If you used the workflow importer, you will have the list of N8N secrets to create. Otherwise you'll need to gather these from the various workflows.\n    * In your Supabase project dashboard, navigate to `Edge Functions` -> `Secrets` and add the following secrets. This allows the Supabase Edge Functions to securely call your N8N workflows.\n    * These are the secrets that need to be created\n        * NOTEBOOK_CHAT_URL\n        * NOTEBOOK_GENERATION_URL\n        * AUDIO_GENERATION_WEBHOOK_URL\n        * DOCUMENT_PROCESSING_WEBHOOK_URL\n        * ADDITIONAL_SOURCES_WEBHOOK_URL\n        * NOTEBOOK_GENERATION_AUTH (This is the password for the custom Header Auth for each n8n Webhook)\n        * OPENAI_API_KEY (This is used in the Generate Note Title edge function)\n7.  **Test & Customize**\n    * That's it! Your instance of InsightsLM should now be live.\n    * You can now test the application, upload documents, and start chatting.\n    * Within Bolt.new you can also deploy this to Netlify\n\n---\n\n## Credential Configuration Notes\n\n### Supabase Credentials (for n8n)\n\n> ⚠️ **Do NOT use the \"Publishable API Key\"** from the Supabase dashboard.\n\n* Go to **Project Settings** > **API Keys** > **Legacy service role API Keys**\n* For all credentials in n8n, the IDs are available both in the URL (as shown in the video) and in the **Details tab** of the credential.\n\n### Webhook Auth (for n8n)\n\n* **Do NOT add \"Bearer\" or any prefix** to the password - just enter the password value directly.\n\n### Postgres Connection (for n8n)\n\n* In the connection popup, click **Method: Transaction Pooler** - this will show the values you need (also demonstrated in the video).\n\n---\n\n## n8n Version 2 Notes\n\n> ⚠️ **Important for n8n v2 Users**\n\n### Publishing Workflows\n\nIn n8n version 2, you need to **publish** your workflows (not just activate them). The frontend app calls the published version of each workflow, so if you don't publish, the app will use an older version even though you see changes in the editor.\n\n**Publishing Order (Important!):**\n1. **First:** Publish the `Extract Text` sub-workflow\n2. **Second:** Publish the `Upsert to Vector Store` workflow\n3. **Then:** Publish the remaining workflows\n\n### Making Changes\n\nAny time you make changes to n8n workflows, you **must publish** those changes in n8n. Otherwise, the frontend app will continue calling the older published version, and you'll see different behavior than what's shown in the editor.\n\n---\n\n## Podcast Generation (Self-Hosted n8n)\n\nIf you're running n8n self-hosted, the Podcast Generation workflow uses CLI nodes that require specific environment variables to be enabled:\n\n```\nNODES_EXCLUDE=[]\n```\n\nThis setting allows the CLI nodes to be available. Without it, the CLI nodes will be hidden and the workflow won't function properly.\n\n---\n\n## Installing FFMPEG (Self-Hosted n8n Only)\n\nThe Podcast Generation workflow requires FFMPEG to be installed on your n8n server. For official download options and documentation, see the [FFmpeg Download Page](https:\u002F\u002Fwww.ffmpeg.org\u002Fdownload.html).\n\n> ⚠️ **n8n Cloud Users:** This is **not possible** on n8n Cloud as you need SSH access to your n8n server. FFMPEG installation requires direct server access, which is only available with self-hosted n8n.\n\n### Docker Compose Installation (Recommended)\n\n> ⚠️ **Note:** These instructions are a rough guide. The exact steps will vary depending on your installation method, environment, server configuration, and existing setup.\n\nIf you're running n8n via Docker Compose, create a custom Dockerfile that extends the base n8n image:\n\n**1. Create a `Dockerfile` in your project directory:**\n\n```dockerfile\nFROM n8nio\u002Fn8n:latest\n\nUSER root\nRUN apk add --no-cache ffmpeg\nUSER node\n```\n\n**2. Update your `docker-compose.yml` to build from this Dockerfile:**\n\n```yaml\nservices:\n  n8n:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    # ... rest of your existing n8n config (ports, volumes, environment, etc.)\n```\n\nInstead of:\n\n```yaml\nservices:\n  n8n:\n    image: n8nio\u002Fn8n:latest\n```\n\n**3. Build and run:**\n\n```bash\ndocker compose build\ndocker compose up -d\n```\n\n**4. When updating n8n, rebuild with:**\n\n```bash\ndocker compose build --pull\ndocker compose up -d\n```\n\nThe `--pull` flag ensures you grab the latest base image before building.\n\n### Direct OS Installation\n\nIf n8n is installed directly on your server OS (not in Docker), SSH into your server and run the appropriate commands:\n\n**Ubuntu\u002FDebian:**\n\n```bash\nsudo apt update\nsudo apt install ffmpeg\n```\n\n**RHEL 8\u002F9\u002F10, Rocky Linux, AlmaLinux, CentOS Stream:**\n\nFirst, install EPEL, then add the RPMFusion repository (see [official RPMFusion configuration](https:\u002F\u002Frpmfusion.org\u002FConfiguration)):\n\n```bash\n# Install EPEL first (required for RPMFusion)\nsudo dnf install --nogpgcheck https:\u002F\u002Fdl.fedoraproject.org\u002Fpub\u002Fepel\u002Fepel-release-latest-$(rpm -E %rhel).noarch.rpm\n\n# Install RPMFusion free repository\nsudo dnf install --nogpgcheck https:\u002F\u002Fmirrors.rpmfusion.org\u002Ffree\u002Fel\u002Frpmfusion-free-release-$(rpm -E %rhel).noarch.rpm\n\n# Install ffmpeg\nsudo dnf install ffmpeg\n```\n\n**Amazon Linux 2023:**\n\n```bash\nsudo dnf install ffmpeg-free\n```\n\n**Alpine (common in Docker):**\n\n```bash\napk add ffmpeg\n```\n\n**Alternative: Linux Static Builds**\n\nIf package installation isn't possible on your system, you can download pre-compiled static builds from the [FFmpeg Download Page](https:\u002F\u002Fwww.ffmpeg.org\u002Fdownload.html). These don't require installation - just download, extract, and add to your PATH.\n\n### Verify Installation\n\nAfter installation, verify FFMPEG is available:\n\n```bash\nffmpeg -version\n```\n\n---\n\n## Contributing\n\nContributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.\n\n- Fork the Project\n- Create your Feature Branch (git checkout -b feature\u002FAmazingFeature)\n- Commit your Changes (git commit -m 'Add some AmazingFeature')\n- Push to the Branch (git push origin feature\u002FAmazingFeature)\n- Open a Pull Request\n\n## License\n\nThis codebase is distributed under the MIT License.\n\n## A Note on n8n's Sustainable Use License\n\nWhile InsightsLM is fully open-sourced and Supabase is also open source, it's important to be aware that n8n, which powers much of the backend automation, is not open source in the traditional sense.\n\nn8n is distributed under a [Sustainable Use License](https:\u002F\u002Fgithub.com\u002Fn8n-io\u002Fn8n\u002Fblob\u002Fmaster\u002FLICENSE.md). This license allows free usage for internal business purposes, including hosting workflows within your company or organization.\n\nHowever, if you plan to use InsightsLM as part of a commercial SaaS offering—such as reselling access or hosting a public version for multiple clients—you may need to obtain an n8n Enterprise License. We’re not lawyers, so we recommend that you review the n8n license and contacting their team if your use case falls into a commercial category.\n\nAlternatives: If your use case is restricted by the n8n license, one potential option is to convert key workflows into Supabase Edge Functions. This would allow you to fully avoid using n8n in production.","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fwww.theaiautomators.com\u002Fwp-content\u002Fuploads\u002F2025\u002F07\u002FGroup-2651.svg\" alt=\"InsightsLM Logo\" width=\"600\"\u002F>\n\u003C\u002Fp>\n\n\n# InsightsLM：开源的 NotebookLM 替代方案\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![GitHub 星标](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Ftheaiautomators\u002Finsights-lm-public?style=social)](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public\u002Fstargazers)\n[![YouTube 视频](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-Watch%20the%20Build-red)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Nla35It-xfc)\n\n> 如果像 NotebookLM 这样的强大工具不再被封闭在专有系统中，而是可以构建一个私有的、可自托管的替代方案，并且能够根据您的业务需求进行定制，而且完全无需编写任何代码，那会怎样呢？\n\n这正是我们通过 **InsightsLM** 实现的。该项目是一个开源、可自托管的 NotebookLM 替代品。它旨在成为一个强大的 AI 研究工具，其回答完全基于您提供的资料来源，从而成为通往贵公司知识库的可靠窗口。\n\n\n## 关于本项目\n\nNotebookLM 是当今功能最强大的 AI 研究工具之一。然而，由于其闭源特性，限制了它的定制化能力和私有化部署的可能性。InsightsLM 的诞生正是为了填补这一空白。\n\n这不仅仅是一个简单的原型，而是一款功能强大的应用，具备多项出色特性。前端采用 Loveable 框架，后端则结合了 Supabase 和 N8N，以“直觉式开发”的方式构建而成。\n\n我们决定将 InsightsLM 开源，以便您可以轻松安装、定制、改进，甚至将其商业化。能够部署基于企业特定知识的 AI 代理（即检索增强生成，RAG），是当前生成式 AI 领域最具潜力的商业机会之一。\n\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fwww.theaiautomators.com\u002Fwp-content\u002Fuploads\u002F2025\u002F07\u002FGroup-2652.png\" alt=\"The AI Automators Logo\" width=\"500\"\u002F>\n\u003C\u002Fp>\n\n\n## 完全本地版本\n\n此版本的 InsightsLM 依赖于 OpenAI 和 Gemini 等云端 AI 服务。\n\n如果您希望搭建一个完全本地化的版本，使用 Ollama 和 Qwen3，以及 Whisper 和 CoquiTTS，则请查看我们的另一个仓库：\n\n[Fully Local InsightsLM](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-local-package)\n\n## 加入我们的社区\n\n如果您有兴趣学习如何定制 InsightsLM 或构建类似的应用程序，请加入我们的社区——The AI Automators。\n\nhttps:\u002F\u002Fwww.theaiautomators.com\u002F\n\n\n## 核心功能\n\n* **与文档对话：** 上传您的文档，即可获得即时且上下文相关的回答。\n* **可验证的引用：** 直接跳转到信息来源，确保 AI 不会产生幻觉。\n* **播客生成：** 像 NotebookLM 一样，从您的原始资料中创建音频摘要和讨论内容。\n* **私密且可自托管：** 通过自行托管，您可以完全掌控自己的数据。如果需要，也可以使用本地模型。\n* **可定制且可扩展：** 基于现代、易用的工具构建，便于根据您的具体需求进行调整。\n\n\n## 演示与操作指南\n\n要全面了解 InsightsLM 的演示、架构概览以及详细的部署步骤，请观看我们的 YouTube 视频：\n\n### 原始视频\n\n\u003Cp>\n  \u003Ca target=\"_blank\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Nla35It-xfc\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftheaiautomators_insights-lm-public_readme_49ef0f7d2cb0.png\" alt=\"视频\" width=\"500\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n### 更新版操作指南（2026年1月）\n\n\u003Cp>\n  \u003Ca target=\"_blank\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Nla35It-xfc\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftheaiautomators_insights-lm-public_readme_6edeb8f47690.jpg\" alt=\"更新版设置指南\" width=\"500\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\n## 技术栈\n\n本项目采用了现代化的强大技术栈：\n* **前端：**\n    * [Loveable](https:\u002F\u002Ftheaiautomators.com\u002Fgo\u002Floveable)\n    * [Vite](https:\u002F\u002Fvitejs.dev\u002F)\n    * [React](https:\u002F\u002Freact.dev\u002F)\n    * [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F)\n    * [shadcn-ui](https:\u002F\u002Fui.shadcn.com\u002F)\n    * [Tailwind CSS](https:\u002F\u002Ftailwindcss.com\u002F)\n* **后端：**\n    * [Supabase](https:\u002F\u002Fsupabase.com\u002F) — 用于数据库、身份验证和存储。\n    * [N8N](https:\u002F\u002Ftheaiautomators.com\u002Fgo\u002Fn8n) — 用于工作流自动化和后端逻辑。\n\n\n## 重要提示：近期变更\n\n> ⚠️ **本指南为何更新**\n>\n> Supabase 推出了新的身份验证系统，并逐步过渡到使用公开密钥和秘密密钥，取代原有的 anon 和 service role 秘密密钥，旧密钥已被标记为“遗留”。因此，本仓库中的边缘函数已更新，以在函数代码内部处理安全性、身份验证和授权问题。这样我们可以关闭函数上的“验证 JWT”标志。**请务必从本仓库获取最新的边缘函数代码。**\n\n## 入门指南：无代码开发者测试与自定义指南\n\n本指南提供了让 InsightsLM 快速启动并运行的最简单方法，以便您可以进行测试、自定义和实验。\n\n我建议您观看此处的视频以获取完整的分步指南——[https:\u002F\u002Fyoutu.be\u002FNla35It-xfc](https:\u002F\u002Fyoutu.be\u002FNla35It-xfc)。\n\n您需要打开一个记事本文件，用于复制和粘贴各种凭据及详细信息。\n\n1.  **创建 Supabase 账户和项目**\n    * 访问 [Supabase.com](https:\u002F\u002Fsupabase.com\u002F) 并注册一个免费账户。\n    * 创建一个新的项目。将您的 `数据库密码` 粘贴到打开的记事本文件中，因为稍后会用到。\n2.  **创建 GitHub 账户并基于模板创建仓库**\n    * 如果您还没有 GitHub 账户，请在 [GitHub](https:\u002F\u002Fgithub.com\u002F) 上注册一个免费账户。\n    * 导航至 InsightsLM 模板仓库：[**github.com\u002Ftheaiautomators\u002Finsights-lm-public**](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public)\n    * 单击“使用此模板”按钮，在您自己的 GitHub 账户中创建该仓库的副本。填写表单。\n3.  **导入到 Bolt.new 并连接 Supabase**\n    * 在 [Bolt.new](https:\u002F\u002Fbolt.new\u002F) 上注册一个账户，因为它支持 Supabase 集成。（虽然该项目最初是基于 Loveable 构建的，但目前将现有 GitHub 项目导入 Loveable 的难度较大）\n    * 将您新创建的 GitHub 仓库导入到您的 Bolt 项目中。您需要将 GitHub 账户与 Bolt 关联。选择仓库并导入。\n    * **请等待 Bolt 完成整个代码库的导入后再继续下一步。**\n    * 要连接 Supabase，转到 **齿轮图标** > **数据库** > **高级** > **连接到现有数据库**\n    * 您应该会看到一条消息：“Supabase 项目已成功连接”\n    * 屏幕上会出现“缺少密钥”的提示框——**您可以安全地忽略它**。\n    * 现在在 Bolt 聊天中输入：`执行 supabase\u002Fmigrations 文件夹中的脚本 20250606152423_v0.1.sql 中的数据库迁移`\n    * *(注：此步骤可能需要付费的 Bolt 账户才能成功)*\n    * 迁移成功后，输入：`现在部署 supabase\u002Ffunctions 文件夹中的边缘函数，并将“使用旧版密钥验证 JWT”选项设置为 false，因为我们已在边缘函数代码中处理了身份验证`\n4.  **验证边缘函数配置**\n    * 边缘函数现在将在 Supabase 控制面板中可用。\n    * **重要提示：**进入 Supabase 控制面板中的 **每个边缘函数**，确保“使用旧版密钥验证 JWT”选项已设置为 False。如果该选项已启用，请将其禁用。更新后的边缘函数现已在内部处理身份验证。\n5.  **导入并配置 N8N 工作流**\n    * 此仓库中的 `\u002Fn8n` 目录包含所需 N8N 工作流的 JSON 文件。这里有两种方法：\n        1. 最简单的方法是将 “Import_Insights_LM_Workflows.json” 文件导入到 n8n 中的新工作流中，并按照视频中的步骤操作。这包括配置一个 n8n API 密钥，该密钥将用于自动创建系统所需的所有工作流。您还需要设置各种凭据。\n        2. 除了使用上述工作流导入器外，您也可以下载并导入此目录中的 6 个 JSON 工作流。您需要逐节点地配置每个工作流，以适应您的服务（例如 Supabase、OpenAI、Gemini、子工作流等）。请遵循每个工作流中的待办事项。\n6.  **将 N8N Webhook 添加到 Supabase 密钥中**\n    * 您的 N8N 工作流由 Supabase 边缘函数触发的 Webhook 触发。如果您使用了工作流导入器，您将获得需要创建的 N8N 密钥列表。否则，您需要从各个工作流中收集这些密钥。\n    * 在您的 Supabase 项目控制面板中，导航到 `边缘函数` -> `密钥`，并添加以下密钥。这使 Supabase 边缘函数能够安全地调用您的 N8N 工作流。\n    * 需要创建的密钥如下：\n        * NOTEBOOK_CHAT_URL\n        * NOTEBOOK_GENERATION_URL\n        * AUDIO_GENERATION_WEBHOOK_URL\n        * DOCUMENT_PROCESSING_WEBHOOK_URL\n        * ADDITIONAL_SOURCES_WEBHOOK_URL\n        * NOTEBOOK_GENERATION_AUTH（这是每个 n8n Webhook 自定义 Header Auth 的密码）\n        * OPENAI_API_KEY（用于生成笔记标题的边缘函数）\n7.  **测试与自定义**\n    * 好了！您的 InsightsLM 实例现在应该已经上线。\n    * 您可以开始测试应用程序，上传文档，并开始聊天。\n    * 在 Bolt.new 中，您还可以将此应用部署到 Netlify。\n\n---\n\n## 凭据配置注意事项\n\n### Supabase 凭据（用于 n8n）\n\n> ⚠️ **请勿使用 Supabase 控制面板中的“可公开 API 密钥”**。\n\n* 转到 **项目设置** > **API 密钥** > **旧版服务角色 API 密钥**\n* 对于 n8n 中的所有凭据，其 ID 同时显示在 URL 中（如视频所示）以及凭据的 **详情选项卡** 中。\n\n### Webhook 身份验证（用于 n8n）\n\n* **请勿在密码前添加“Bearer”或其他前缀**——只需直接输入密码值即可。\n\n### Postgres 连接（用于 n8n）\n\n* 在连接弹出窗口中，选择 **方法：事务池**——这将显示您所需的值（视频中也有演示）。\n\n---\n\n## n8n 版本 2 注意事项\n\n> ⚠️ **对于 n8n v2 用户的重要提示**\n\n### 发布工作流\n\n在 n8n 版本 2 中，您需要 **发布** 您的工作流（而不仅仅是激活）。前端应用程序会调用已发布的版本，因此如果您未发布，即使编辑器中显示了更改，应用程序仍会使用旧版本。\n\n**发布顺序（重要！）：**\n1. **首先：**发布 `提取文本` 子工作流\n2. **其次：**发布 `插入或更新向量存储` 工作流\n3. **然后：**发布其余工作流\n\n### 进行更改\n\n每当您对 n8n 工作流进行更改时，都必须在 n8n 中 **发布** 这些更改。否则，前端应用程序将继续调用旧的已发布版本，您将看到与编辑器中显示的行为不同的结果。\n\n---\n\n## 播客生成（自托管 n8n）\n\n如果您运行的是自托管的 n8n，播客生成工作流使用 CLI 节点，这些节点需要启用特定的环境变量：\n\n```\nNODES_EXCLUDE=[]\n```\n\n此设置允许 CLI 节点可用。如果没有此设置，CLI 节点将被隐藏，工作流将无法正常运行。\n\n---\n\n## 安装 FFMPEG（仅限自托管 n8n）\n\n播客生成工作流需要在您的 n8n 服务器上安装 FFMPEG。有关官方下载选项和文档，请参阅 [FFmpeg 下载页面](https:\u002F\u002Fwww.ffmpeg.org\u002Fdownload.html)。\n\n> ⚠️ **n8n Cloud 用户：**在 n8n Cloud 上 **无法实现** 此操作，因为您需要 SSH 访问您的 n8n 服务器。FFMPEG 的安装需要直接访问服务器，而这仅适用于自托管的 n8n。\n\n### Docker Compose 安装（推荐）\n\n> ⚠️ **注意：** 以下说明仅为大致指南。具体步骤会因您的安装方式、环境、服务器配置以及现有设置而有所不同。\n\n如果您通过 Docker Compose 运行 n8n，请创建一个自定义 Dockerfile，以扩展 n8n 的基础镜像：\n\n**1. 在项目目录中创建一个 `Dockerfile`：**\n\n```dockerfile\nFROM n8nio\u002Fn8n:latest\n\nUSER root\nRUN apk add --no-cache ffmpeg\nUSER node\n```\n\n**2. 更新您的 `docker-compose.yml` 文件，使其基于此 Dockerfile 构建：**\n\n```yaml\nservices:\n  n8n:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    # 其他现有的 n8n 配置（端口、卷、环境变量等）\n```\n\n而不是：\n\n```yaml\nservices:\n  n8n:\n    image: n8nio\u002Fn8n:latest\n```\n\n**3. 构建并运行：**\n\n```bash\ndocker compose build\ndocker compose up -d\n```\n\n**4. 当更新 n8n 时，请使用以下命令重新构建：**\n\n```bash\ndocker compose build --pull\ndocker compose up -d\n```\n\n`--pull` 标志可确保在构建之前获取最新的基础镜像。\n\n### 直接操作系统安装\n\n如果 n8n 是直接安装在您的服务器操作系统上（而非在 Docker 中），请通过 SSH 登录到您的服务器，并运行相应的命令：\n\n**Ubuntu\u002FDebian：**\n\n```bash\nsudo apt update\nsudo apt install ffmpeg\n```\n\n**RHEL 8\u002F9\u002F10、Rocky Linux、AlmaLinux、CentOS Stream：**\n\n首先安装 EPEL，然后添加 RPMFusion 仓库（参见 [官方 RPMFusion 配置](https:\u002F\u002Frpmfusion.org\u002FConfiguration)）：\n\n```bash\n# 先安装 EPEL（RPMFusion 所需）\nsudo dnf install --nogpgcheck https:\u002F\u002Fdl.fedoraproject.org\u002Fpub\u002Fepel\u002Fepel-release-latest-$(rpm -E %rhel).noarch.rpm\n\n# 安装 RPMFusion free 仓库\nsudo dnf install --nogpgcheck https:\u002F\u002Fmirrors.rpmfusion.org\u002Ffree\u002Fel\u002Frpmfusion-free-release-$(rpm -E %rhel).noarch.rpm\n\n# 安装 ffmpeg\nsudo dnf install ffmpeg\n```\n\n**Amazon Linux 2023：**\n\n```bash\nsudo dnf install ffmpeg-free\n```\n\n**Alpine（常见于 Docker）：**\n\n```bash\napk add ffmpeg\n```\n\n**替代方案：Linux 静态编译版本**\n\n如果您的系统无法安装软件包，您可以从 [FFmpeg 下载页面](https:\u002F\u002Fwww.ffmpeg.org\u002Fdownload.html) 下载预编译的静态版本。这些版本无需安装——只需下载、解压并将其添加到您的 PATH 中即可。\n\n### 验证安装\n\n安装完成后，请验证 FFMPEG 是否可用：\n\n```bash\nffmpeg -version\n```\n\n---\n\n## 贡献\n\n贡献使开源社区成为一个学习、启发和创造的绝佳场所。您所做的任何贡献都将不胜感激。\n\n- 分支项目\n- 创建您的功能分支（git checkout -b feature\u002FAmazingFeature）\n- 提交更改（git commit -m '添加一些 AmazingFeature'）\n- 推送到分支（git push origin feature\u002FAmazingFeature）\n- 打开拉取请求\n\n## 许可证\n\n本代码库根据 MIT 许可证发布。\n\n## 关于 n8n 可持续使用许可证的一点说明\n\n尽管 InsightsLM 完全开源，Supabase 也是开源的，但需要注意的是，作为后端自动化核心的 n8n 并非传统意义上的开源软件。\n\nn8n 根据 [可持续使用许可证](https:\u002F\u002Fgithub.com\u002Fn8n-io\u002Fn8n\u002Fblob\u002Fmaster\u002FLICENSE.md) 发布。该许可证允许出于内部业务目的免费使用，包括在贵公司或组织内部托管工作流。\n\n然而，如果您计划将 InsightsLM 用作商业 SaaS 服务的一部分——例如转售访问权限或为多个客户托管公共版本——则可能需要获得 n8n 企业许可证。我们并非律师，因此建议您仔细阅读 n8n 的许可证，并在您的使用场景属于商业范畴时联系他们的团队。\n\n替代方案：如果您的使用场景受到 n8n 许可证的限制，一种可行的选择是将关键工作流转换为 Supabase Edge Functions。这样您就可以完全避免在生产环境中使用 n8n。","# InsightsLM 快速上手指南\n\nInsightsLM 是一个开源、可自托管的 AI 研究工具，作为 Google NotebookLM 的替代方案。它允许你上传文档，基于检索增强生成（RAG）技术进行对话，并生成音频摘要，所有数据均由你自己掌控。\n\n## 环境准备\n\n在开始之前，请确保你拥有以下账号和服务：\n\n*   **操作系统**：Windows, macOS 或 Linux（主要操作在云端或浏览器中进行）。\n*   **必备账号**：\n    *   [GitHub](https:\u002F\u002Fgithub.com\u002F) 账号（用于代码托管）。\n    *   [Supabase](https:\u002F\u002Fsupabase.com\u002F) 账号（免费层级即可，用于数据库、认证和存储）。\n    *   [Bolt.new](https:\u002F\u002Fbolt.new\u002F) 账号（用于导入项目、连接数据库及部署前端；*注：原项目使用 Loveable 构建，但当前导入现有 GitHub 项目推荐使用 Bolt.new*）。\n    *   [n8n](https:\u002F\u002Fn8n.io\u002F) 账号（用于工作流自动化；支持自托管或 n8n Cloud）。\n    *   AI 模型密钥：OpenAI API Key 或 Google Gemini API Key。\n*   **前置依赖（仅自托管 n8n 用户需要）**：\n    *   服务器需安装 `FFMPEG`（用于播客生成功能）。\n    *   自托管 n8n 需设置环境变量 `NODES_EXCLUDE=[]` 以启用 CLI 节点。\n\n> **注意**：本指南主要介绍基于云服务的版本。如果你需要完全本地化运行（使用 Ollama, Qwen3, Whisper 等），请参考 [insights-lm-local-package](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-local-package) 仓库。\n\n## 安装步骤\n\n### 1. 创建 Supabase 项目\n1.  登录 [Supabase](https:\u002F\u002Fsupabase.com\u002F) 并创建一个新项目。\n2.  在创建过程中设置数据库密码，**务必将此密码保存到本地记事本**，后续配置 n8n 时需要用到。\n\n### 2. 初始化代码仓库\n1.  访问 [InsightsLM 模板仓库](https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public)。\n2.  点击绿色的 `Use this template` 按钮，选择 `Create a new repository`。\n3.  填写仓库名称，将其复制到你自己的 GitHub 账号下。\n\n### 3. 导入 Bolt.new 并连接数据库\n1.  登录 [Bolt.new](https:\u002F\u002Fbolt.new\u002F)。\n2.  点击导入项目，关联你的 GitHub 账号，选择刚才创建的 InsightsLM 仓库并导入。\n3.  **等待**直到 Bolt 完整导入代码库。\n4.  连接 Supabase：\n    *   点击左侧菜单的 **Cog icon (设置)** > **Database** > **Advanced** > **Connect to an existing database**。\n    *   选择你刚才创建的 Supabase 项目，确认连接成功。\n    *   若出现 \"missing secrets\" 弹窗，可暂时忽略。\n5.  在 Bolt 的聊天框中依次输入以下指令执行迁移和部署：\n    *   首先执行数据库迁移：\n        ```text\n        Execute the database migration in script 20250606152423_v0.1.sql in the supabase\u002Fmigrations folder\n        ```\n        *(注：此步骤可能需要 Bolt 付费账户)*\n    *   迁移成功后，部署边缘函数并关闭旧版 JWT 验证：\n        ```text\n        Now deploy the edge functions in the supabase\u002Ffunctions folder and set the Verify JWT with legacy secret flag to false as we are handling auth within the edge function code\n        ```\n\n### 4. 配置边缘函数安全设置\n1.  进入 Supabase 控制台，导航至 **Edge Functions**。\n2.  逐个检查列表中的边缘函数。\n3.  确保每个函数的 **\"Verify JWT with legacy secret\"** 选项设置为 **False**（关闭状态）。\n    *   *原因：新版边缘函数已在代码内部处理认证，无需 Supabase 层面的旧式验证。*\n\n### 5. 配置 n8n 工作流\n你有两种方式配置 n8n：\n\n**方式 A：使用导入器（推荐，需配合视频教程）**\n1.  在 n8n 中新建工作流，导入仓库 `\u002Fn8n` 目录下的 `Import_Insights_LM_Workflows.json`。\n2.  按照视频指引配置 n8n API Key 及其他凭证，系统将自动创建所需的所有子工作流。\n\n**方式 B：手动导入（适合高级用户）**\n1.  下载 `\u002Fn8n` 目录下的 6 个 JSON 工作流文件并逐一导入 n8n。\n2.  逐个节点配置凭证（Supabase, OpenAI, Gemini 等），遵循文件中的 `TODO` 标记。\n\n**关键配置项（在 n8n 中设置）：**\n*   **Supabase 凭证**：\n    *   **切勿**使用 \"Publishable API Key\"。\n    *   请使用 **Project Settings > API Keys > Legacy service role API Keys** 中的密钥。\n    *   Postgres 连接方法请选择 **Transaction Pooler**。\n*   **Webhook 认证**：\n    *   密码字段直接填入值，**不要**添加 \"Bearer\" 前缀。\n\n### 6. 同步 Webhook 地址到 Supabase\n为了让 Supabase 边缘函数能调用 n8n，需将 n8n 的 Webhook URL 填入 Supabase  Secrets。\n\n1.  在 n8n 中找到各工作流的 Webhook URL（若使用导入器，会有明确的列表）。\n2.  进入 Supabase 控制台：**Edge Functions** > **Secrets**。\n3.  添加以下 Secrets（值为你对应的 n8n Webhook URL 或密码）：\n    *   `NOTEBOOK_CHAT_URL`\n    *   `NOTEBOOK_GENERATION_URL`\n    *   `AUDIO_GENERATION_WEBHOOK_URL`\n    *   `DOCUMENT_PROCESSING_WEBHOOK_URL`\n    *   `ADDITIONAL_SOURCES_WEBHOOK_URL`\n    *   `NOTEBOOK_GENERATION_AUTH` (n8n Webhook 的自定义 Header 认证密码)\n    *   `OPENAI_API_KEY` (用于生成笔记标题的边缘函数)\n\n### 7. 特别注意事项 (n8n v2 用户)\n如果你使用的是 n8n 版本 2，**必须发布 (Publish)** 工作流而不仅仅是激活 (Activate)。前端调用的是已发布的版本。\n\n**发布顺序至关重要：**\n1.  先发布 `Extract Text` 子工作流。\n2.  再发布 `Upsert to Vector Store` 工作流。\n3.  最后发布其余工作流。\n*每次修改工作流后，都必须重新执行发布操作。*\n\n## 基本使用\n\n完成上述步骤后，你的 InsightsLM 实例即可运行。\n\n1.  **访问应用**：\n    *   在 Bolt.new 中点击部署按钮（如部署到 Netlify），或直接使用 Bolt 提供的预览链接。\n2.  **上传文档**：\n    *   在界面中上传 PDF、TXT 等格式的文档。系统会自动通过 n8n 工作流进行文本提取并向量化存储。\n3.  **开始对话**：\n    *   在聊天框中输入问题，AI 将基于你上传的文档内容回答，并提供可点击的引用来源（Citations）。\n4.  **生成播客（可选）**：\n    *   选择文档并触发 \"Podcast Generation\" 功能，系统将生成音频摘要（需确保 n8n 已正确配置 FFMPEG 及环境变量）。\n\n现在你可以自由地定制前端界面或调整 n8n 工作流逻辑，以满足特定的业务需求。","某中型咨询公司的研究团队需要快速消化数百页的行业报告和客户访谈记录，以准备紧急的战略分析会议。\n\n### 没有 insights-lm-public 时\n- **信息检索低效**：分析师需在多个 PDF 和文档中手动翻阅查找数据，耗时数小时且容易遗漏关键细节。\n- **幻觉风险高**：使用通用大模型总结时，常出现编造数据或脱离原文的情况，导致结论不可信，必须人工逐字核对。\n- **数据隐私担忧**：敏感的客户资料无法上传至公有云 AI 服务（如 NotebookLM），担心泄露商业机密，只能放弃智能化辅助。\n- **协作形式单一**：团队仅能阅读文字摘要，缺乏类似播客的音频讨论功能，难以利用通勤时间进行知识同步。\n- **定制成本高昂**：若想构建私有化知识库，通常需要专业开发团队编写代码，周期长且维护费用巨大。\n\n### 使用 insights-lm-public 后\n- **即时精准问答**：团队成员将文档上传至自托管的 insights-lm-public，直接提问即可获取基于原文的即时答案，定位效率提升十倍。\n- **来源可追溯验证**：系统提供的每个回答都附带确切引用出处，点击即可跳转原文段落，彻底消除 AI 幻觉带来的信任危机。\n- **数据完全自主可控**：依托 Supabase 和 N8N 搭建的私有环境，确保所有敏感数据留存在公司内部服务器，满足严格的合规要求。\n- **自动生成音频简报**：一键将复杂的研究报告转化为双人对话形式的播客，方便成员在移动场景中高效吸收核心观点。\n- **零代码灵活部署**：无需编写代码，团队即可根据业务需求自定义界面和功能，快速落地专属的 AI 研究助手。\n\ninsights-lm-public 让企业在保障数据绝对安全的前提下，以零代码成本拥有了可深度定制、具备可信引用能力的私有化 AI 研究中枢。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftheaiautomators_insights-lm-public_49ef0f7d.png","theaiautomators","The AI Automators","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ftheaiautomators_2b9cf97e.png",null,"https:\u002F\u002Fwww.theaiautomators.com\u002F","https:\u002F\u002Fgithub.com\u002Ftheaiautomators",[80,84,88,92,96],{"name":81,"color":82,"percentage":83},"TypeScript","#3178c6",94.2,{"name":85,"color":86,"percentage":87},"PLpgSQL","#336790",4.2,{"name":89,"color":90,"percentage":91},"JavaScript","#f1e05a",0.7,{"name":93,"color":94,"percentage":95},"CSS","#663399",0.6,{"name":97,"color":98,"percentage":99},"HTML","#e34c26",0.2,517,239,"2026-04-10T12:32:53","MIT",4,"未说明 (基于 Web 的云端\u002F自托管架构，依赖浏览器访问)","非必需 (默认使用 OpenAI\u002FGemini 等云 API；若部署完全本地版需参考其他仓库，通常需支持 Ollama\u002FQwen3 的 GPU)","未说明 (取决于自托管 n8n 和 Supabase 的具体负载，若运行本地模型则建议 16GB+)",{"notes":109,"python":110,"dependencies":111},"该项目主要为云原生架构，核心依赖为 Supabase（数据库\u002F认证）和 n8n（工作流自动化）。默认版本调用外部云模型 API，无需本地 GPU。若需完全本地运行（使用 Ollama\u002FQwen3\u002FWhisper），需参考其独立的 'insights-lm-local-package' 仓库。自托管 n8n 生成播客功能时，服务器必须安装 FFmpeg 并配置环境变量以启用 CLI 节点。n8n v2 用户需注意在修改工作流后必须手动‘发布’才能生效。","未说明 (后端逻辑主要由 n8n 工作流和 Supabase Edge Functions 处理，前端为 Node.js\u002FReact 环境)",[112,113,114,115,81,116,117,118],"Supabase","n8n (v2+)","Node.js","React","FFmpeg (仅自托管 n8n 且需生成播客时)","OpenAI API Key","Google Gemini API Key",[35,14,120],"其他",[122,123,124,125,126,127,128,129,130],"loveable","n8n","notebooklm","rag","rag-chatbot","react","research-tool","semantic-search","supabase","2026-03-27T02:49:30.150509","2026-04-11T23:26:05.521280",[134,139,144,149,154,159],{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},30078,"AI Agent 节点错误地优先使用 Postgres 聊天记忆而非 Supabase 向量存储，导致检索失败怎么办？","这是一个已知问题，建议采取以下临时解决步骤：\n1. 删除出错流程中连接到 Supabase \"create row\" 节点的连线。\n2. 如果界面中出现错误或 JSON 提示，请清空 n8n_chat_histories 表中的所有记录。\n3. 重新尝试运行工作流。维护者表示正在修复此 Bug。","https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public\u002Fissues\u002F13",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},30079,"生成的音频文件显示“audio unavailable”且浏览器报错跨域（CORS）问题如何解决？","该问题通常由 Netlify 前端与 Supabase 存储桶之间的跨域 Cookie 设置引起。虽然直接访问 Supabase 链接可以播放，但 Web 应用无法加载。目前的变通方案包括检查浏览器的调试窗口确认是否为 'Set-Header Cookie' 被拦截。如果问题持续，建议检查 Supabase 存储桶的 CORS 配置，允许来自 Netlify 域名的请求。此外，确保 n8n Docker 实例已正确安装 ffmpeg 以支持音频转换（需自定义 Dockerfile 添加 ffmpeg）。","https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public\u002Fissues\u002F5",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},30080,"在“提取文本”工作流中生成签名 URL 时出现 400 InvalidKey 错误怎么办？","此错误通常不是认证问题，而是文件路径（filePath）为空（null）导致的。请按以下步骤排查：\n1. 检查“Upsert to Vector Store”工作流的执行历史，确认上游节点是否正确输出了文件路径。\n2. 查看 Supabase Edge Function 中 \"process-document\" 函数的日志。\n3. 在“Extract Text”工作流的 \"Generate Signed URL\" 节点中，确认已设置正确的凭证（Credential），点击编辑连接图标应显示绿色成功消息。\n4. 确保变量 {{ $json.filePath }} 在之前的运行中已被正确填充。","https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public\u002Fissues\u002F2",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},30081,"本地部署时 Kong API 连接失败，提示授权失败但 Postman 测试 localhost 正常，如何修复？","如果在本地运行且服务名为 'kong'，请确认以下几点：\n1. 是否遵循了本地包（insights-lm-local-package）的安装说明进行设置。\n2. 确认 Service Role Secret 是否正确无误。\n3. 检查 docker-compose 文件，确保 n8n 和 Supabase 服务运行在同一个 Docker 网络组中，以便它们能通过服务名互相通信。","https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public\u002Fissues\u002F11",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},30082,"如何将嵌入模型从 OpenAI 更改为 Gemini，需要修改哪些配置？","更换嵌入模型需要在 Supabase 和 n8n 两端进行修改，具体步骤如下：\n1. 在 Supabase 中，修改 documents 表的向量列维度，以匹配新模型（如 Gemini）的输出维度。\n2. 删除并重建 documents_embedding_idx 索引。\n3. 清空 documents 表中的所有现有数据。\n4. 更新 n8n 中的 \"Upsert\" 工作流，使用新的嵌入模型并指定对应的维度参数。\n5. 更新 n8n 中的 \"Chat\" 工作流以适配新的模型设置。","https:\u002F\u002Fgithub.com\u002Ftheaiautomators\u002Finsights-lm-public\u002Fissues\u002F7",{"id":160,"question_zh":161,"answer_zh":162,"source_url":143},30083,"重新创建项目后上传文档到 Supabase 存储桶时报 400 错误且 Edge Function 报 JSON 解析错误，原因是什么？","这通常是因为生成的签名 URL 路径与实际存储桶中的 ID 不匹配，或者 Edge Function 接收到的响应格式异常。错误信息 `Unexpected end of JSON input` 表明 Deno Edge Function 在解析响应体时失败。建议检查：\n1. 确认 n8n 中生成的 `\u003Cid>` 是否确实对应 Supabase 存储桶中的实际文件路径。\n2. 检查 \"generate-notebook-content\" Edge Function 的代码逻辑，确保其处理的 HTTP 请求返回了有效的 JSON 数据。\n3. 如果是重新创建的项目，可能需要重新部署或更新相关的 Edge Function 代码以匹配新的项目配置。",[164,169],{"id":165,"version":166,"summary_zh":167,"released_at":168},207283,"v0.2.0","## ⚠️ 重要更新\n\n本次发布包含多项重要更新，以适配 Supabase 认证系统的变更及 n8n v2 的新特性。\n\n### 变更内容\n\n**边缘函数**\n- 所有边缘函数已更新为在内部处理认证\n- 现需在 Supabase 中的每项边缘函数上禁用“使用旧版密钥验证 JWT”选项\n\n**Bolt.new 集成**\n- 新的连接方式：Cog → 数据库 → 高级 → 连接到现有数据库\n- 更新了新流程的分步说明\n\n**n8n v2 支持**\n- 增加了工作流发布要求的相关文档\n- 明确了发布顺序：文本提取 → 插入或更新向量存储 → 其余工作流\n\n**文档**\n- 更新了 README，添加了凭据配置注意事项\n- 增加了关于 Supabase 旧版 API 密钥的指导\n- 新增了 Webhook 认证和 Postgres 连接技巧\n- 新增了自托管 n8n 环境中播客生成所需的环境变量要求（`NODES_EXCLUDE=[]`）","2026-01-15T13:41:51",{"id":170,"version":171,"summary_zh":172,"released_at":173},207284,"v0.1.0","🎉 InsightsLM 的 MVP 版本\n\n本次发布包含了 InsightsLM 的基础版本：\n- 基于 Supabase 的登录系统\n- 基于 RAG 的笔记本应用\n- 使用 n8n 构建的后端工作流\n- 文件与网页 URL 导入功能\n- 聊天界面及引用功能\n- 音频概览生成\n- 笔记功能","2025-06-16T12:50:23"]