[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-NirDiamant--Controllable-RAG-Agent":3,"tool-NirDiamant--Controllable-RAG-Agent":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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},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",[14,35],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":73,"owner_email":73,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":32,"env_os":93,"env_gpu":93,"env_ram":93,"env_deps":94,"category_tags":104,"github_topics":105,"view_count":32,"oss_zip_url":73,"oss_zip_packed_at":73,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":149},4312,"NirDiamant\u002FControllable-RAG-Agent","Controllable-RAG-Agent","This repository provides an advanced Retrieval-Augmented Generation (RAG) solution for complex question answering. It uses sophisticated graph based algorithm to handle the tasks.","Controllable-RAG-Agent 是一款专为解决复杂问答任务而设计的高级检索增强生成（RAG）开源工具。面对传统基于语义相似度的检索方法难以处理的非平凡问题，它通过构建一个精密的确定性图谱作为智能体的“大脑”，实现了对推理过程的深度控制。\n\n该工具核心解决了大模型在垂直领域应用中常见的“幻觉”难题，确保所有回答均严格源自用户提供的私有数据，同时具备强大的多步推理能力。它能将复杂的查询自动拆解为可管理的子任务，并根据新获取的信息动态调整执行计划，从而精准地从自定义数据集中提取答案。\n\n技术亮点在于其独特的图谱架构与自适应规划机制，不仅支持从 PDF 加载、文本预处理到章节摘要生成的完整流程，还集成了 Ragas 指标进行全面的性能评估，让生成质量可量化、可追踪。\n\n这款工具非常适合需要构建高可靠性 GenAI 应用的开发者、致力于研究复杂 RAG 场景的科研人员，以及希望将私有知识库转化为智能问答系统的企业技术团队。如果你正在寻找一种能够超越简单检索、实现逻辑严密且可控的自主智能体方案，Controllable-RAG-Agent 提供了一个成熟且可扩展的实现范例。","# Sophisticated Controllable Agent for Complex RAG Tasks 🧠📚\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg?style=flat-square)](http:\u002F\u002Fmakeapullrequest.com)\n[![LinkedIn](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLinkedIn-Connect-blue)](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fnir-diamant-759323134\u002F)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002FNirDiamantAI?label=Follow%20@NirDiamantAI&style=social)](https:\u002F\u002Ftwitter.com\u002FNirDiamantAI)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20our%20community-7289da?style=flat-square&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002F8PSA7s5v)\n\n\nAn advanced Retrieval-Augmented Generation (RAG) solution designed to tackle complex questions that simple semantic similarity-based retrieval cannot solve. This project showcases a sophisticated deterministic graph acting as the \"brain\" of a highly controllable autonomous agent capable of answering non-trivial questions from your own data.\n\n![Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_32343cab00dc.gif)\n\n🚀 Level up with my **[Agents Towards Production](https:\u002F\u002Fgithub.com\u002FNirDiamant\u002Fagents-towards-production)** repository. It delivers horizontal, code-first tutorials that cover every tool and step in the lifecycle of building production-grade GenAI agents, guiding you from spark to scale with proven patterns and reusable blueprints for real-world launches, making it the smartest place to start if you're serious about shipping agents to production.\n\n📚 Explore my **[comprehensive guide on RAG techniques](https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FRAG_Techniques)** to complement this advanced agent implementation with many other RAG techniques.\n\n🤖 Explore my **[GenAI Agents Repository](https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FGenAI_Agents)** to complement this advanced agent implementation with many other AI Agents implementations and tutorials.\n\n## 📫 Stay Updated!\n\n\u003Cdiv align=\"center\">\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">🚀\u003Cbr>\u003Cb>Cutting-edge\u003Cbr>Updates\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd align=\"center\">💡\u003Cbr>\u003Cb>Expert\u003Cbr>Insights\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd align=\"center\">🎯\u003Cbr>\u003Cb>Top 0.1%\u003Cbr>Content\u003C\u002Fb>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n[![Subscribe to DiamantAI Newsletter](assets\u002Fsubscribe-button.svg)](https:\u002F\u002Fdiamantai.substack.com\u002F?r=336pe4&utm_campaign=pub-share-checklist)\n\n*Join over 20,000 of AI enthusiasts getting unique cutting-edge insights and free tutorials!* ***Plus, subscribers get exclusive early access and special 33% discounts to my book and the upcoming RAG Techniques course!***\n\u003C\u002Fdiv>\n\n[![DiamantAI's newsletter](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_bd4960312f91.png)](https:\u002F\u002Fdiamantai.substack.com\u002F?r=336pe4&utm_campaign=pub-share-checklist)\n\n\n\u003C!-- https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fblob\u002Fmain\u002Fassets\u002Fvideo_demo.mp4 -->\n\u003C!-- [![YouTube](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_3b182bbb539a.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_73OV1z3sTg) -->\n\n## 🌟 Key Features\n\n- **Sophisticated Deterministic Graph**: Acts as the \"brain\" of the agent, enabling complex reasoning.\n- **Controllable Autonomous Agent**: Capable of answering non-trivial questions from custom datasets.\n- **Hallucination Prevention**: Ensures answers are solely based on provided data, avoiding AI hallucinations.\n- **Multi-step Reasoning**: Breaks down complex queries into manageable sub-tasks.\n- **Adaptive Planning**: Continuously updates its plan based on new information.\n- **Performance Evaluation**: Utilizes `Ragas` metrics for comprehensive quality assessment.\n\n\n## 🧠 How It Works\n![Solution Schema](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_8a289b2c3a95.jpeg)\n\n1. **PDF Loading and Processing**: Load PDF documents and split them into chapters.\n2. **Text Preprocessing**: Clean and preprocess the text for better summarization and encoding.\n3. **Summarization**: Generate extensive summaries of each chapter using large language models.\n4. **Book Quotes Database Creation**: Create a database for specific questions that will need access to quotes from the book.\n5. **Vector Store Encoding**: Encode the book content and chapter summaries into vector stores for efficient retrieval.\n6. **Question Processing**:\n   - Anonymize the question by replacing named entities with variables.\n   - Generate a high-level plan to answer the anonymized question.\n   - De-anonymize the plan and break it down into retrievable or answerable tasks.\n7. **Task Execution**:\n   - For each task, decide whether to retrieve information or answer based on context.\n   - If retrieving, fetch relevant information from vector stores and distill it.\n   - If answering, generate a response using chain-of-thought reasoning.\n8. **Verification and Re-planning**:\n   - Verify that generated content is grounded in the original context.\n   - Re-plan remaining steps based on new information.\n9. **Final Answer Generation**: Produce the final answer using accumulated context and chain-of-thought reasoning.\n\n## 📊 Evaluation\n\nThe solution is evaluated using `Ragas` metrics:\n- Answer Correctness\n- Faithfulness\n- Answer Relevancy\n- Context Recall\n- Answer Similarity\n\n## 🔍 Use Case: Harry Potter Book Analysis\n\nThe algorithm was tested using the first Harry Potter book, allowing for monitoring of the model's reliance on retrieved information versus pre-trained knowledge. This choice enables us to verify whether the model is using its pre-trained knowledge or strictly relying on the retrieved information from vector stores.\n\n### Example Question\n**Q: How did the protagonist defeat the villain's assistant?**\n\nTo solve this question, the following steps are necessary:\n\n1. Identify the protagonist of the plot.\n2. Identify the villain.\n3. Identify the villain's assistant.\n4. Search for confrontations or interactions between the protagonist and the villain.\n5. Deduce the reason that led the protagonist to defeat the assistant.\n\nThe agent's ability to break down and solve such complex queries demonstrates its sophisticated reasoning capabilities.\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Python 3.8+\n- API key for your chosen LLM provider\n\n### Installation (without Docker)\n\n1. Clone the repository:\n   ```sh\n   git clone https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent.git\n   cd Controllable-RAG-Agent\n   ```\n2. Set up environment variables:\n   Create a `.env` file in the root directory with your API key: \n   ```\n   OPENAI_API_KEY=\n   GROQ_API_KEY=\n   ```\n   you can look at the `.env.example` file for reference.\n\n## using Docker\n3. run the following command to build the docker image\n   ```sh\n   docker-compose up --build\n   ```\n\n## Installation (without Docker)\n3. Install required packages:\n   ```sh\n   pip install -r requirements.txt\n   ```\n\n### Usage\n\n1. Explore the step-by-step tutorial: `sophisticated_rag_agent_harry_potter.ipynb`\n\n2. Run real-time agent visualization (no docker):\n   ```sh\n   streamlit run simulate_agent.py\n   ```\n\n3. Run real-time agent visualization (with docker):\n   open your browser and go to `http:\u002F\u002Flocalhost:8501\u002F`\n\n## 🛠️ Technologies Used\n\n- LangChain\n- FAISS Vector Store\n- Streamlit (for visualization)\n- Ragas (for evaluation)\n- Flexible integration with various LLMs (e.g., OpenAI GPT models, Groq, or others of your choice)\n\n## 💡 Heuristics and Techniques\n\n1. Encoding both book content in chunks, chapter summaries generated by LLM, and quotes from the book.\u003Cbr>\n2. Anonymizing the question to create a general plan without biases or pre-trained knowledge of any LLM involved.\u003Cbr>\n3. Breaking down each task from the plan to be executed by custom functions with full control.\u003Cbr>\n4. Distilling retrieved content for better and accurate LLM generations, minimizing hallucinations.\u003Cbr>\n5. Answering a question based on context using a Chain of Thought, which includes both positive and negative examples, to arrive at a well-reasoned answer rather than just a straightforward response.\u003Cbr>\n6. Content verification and hallucination-free verification as suggested in \"Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection\" - https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.11511.\u003Cbr>\n7. Utilizing an ongoing updated plan made by an LLM to solve complicated questions. Some ideas are derived from \"Plan-and-Solve Prompting\" - https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.04091 and the \"babyagi\" project - https:\u002F\u002Fgithub.com\u002Fyoheinakajima\u002Fbabyagi.\u003Cbr>\n8. Evaluating the model's performance using `Ragas` metrics like answer correctness, faithfulness, relevancy, recall, and similarity to ensure high-quality answers.\u003Cbr>\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a pull request or open an issue for any suggestions or improvements.\n\n## 📚 Learn More\n\n- [Lecture Video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=orhV7ZMSRyM&t=33s&ab_channel=DiamantAI)\n- [Blog Post Article](https:\u002F\u002Fopen.substack.com\u002Fpub\u002Fdiamantai\u002Fp\u002Fcontrollable-agent-for-complex-rag?r=336pe4&utm_campaign=post&utm_medium=web)\n\n## 🙏 Acknowledgements\n\nSpecial thanks to Elad Levi for the valuable advice and ideas.\n\n## 📄 License\n\nThis project is licensed under the Apache-2.0 License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n⭐️ If you find this repository helpful, please consider giving it a star!\n\nKeywords: RAG, Retrieval-Augmented Generation, Agent, Langgraph, NLP, AI, Machine Learning, Information Retrieval, Natural Language Processing, LLM, Embeddings, Semantic Search\n","# 面向复杂 RAG 任务的高级可控智能体 🧠📚\n\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n[![欢迎提交 PR](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg?style=flat-square)](http:\u002F\u002Fmakeapullrequest.com)\n[![LinkedIn](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLinkedIn-Connect-blue)](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fnir-diamant-759323134\u002F)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002FNirDiamantAI?label=Follow%20@NirDiamantAI&style=social)](https:\u002F\u002Ftwitter.com\u002FNirDiamantAI)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20our%20community-7289da?style=flat-square&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002F8PSA7s5v)\n\n\n这是一项先进的检索增强生成（RAG）解决方案，旨在应对简单语义相似性检索无法解决的复杂问题。该项目展示了一个复杂的确定性图结构，作为高度可控的自主智能体的“大脑”，能够根据您自己的数据回答非平凡的问题。\n\n![演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_32343cab00dc.gif)\n\n🚀 使用我的 **[Agents Towards Production](https:\u002F\u002Fgithub.com\u002FNirDiamant\u002Fagents-towards-production)** 仓库进一步提升：它提供了以代码为中心的横向教程，覆盖构建生产级生成式 AI 智能体生命周期中的每一个工具和步骤，通过经过验证的模式和可重用蓝图，引导您从想法到规模化落地，是如果您认真考虑将智能体部署到生产环境的理想起点。\n\n📚 探索我的 **[RAG 技术综合指南](https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FRAG_Techniques)**，以补充这一高级智能体实现，并学习更多 RAG 技术。\n\n🤖 探索我的 **[GenAI Agents Repository](https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FGenAI_Agents)**，以补充这一高级智能体实现，并获取更多 AI 智能体的实现与教程。\n\n## 📫 保持更新！\n\n\u003Cdiv align=\"center\">\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">🚀\u003Cbr>\u003Cb>前沿\u003Cbr>资讯\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd align=\"center\">💡\u003Cbr>\u003Cb>专家\u003Cbr>洞见\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd align=\"center\">🎯\u003Cbr>\u003Cb>顶尖 0.1%\u003Cbr>内容\u003C\u002Fb>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n[![订阅 DiamantAI 新闻通讯](assets\u002Fsubscribe-button.svg)](https:\u002F\u002Fdiamantai.substack.com\u002F?r=336pe4&utm_campaign=pub-share-checklist)\n\n*加入超过 20,000 名 AI 爱好者，获取独特的前沿见解和免费教程！* ***此外，订阅用户还可享受我书籍及即将推出的 RAG 技术课程的独家抢先体验和特别 33% 折扣！***\n\u003C\u002Fdiv>\n\n[![DiamantAI 的新闻通讯](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_bd4960312f91.png)](https:\u002F\u002Fdiamantai.substack.com\u002F?r=336pe4&utm_campaign=pub-share-checklist)\n\n\n\u003C!-- https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fblob\u002Fmain\u002Fassets\u002Fvideo_demo.mp4 -->\n\u003C!-- [![YouTube](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_3b182bbb539a.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_73OV1z3sTg) -->\n\n## 🌟 核心特性\n\n- **复杂的确定性图结构**：作为智能体的“大脑”，支持复杂推理。\n- **可控的自主智能体**：能够根据自定义数据集回答非平凡问题。\n- **防止幻觉**：确保答案完全基于提供的数据，避免 AI 幻觉。\n- **多步推理**：将复杂查询分解为可管理的子任务。\n- **自适应规划**：根据新信息持续更新计划。\n- **性能评估**：使用 `Ragas` 指标进行全面的质量评估。\n\n\n## 🧠 工作原理\n![解决方案架构](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_readme_8a289b2c3a95.jpeg)\n\n1. **PDF 加载与处理**：加载 PDF 文档并将其拆分为章节。\n2. **文本预处理**：清理和预处理文本，以便更好地进行摘要生成和编码。\n3. **摘要生成**：利用大型语言模型为每个章节生成详细摘要。\n4. **书籍引文数据库创建**：为需要访问书中引文的具体问题创建数据库。\n5. **向量存储编码**：将书籍内容和章节摘要编码为向量存储，以实现高效检索。\n6. **问题处理**：\n   - 将问题中的命名实体替换为变量以匿名化。\n   - 生成回答匿名化问题的高层次计划。\n   - 对计划去匿名化，并将其分解为可检索或可直接回答的任务。\n7. **任务执行**：\n   - 对于每个任务，根据上下文决定是检索信息还是直接作答。\n   - 如果需要检索，则从向量存储中获取相关信息并提炼。\n   - 如果直接作答，则使用链式思维生成响应。\n8. **验证与重新规划**：\n   - 验证生成的内容是否基于原始上下文。\n   - 根据新信息重新规划剩余步骤。\n9. **最终答案生成**：结合积累的上下文和链式思维生成最终答案。\n\n## 📊 评估\n\n该解决方案使用 `Ragas` 指标进行评估：\n- 答案正确性\n- 忠实度\n- 答案相关性\n- 上下文召回率\n- 答案相似性\n\n## 🔍 使用场景：哈利·波特书籍分析\n\n该算法使用第一本《哈利·波特》书籍进行了测试，从而可以监控模型对检索信息与预训练知识的依赖程度。这一选择使我们能够验证模型是在使用其预训练知识，还是严格依赖向量存储中的检索信息。\n\n### 示例问题\n**问：主角是如何击败反派的助手的？**\n\n要解答这个问题，需要以下步骤：\n\n1. 确定故事情节中的主角。\n2. 确定反派。\n3. 确定反派的助手。\n4. 寻找主角与反派之间的对抗或互动。\n5. 推断出导致主角击败助手的原因。\n\n智能体能够分解并解决此类复杂查询，充分展示了其强大的推理能力。\n\n## 🚀 开始使用\n\n### 前置条件\n\n- Python 3.8+\n- 您所选 LLM 提供商的 API 密钥\n\n### 安装（不使用 Docker）\n\n1. 克隆仓库：\n   ```sh\n   git clone https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent.git\n   cd Controllable-RAG-Agent\n   ```\n2. 设置环境变量：\n   在根目录下创建一个 `.env` 文件，并填入您的 API 密钥：\n   ```\n   OPENAI_API_KEY=\n   GROQ_API_KEY=\n   ```\n   您可以参考 `.env.example` 文件作为示例。\n\n## 使用 Docker\n3. 运行以下命令构建 Docker 镜像：\n   ```sh\n   docker-compose up --build\n   ```\n\n## 安装（不使用 Docker）\n3. 安装所需软件包：\n   ```sh\n   pip install -r requirements.txt\n   ```\n\n### 使用\n\n1. 浏览分步教程：`sophisticated_rag_agent_harry_potter.ipynb`\n\n2. 运行实时智能体可视化（不使用 Docker）：\n   ```sh\n   streamlit run simulate_agent.py\n   ```\n\n3. 运行实时智能体可视化（使用 Docker）：\n   打开浏览器并访问 `http:\u002F\u002Flocalhost:8501\u002F`\n\n## 🛠️ 使用的技术\n\n- LangChain\n- FAISS 向量存储\n- Streamlit（用于可视化）\n- Ragas（用于评估）\n- 灵活集成多种大语言模型（例如 OpenAI GPT 模型、Groq 或您选择的其他模型）\n\n## 💡 启发式方法与技术\n\n1. 对书籍内容按块进行编码，同时结合由大语言模型生成的章节摘要和书中的引文。\u003Cbr>\n2. 对问题进行匿名化处理，以创建一个通用计划，避免任何参与的大语言模型产生偏见或先验知识。\u003Cbr>\n3. 将计划中的每项任务分解为可由自定义函数执行的部分，实现完全可控的操作。\u003Cbr>\n4. 对检索到的内容进行提炼，以提升大语言模型生成的质量和准确性，从而减少幻觉现象。\u003Cbr>\n5. 基于上下文，采用思维链方法回答问题，该方法包含正面和负面示例，旨在得出经过充分推理的答案，而非简单的直接回复。\u003Cbr>\n6. 按照《Self-RAG：通过自我反思学习检索、生成和批判》一文中的建议，进行内容验证和无幻觉验证——https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.11511。\u003Cbr>\n7. 利用由大语言模型持续更新的计划来解决复杂问题。部分思路源自《Plan-and-Solve Prompting》——https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.04091 以及“babyagi”项目——https:\u002F\u002Fgithub.com\u002Fyoheinakajima\u002Fbabyagi。\u003Cbr>\n8. 使用 `Ragas` 的各项指标（如答案正确性、忠实度、相关性、召回率和相似度）评估模型性能，确保输出高质量的答案。\u003Cbr>\n\n## 🤝 贡献\n\n欢迎各位贡献！如有任何建议或改进，请随时提交拉取请求或新建议题。\n\n## 📚 了解更多\n\n- [讲座视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=orhV7ZMSRyM&t=33s&ab_channel=DiamantAI)\n- [博客文章](https:\u002F\u002Fopen.substack.com\u002Fpub\u002Fdiamantai\u002Fp\u002Fcontrollable-agent-for-complex-rag?r=336pe4&utm_campaign=post&utm_medium=web)\n\n## 🙏 致谢\n\n特别感谢 Elad Levi 提供的宝贵建议和创意。\n\n## 📄 许可证\n\n本项目采用 Apache-2.0 许可证授权——详情请参阅 [LICENSE](LICENSE) 文件。\n\n---\n\n⭐️ 如果您觉得这个仓库很有帮助，请考虑给它点个赞！\n\n关键词：RAG、检索增强生成、智能体、Langgraph、NLP、AI、机器学习、信息检索、自然语言处理、LLM、嵌入、语义搜索","# Controllable-RAG-Agent 快速上手指南\n\nControllable-RAG-Agent 是一个高级的检索增强生成（RAG）解决方案，专为解决简单语义检索无法处理的复杂问题而设计。它通过确定性的图谱作为“大脑”，将复杂查询拆解为可执行的子任务，有效防止幻觉，确保回答严格基于提供的数据。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n- **操作系统**：Linux, macOS 或 Windows\n- **Python 版本**：3.8 或更高版本\n- **API 密钥**：您需要拥有所选大语言模型（LLM）提供商的 API Key（如 OpenAI 或 Groq）\n- **依赖管理**：建议安装 `pip` 和 `git`\n\n## 安装步骤\n\n### 1. 克隆项目\n首先，将代码仓库克隆到本地并进入项目目录：\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent.git\ncd Controllable-RAG-Agent\n```\n\n### 2. 配置环境变量\n在项目根目录下创建 `.env` 文件，并填入您的 API 密钥。您可以参考 `.env.example` 文件格式：\n\n```sh\n# 创建 .env 文件\ntouch .env\n\n# 编辑 .env 文件，填入以下内容（替换为您的真实 Key）\nOPENAI_API_KEY=your_openai_api_key_here\nGROQ_API_KEY=your_groq_api_key_here\n```\n\n### 3. 安装依赖\n您可以选择直接使用 Python 环境安装，或使用 Docker 运行。\n\n#### 方式 A：直接使用 Python 安装（推荐用于开发调试）\n安装项目所需的 Python 包：\n\n```sh\npip install -r requirements.txt\n```\n> **提示**：国内用户若下载较慢，可使用清华源加速：\n> `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n#### 方式 B：使用 Docker 运行（推荐用于快速体验）\n如果您已安装 Docker 和 Docker Compose，可直接构建并启动容器：\n\n```sh\ndocker-compose up --build\n```\n\n## 基本使用\n\n安装完成后，您可以通过以下两种方式体验该工具：\n\n### 1. 运行交互式教程（Jupyter Notebook）\n项目包含一个基于《哈利·波特》书籍数据的完整分步教程，适合深入理解代理的工作流程：\n\n- 打开文件：`sophisticated_rag_agent_harry_potter.ipynb`\n- 在 Jupyter Lab 或 VS Code 中按顺序执行单元格即可运行。\n\n### 2. 启动实时可视化界面 (Streamlit)\n该项目提供了一个 Streamlit 应用，用于实时展示代理的思考过程和任务执行步骤。\n\n#### 如果使用 Python 环境：\n在终端运行以下命令启动服务：\n\n```sh\nstreamlit run simulate_agent.py\n```\n启动后，浏览器会自动打开 `http:\u002F\u002Flocalhost:8501\u002F`。\n\n#### 如果使用 Docker 环境：\n无需额外命令，直接在浏览器访问：\n\n```text\nhttp:\u002F\u002Flocalhost:8501\u002F\n```\n\n### 使用示例逻辑\n在界面或 Notebook 中，您可以尝试输入复杂问题，例如：\n> \"主角是如何击败反派助手的？\"\n\n代理将自动执行以下步骤：\n1. 识别主角、反派及其助手。\n2. 制定检索计划并拆解任务。\n3. 从向量数据库中检索相关章节摘要和原文引用。\n4. 通过思维链（Chain-of-Thought）推理生成最终答案，并验证是否产生幻觉。","某金融合规团队需要从数百页的复杂监管政策 PDF 中，快速提取并验证特定条款的跨章节关联信息，以应对紧急审计。\n\n### 没有 Controllable-RAG-Agent 时\n- **检索碎片化**：传统语义搜索只能找到关键词匹配的单一段落，无法理解“第 3 章例外情况”与“第 7 章处罚标准”之间的逻辑依赖，导致答案支离破碎。\n- **幻觉风险高**：大模型在缺乏确切依据时容易“脑补”不存在的条款关联，生成看似合理但完全错误的合规建议，带来巨大法律风险。\n- **过程黑盒化**：开发人员无法干预或追踪模型的推理路径，当回答出错时，难以定位是检索失败还是逻辑判断失误，调试极其困难。\n- **复杂问题束手无策**：面对需要多步推理的问题（如“若满足 A 条件但违反 B 条款，应适用哪种罚则？”），系统往往直接返回无关内容或拒绝回答。\n\n### 使用 Controllable-RAG-Agent 后\n- **图谱化逻辑推理**：利用确定性知识图谱作为“大脑”，自动将复杂问题拆解为子任务，精准串联起分散在不同章节的条款逻辑，输出完整推导链条。\n- **严格基于事实**：强制代理仅依据提供的文档数据作答，通过引用原文片段彻底杜绝幻觉，确保每一条合规结论都有据可查。\n- **全流程可控可视**：开发者可以清晰看到代理的规划、检索和执行步骤，随时介入调整策略，让复杂的推理过程变得透明且可调试。\n- **自适应多步求解**：面对多层级嵌套问题，系统能动态更新执行计划，像专家一样逐步分析条件冲突，最终给出准确的判罚建议。\n\nControllable-RAG-Agent 通过将不可控的生成式 AI 转化为基于图谱的可信推理代理，彻底解决了复杂文档问答中的准确性与透明度难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNirDiamant_Controllable-RAG-Agent_ae779d12.png","NirDiamant",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNirDiamant_846222c2.jpg","GenAI Consultant | Open Source Hub | Upwork: upwork.com\u002Ffreelancers\u002F~016cfe264764ea59ba","DiamantAI","NirDiamantAI","https:\u002F\u002Fdiamantai.substack.com","https:\u002F\u002Fgithub.com\u002FNirDiamant",[81,85],{"name":82,"color":83,"percentage":84},"Jupyter Notebook","#DA5B0B",88.2,{"name":86,"color":87,"percentage":88},"Python","#3572A5",11.8,1576,257,"2026-04-05T19:18:45","Apache-2.0","未说明",{"notes":95,"python":96,"dependencies":97},"该项目支持通过 Docker 或非 Docker 方式运行。非 Docker 运行需安装 requirements.txt 中的依赖。需要配置 LLM 提供商的 API 密钥（如 OpenAI 或 Groq）。项目包含用于实时可视化的 Streamlit 应用，并使用了 Ragas 进行性能评估。具体显存和内存需求取决于所选用的大语言模型及处理的数据量，README 中未给出具体数值。","3.8+",[98,99,100,101,102,103],"LangChain","FAISS","Streamlit","Ragas","OpenAI API","Groq API",[13,35,14],[106,107,108,109,110,111,112,113,114,115],"advanced-rag","agent","llm","rag","langchain","langgraph","openai","python","genai","llms","2026-03-27T02:49:30.150509","2026-04-06T17:24:50.534171",[119,124,129,134,139,144],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},19635,"运行 streamlit 时遇到 LangChain 导入弃用警告或错误，如何解决？","这是因为 LangChain 更新了包结构。需要修改代码中的导入路径：\n1. 将 `from langchain.vectorstores import FAISS` 替换为 `from langchain_community.vectorstores import FAISS`。\n2. 将 `from langchain.embeddings import OpenAIEmbeddings` 替换为 `from langchain_community.embeddings import OpenAIEmbeddings`。\n3. 如果涉及 Pydantic v1 的警告，请将 `from langchain_core.pydantic_v1 import BaseModel` 替换为 `from pydantic import BaseModel` 或 `from pydantic.v1 import BaseModel`。\n此外，某些 Python 包可能需要安装 Rust 环境。可以在 Dockerfile 中添加以下命令来安装 Rust：\n`RUN curl https:\u002F\u002Fsh.rustup.rs -sSf | sh -s -- -y`\n并确保环境变量包含 Cargo 路径：`ENV PATH=\"\u002Froot\u002F.cargo\u002Fbin:${PATH}\"`。","https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fissues\u002F11",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},19636,"在 macOS 上安装依赖时提示找不到 pywin32 包，怎么办？","`pywin32` 是专为 Windows 系统设计的包，在 macOS 或 Linux 上无法安装也不需要安装。维护者已确认该依赖仅用于 Windows。如果是跨平台项目，通常需要通过条件判断仅在 Windows 环境下安装此包，或者等待维护者更新 requirements.txt 以区分操作系统依赖。目前可以通过手动编辑依赖列表，在非 Windows 系统上移除 `pywin32` 来绕过此错误。","https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fissues\u002F12",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},19637,"项目是否必须使用 Groq API Key？能否只使用 OpenAI Key？","项目支持灵活集成多种大语言模型（如 OpenAI、Groq 等），并不强制要求使用 Groq。如果在运行示例代码（如 Harry Potter 笔记本）时遇到 `NameError: name 'groq_api_key' is not defined` 错误，是因为示例代码中硬编码了 Groq 的调用逻辑。若只想使用 OpenAI，需要手动修改代码，将模型初始化部分从 Groq 客户端改为 OpenAI 客户端，并传入相应的 `openai_api_key`，同时移除对 `groq_api_key` 的引用。","https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fissues\u002F23",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},19638,"运行示例代码时需要哪里获取测试用的 PDF 书籍文件？","你可以使用任何 PDF 文件进行测试。维护者建议可以使用公开的书籍文本，例如 GitHub 上其他项目提供的《哈利·波特》PDF 文件。需要注意的是，项目的分块算法是按章节分割的，因此请确保所选 PDF 文件的格式能够被正确解析和分章，否则可能影响检索效果。","https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fissues\u002F22",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},19639,"运行 Agent 时出现 \"Invalid json output\" 解析错误，原因是什么？","该错误通常发生在 LLM 返回的内容不符合预期的 JSON 格式时。例如，模型可能返回了一段自然的对话文本（如 \"I'm happy to help!...\"）而不是严格的 JSON 对象。这可能是因为提示词（Prompt）不够明确，或者模型未能理解输出约束。解决方法包括：优化 System Prompt 以强制要求仅输出 JSON；检查输入上下文是否完整；或者在代码中添加重试机制，当解析失败时重新请求模型生成。","https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fissues\u002F24",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},19640,"Windows 下安装依赖时出现大量重复下载或缓存读取信息，是否正常？","这是正常现象。`pip` 在安装过程中会显示正在收集（Collecting）和使用缓存（Using cached）的信息。看到 \"Using cached...\" 表示该包的轮文件（wheel）已存在于本地缓存中，无需重新下载，这会加快安装速度。只要最后没有报错（ERROR），即使列表很长也说明安装过程正在按预期进行。","https:\u002F\u002Fgithub.com\u002FNirDiamant\u002FControllable-RAG-Agent\u002Fissues\u002F21",[]]