[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-KruxAI--ragbuilder":3,"tool-KruxAI--ragbuilder":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 真正成长为懂上",141543,2,"2026-04-06T11:32:54",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[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},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":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"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":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":76,"owner_url":77,"languages":78,"stars":106,"forks":107,"last_commit_at":108,"license":109,"difficulty_score":32,"env_os":110,"env_gpu":110,"env_ram":110,"env_deps":111,"category_tags":119,"github_topics":120,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":124,"updated_at":125,"faqs":126,"releases":157},4644,"KruxAI\u002Fragbuilder","ragbuilder","A toolkit to create optimal Production-readyRetrieval Augmented Generation(RAG) setup for your data","RagBuilder 是一款专为构建生产级检索增强生成（RAG）系统而设计的自动化工具包。它旨在解决开发者在搭建 RAG 应用时面临的配置难题：面对分块策略、切片大小等众多超参数，人工调优往往耗时费力且难以找到最优解。RagBuilder 通过引入贝叶斯优化算法，自动对各类 RAG 参数进行大规模测试与评估，结合内置的先进模板（如图检索器、上下文分块器等），能快速从您的数据中筛选出性能最佳的配置方案。\n\n这款工具特别适合 AI 工程师、后端开发者及研究人员使用。无论是希望快速验证想法的原型开发，还是追求高稳定性的生产环境部署，RagBuilder 都能显著降低技术门槛。其独特亮点在于支持合成测试数据集的自动生成，允许用户在无标注数据的情况下完成效果评估；同时提供完整的流水线持久化功能与便捷的 API 部署能力。只需几行代码，用户即可导入数据，让 RagBuilder 在几分钟内生成并交付一个经过深度优化的定制化 RAG 系统，让大模型应用落地变得更加高效可靠。","![RagBuilder logo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_0a7ac053fb07.png)\n![RagBuilder logo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_d0da7c498f82.png)\n\n# \n\n[![made-with-python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMade%20with-Python-1f425f.svg)](https:\u002F\u002Fwww.python.org\u002F)\n[![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002FKruxAI\u002Fragbuilder.svg)](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Freleases\u002F)\n[![GitHub license](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_90be571d20b0.png)](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fblob\u002Fmaster\u002FLICENSE)\n[![GitHub commits](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_adbcfed1e6da.png)](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcommit\u002F)\n\n\n![11926](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_788251a4ea4c.png)\n\nRagBuilder is a toolkit that helps you create optimal Production-ready Retrieval-Augmented-Generation (RAG) setup for your data automatically. By performing hyperparameter tuning on various RAG parameters (Eg: chunking strategy: semantic, character etc., chunk size: 1000, 2000 etc.), RagBuilder evaluates these configurations against a test dataset to identify the best-performing setup for your data. Additionally, RagBuilder includes several state-of-the-art, pre-defined RAG templates that have shown strong performance across diverse datasets. So just bring your data, and RagBuilder will generate a production-grade RAG setup in just minutes.\n\n\n## Features\n\n- **Hyperparameter Tuning**: Efficiently optimize your RAG configurations using Bayesian optimization\n- **Pre-defined RAG Templates**: Use state-of-the-art templates that have demonstrated strong performance Eg: Graph retriever, Contextual chunker etc.)\n- **Evaluation Dataset Options**: Generate synthetic test dataset or provide your own\n- **Component Access**: Direct access to vectorstore, retriever, and generator components\n- **API Deployment**: Easily deploy as an API service\n- **Project Persistence**: Save and load optimized RAG pipelines\n\n\n## Installation\n\n```bash\n# Create a new venv\nuv venv ragbuilder\n\n# Activate the new venv\nsource ragbuilder\u002Fbin\u002Factivate\n\n# Install\nuv pip install ragbuilder\n```\n\nSee other installation options here ([link](https:\u002F\u002Fdocs.ragbuilder.io\u002Fquickstart\u002F#installation))\n\n## Quick Start\n\n```python\nfrom ragbuilder import RAGBuilder\n\n# Initialize and optimize with defaults\nbuilder = RAGBuilder.from_source_with_defaults(input_source='https:\u002F\u002Flilianweng.github.io\u002Fposts\u002F2023-06-23-agent\u002F')\nresults = builder.optimize()\n\n# Run a query through the complete pipeline\nresponse = results.invoke(\"What is HNSW?\")\n\n# View optimization summary\nprint(results.summary())\n```\n\n### Setting Default Models\n\nYou can specify default LLM and embedding models that will be used throughout the pipeline:\n\n`````python\nfrom langchain_openai import AzureChatOpenAI, AzureOpenAIEmbeddings\n\n# Initialize with custom defaults\nbuilder = RAGBuilder.from_source_with_defaults(\n    input_source='data.pdf',\n    default_llm=AzureChatOpenAI(model=\"gpt-4o\", temperature=0.0),\n    default_embeddings=AzureOpenAIEmbeddings(model=\"text-embedding-3-large\"),\n    n_trials=20  # Set number of optimization trials\n)\n\n# Or when creating a RAGBuilder instance with fine grained custom configuration\nbuilder = RAGBuilder(\n    data_ingest_config=data_ingest_config, # Custom Data Ingestion parameters\n    default_llm=AzureChatOpenAI(model=\"gpt-4o\", temperature=0.0),\n    default_embeddings=AzureOpenAIEmbeddings(model=\"text-embedding-3-large\")\n)\n`````\n\n## Configuration Guide\n\n### Basic Configuration\nFor most use cases, the default configuration provides good results:\n\n```python\nbuilder = RAGBuilder.from_source_with_defaults(\n    input_source='path\u002Fto\u002Fyour\u002Fdata',\n    test_dataset='path\u002Fto\u002Ftest\u002Fdata'  # Optional\n)\n```\n\n## Advanced Configuration\n\nFor fine-grained control over your RAG pipeline, you can customize every aspect:\n\n````python\nfrom ragbuilder.config import (\n    DataIngestOptionsConfig,\n    RetrievalOptionsConfig,\n    GenerationOptionsConfig\n)\n\n# Configure data ingestion\ndata_ingest_config = DataIngestOptionsConfig(\n    input_source=\"data.pdf\",\n    document_loaders=[\n        {\"type\": \"pymupdf\"},\n        {\"type\": \"unstructured\"}\n    ],\n    chunking_strategies=[{\n        \"type\": \"RecursiveCharacterTextSplitter\",\n        \"chunker_kwargs\": {\"separators\": [\"\\n\\n\", \"\\n\", \" \", \"\"]}\n    }],\n    chunk_size={\"min\": 500, \"max\": 2000, \"stepsize\": 500},\n    embedding_models=[{\n        \"type\": \"openai\",\n        \"model_kwargs\": {\"model\": \"text-embedding-3-large\"}\n    }]\n)\n\n# Initialize with custom configs\nbuilder = RAGBuilder(\n    data_ingest_config=data_ingest_config,\n    default_llm=AzureChatOpenAI(model=\"gpt-4o\", temperature=0.0),\n    default_embeddings=AzureOpenAIEmbeddings(model=\"text-embedding-3-large\")\n)\n\n# Run individual module level optimization\nbuilder.optimize_data_ingest()\n\n\n# Configure retrieval options\nretrieval_config = RetrievalOptionsConfig(\n    retrievers=[\n        {\n            \"type\": \"vector_similarity\",\n            \"retriever_k\": [20],\n            \"weight\": 0.5\n        },\n        {\n            \"type\": \"bm25\",\n            \"retriever_k\": [20],\n            \"weight\": 0.5\n        }\n    ],\n    rerankers=[{\n        \"type\": \"BAAI\u002Fbge-reranker-base\"\n    }],\n    top_k=[3, 5]\n)\n\n\n# Run retrieval optimization with custom config\nbuilder.optimize_retrieval(retrieval_config)\n\n# Configure Generation related options\ngen_config = GenerationOptionsConfig(\n    llms = [\n        LLMConfig(type=\"azure_openai\", model_kwargs={'model':'gpt-4o-mini', 'temperature':0.2}),\n        LLMConfig(type=\"azure_openai\", model_kwargs={'model':'gpt-4o', 'temperature':0.2}),\n    ],\n    optimization={\n        \"n_trials\": 10, \n        \"n_jobs\": 1,\n        \"study_name\": \"lillog_agents_study\",\n        \"optimization_direction\": \"maximize\"\n    },\n    evaluation_config={\"type\": \"ragas\"},\n)\n\n# Run generation optimization with custom config\nbuilder.optimize_generation(gen_config)\n\nresults = builder.optimization_results\nresponse = adv_results.invoke(\"What is HNSW?\")\n````\n\n\n## Component Options Reference\n\n### Document Loaders\n- `unstructured`: General-purpose loader\n- `pymupdf`: Optimized for PDFs\n- `pypdf`: Alternative PDF loader\n- `web`: Web page loader\n- Custom loaders via `custom_class`\n\n### Chunking Strategies\n- `RecursiveCharacterTextSplitter`: Recursive character text splitter\n- `CharacterTextSplitter`: Character text splitter\n- `MarkdownHeaderTextSplitter`: Markdown-header based splitter\n- `HTMLHeaderTextSplitter`: HTML-header based splitter\n- `SemanticChunker`: Semantic chunker\n- `TokenTextSplitter`: Token-based splitter\n- Custom splitters via `custom_class`\n\n\n### Retrievers\n- `vector_similarity`: Vector similarity search\n- `vector_mmr`: Vector MMR search\n- `bm25`: Keyword-based search using BM25\n- `multi_query`: Multi-query retrievers\n- `parent_doc_full`: Parent document full-doc retrieval\n- `parent_doc_large`: Parent document large-chunks retrieval\n- `graph`: Graph-based retrieval (requires Neo4j)\n- Custom retrievers via `custom_class`\n\n### Rerankers\n- `BAAI\u002Fbge-reranker-base`: BGE base reranker\n- `mixedbread-ai\u002Fmxbai-rerank-base-v1`: mxbai reranker base v1\n- `mixedbread-ai\u002Fmxbai-rerank-large-v1`: mxbai reranker large v1\n- `cohere`: Cohere's reranking model\n- `jina`: Jina reranker\n- `flashrank`: Flaskrank reranker\n- `rankllm`: RankLLM reranker\n- `colbert`: Colbert reranker\n- Custom rerankers via `custom_class`\n\n\n## Environment Variables\n\nCreate a `.env` file in your project directory:\n\n````env\n# Required\nOPENAI_API_KEY=your_key_here\n\n# Optional - For additional features\nMISTRAL_API_KEY=your_key_here\nCOHERE_API_KEY=your_key_here\nAZURE_OPENAI_API_KEY=your_key_here\nAZURE_OPENAI_ENDPOINT=your_endpoint_here\n\n# For Graph-based RAG\nNEO4J_URI=bolt:\u002F\u002Flocalhost:7687\nNEO4J_USERNAME=neo4j\nNEO4J_PASSWORD=your_password\n````\n\n## Advanced Topics\n\n### Custom Evaluation Metrics\n```python\nfrom ragbuilder import EvaluationConfig\n\nconfig = EvaluationConfig(\n    type=\"custom\",\n    custom_class=\"your_module.CustomEvaluator\",\n    evaluator_kwargs={\n        \"metrics\": [\"precision\", \"recall\", \"f1_score\"]\n    }\n)\n```\n\n### Optimization Configuration\nFine-tune the optimization parameters:\n```python\nfrom ragbuilder import OptimizationConfig\n\nconfig = OptimizationConfig(\n    n_trials=20,\n    n_jobs=1,\n    study_name=\"my_optimization\",\n    optimization_direction=\"maximize\"\n)\n```\n\n## API Deployment\n\nRAGBuilder can be deployed as an API service:\n\n````python\n# Initialize and optimize\nbuilder = RAGBuilder.from_source_with_defaults('data.pdf')\nresults = builder.optimize()\n\n# Deploy as API\nbuilder.serve(host=\"0.0.0.0\", port=8000)\n````\n\nAccess via:\n- `POST \u002Fquery` - Run queries through the RAG pipeline\n\n## Project Management\n\nSave and load optimized RAG pipelines:\n\n````python\n# Save project\nbuilder.save('rag_project\u002F')\n\n# Load existing project\nbuilder = RAGBuilder.load('rag_project\u002F')\n\n# Access components\nvectorstore = builder.data_ingest.get_vectorstore()\nretriever = builder.retrieval.get_retriever()\ngenerator = builder.generation.get_generator()\n````\n\n## Best Practices\n\n1. **Start Simple**\n   - Begin with `from_source_with_defaults()`\n   - Add complexity only when needed\n\n2. **Test Data Quality**\n   - Provide representative test queries\n   - Use domain-specific evaluation metrics\n\n3. **Resource Management**\n   - Monitor memory usage with large datasets\n   - Use chunking for large documents\n\n4. **Production Deployment**\n   - Save optimized projects for reuse\n   - Monitor API performance metrics\n   - Implement rate limiting for API endpoints\n\n## Usage Analytics\n\nWe collect anonymous usage metrics to improve RAGBuilder:\n- Number of optimization runs\n- Success\u002Ffailure rates\n- No personal or business data is collected\n\nTo opt-out set `ENABLE_ANALYTICS=False` in `.env`:\n\n## Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","![RagBuilder 标志](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_0a7ac053fb07.png)\n![RagBuilder 标志](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_d0da7c498f82.png)\n\n#\n\n[![由 Python 制作](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMade%20with-Python-1f425f.svg)](https:\u002F\u002Fwww.python.org\u002F)\n[![GitHub 发布](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002FKruxAI\u002Fragbuilder.svg)](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Freleases\u002F)\n[![GitHub 许可证](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_90be571d20b0.png)](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fblob\u002Fmaster\u002FLICENSE)\n[![GitHub 提交次数](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_adbcfed1e6da.png)](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcommit\u002F)\n\n\n![11926](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_readme_788251a4ea4c.png)\n\nRagBuilder 是一个工具包，可自动为您的数据创建最优的生产就绪型检索增强生成（RAG）配置。通过在各种 RAG 参数上进行超参数调优（例如：语义分块、字符分块等分块策略；1000 字、2000 字等分块大小），RagBuilder 会根据测试数据集评估这些配置，从而找出最适合您数据的方案。此外，RagBuilder 还包含多个最先进的预定义 RAG 模板，这些模板在不同数据集上均表现出色。因此，您只需提供数据，RagBuilder 就能在几分钟内生成一个生产级的 RAG 配置。\n\n## 特性\n\n- **超参数调优**：使用贝叶斯优化高效地优化您的 RAG 配置\n- **预定义 RAG 模板**：使用经过验证的高性能模板，如图检索器、上下文分块器等\n- **评估数据集选项**：生成合成测试数据集或使用您自己的数据集\n- **组件访问**：直接访问向量存储、检索器和生成器组件\n- **API 部署**：轻松部署为 API 服务\n- **项目持久化**：保存和加载优化后的 RAG 流程\n\n## 安装\n\n```bash\n# 创建一个新的虚拟环境\nuv venv ragbuilder\n\n# 激活新虚拟环境\nsource ragbuilder\u002Fbin\u002Factivate\n\n# 安装\nuv pip install ragbuilder\n```\n\n更多安装选项请参见此处（[链接](https:\u002F\u002Fdocs.ragbuilder.io\u002Fquickstart\u002F#installation)）\n\n## 快速入门\n\n```python\nfrom ragbuilder import RAGBuilder\n\n# 使用默认设置初始化并优化\nbuilder = RAGBuilder.from_source_with_defaults(input_source='https:\u002F\u002Flilianweng.github.io\u002Fposts\u002F2023-06-23-agent\u002F')\nresults = builder.optimize()\n\n# 通过完整流程运行查询\nresponse = results.invoke(\"什么是 HNSW？\")\n\n# 查看优化摘要\nprint(results.summary())\n```\n\n### 设置默认模型\n\n您可以指定在整个流程中使用的默认 LLM 和嵌入模型：\n\n`````python\nfrom langchain_openai import AzureChatOpenAI, AzureOpenAIEmbeddings\n\n# 使用自定义默认值初始化\nbuilder = RAGBuilder.from_source_with_defaults(\n    input_source='data.pdf',\n    default_llm=AzureChatOpenAI(model=\"gpt-4o\", temperature=0.0),\n    default_embeddings=AzureOpenAIEmbeddings(model=\"text-embedding-3-large\"),\n    n_trials=20  # 设置优化试验次数\n)\n\n# 或者在创建具有精细自定义配置的 RAGBuilder 实例时\nbuilder = RAGBuilder(\n    data_ingest_config=data_ingest_config, # 自定义数据摄入参数\n    default_llm=AzureChatOpenAI(model=\"gpt-4o\", temperature=0.0),\n    default_embeddings=AzureOpenAIEmbeddings(model=\"text-embedding-3-large\")\n)\n````\n\n## 配置指南\n\n### 基本配置\n对于大多数用例，使用默认配置即可获得良好效果：\n\n```python\nbuilder = RAGBuilder.from_source_with_defaults(\n    input_source='path\u002Fto\u002Fyour\u002Fdata',\n    test_dataset='path\u002Fto\u002Ftest\u002Fdata'  # 可选\n)\n```\n\n## 高级配置\n\n如果您需要对 RAG 流程进行更精细的控制，可以自定义每个环节：\n\n````python\nfrom ragbuilder.config import (\n    DataIngestOptionsConfig,\n    RetrievalOptionsConfig,\n    GenerationOptionsConfig\n)\n\n# 配置数据摄入\ndata_ingest_config = DataIngestOptionsConfig(\n    input_source=\"data.pdf\",\n    document_loaders=[\n        {\"type\": \"pymupdf\"},\n        {\"type\": \"unstructured\"}\n    ],\n    chunking_strategies=[{\n        \"type\": \"RecursiveCharacterTextSplitter\",\n        \"chunker_kwargs\": {\"separators\": [\"\\n\\n\", \"\\n\", \" \", \"\"]}\n    }],\n    chunk_size={\"min\": 500, \"max\": 2000, \"stepsize\": 500},\n    embedding_models=[{\n        \"type\": \"openai\",\n        \"model_kwargs\": {\"model\": \"text-embedding-3-large\"}\n    }]\n)\n\n# 使用自定义配置初始化\nbuilder = RAGBuilder(\n    data_ingest_config=data_ingest_config,\n    default_llm=AzureChatOpenAI(model=\"gpt-4o\", temperature=0.0),\n    default_embeddings=AzureOpenAIEmbeddings(model=\"text-embedding-3-large\")\n)\n\n# 运行单个模块级别的优化\nbuilder.optimize_data_ingest()\n\n\n# 配置检索选项\nretrieval_config = RetrievalOptionsConfig(\n    retrievers=[\n        {\n            \"type\": \"vector_similarity\",\n            \"retriever_k\": [20],\n            \"weight\": 0.5\n        },\n        {\n            \"type\": \"bm25\",\n            \"retriever_k\": [20],\n            \"weight\": 0.5\n        }\n    ],\n    rerankers=[{\n        \"type\": \"BAAI\u002Fbge-reranker-base\"\n    }],\n    top_k=[3, 5]\n)\n\n\n# 使用自定义配置运行检索优化\nbuilder.optimize_retrieval(retrieval_config)\n\n# 配置生成相关选项\ngen_config = GenerationOptionsConfig(\n    llms = [\n        LLMConfig(type=\"azure_openai\", model_kwargs={'model':'gpt-4o-mini', 'temperature':0.2}),\n        LLMConfig(type=\"azure_openai\", model_kwargs={'model':'gpt-4o', 'temperature':0.2}),\n    ],\n    optimization={\n        \"n_trials\": 10, \n        \"n_jobs\": 1,\n        \"study_name\": \"lillog_agents_study\",\n        \"optimization_direction\": \"maximize\"\n    },\n    evaluation_config={\"type\": \"ragas\"},\n)\n\n# 使用自定义配置运行生成优化\nbuilder.optimize_generation(gen_config)\n\nresults = builder.optimization_results\nresponse = adv_results.invoke(\"什么是 HNSW？\")\n````\n\n\n## 组件选项参考\n\n### 文档加载器\n- `unstructured`: 通用加载器\n- `pymupdf`: 针对 PDF 优化\n- `pypdf`: 另一种 PDF 加载器\n- `web`: 网页加载器\n- 通过 `custom_class` 支持自定义加载器\n\n### 分块策略\n- `RecursiveCharacterTextSplitter`: 递归字符文本分割器\n- `CharacterTextSplitter`: 字符文本分割器\n- `MarkdownHeaderTextSplitter`: 基于 Markdown 标题的分割器\n- `HTMLHeaderTextSplitter`: 基于 HTML 标题的分割器\n- `SemanticChunker`: 语义分块器\n- `TokenTextSplitter`: 基于 token 的分割器\n- 通过 `custom_class` 支持自定义分割器\n\n\n### 检索器\n- `vector_similarity`: 向量相似度搜索\n- `vector_mmr`: 向量 MMR 搜索\n- `bm25`: 基于 BM25 的关键词搜索\n- `multi_query`: 多查询检索器\n- `parent_doc_full`: 父文档全篇检索\n- `parent_doc_large`: 父文档大块检索\n- `graph`: 基于图的检索（需 Neo4j）\n- 通过 `custom_class` 支持自定义检索器\n\n### 重排序器\n- `BAAI\u002Fbge-reranker-base`: BGE 基础重排序器\n- `mixedbread-ai\u002Fmxbai-rerank-base-v1`: mxbai 重排序器基础版 v1\n- `mixedbread-ai\u002Fmxbai-rerank-large-v1`: mxbai 重排序器大模型版 v1\n- `cohere`: Cohere 的重排序模型\n- `jina`: Jina 重排序器\n- `flashrank`: Flaskrank 重排序器\n- `rankllm`: RankLLM 重排序器\n- `colbert`: Colbert 重排序器\n- 通过 `custom_class` 自定义重排序器\n\n\n## 环境变量\n\n在你的项目目录中创建一个 `.env` 文件：\n\n````env\n# 必需\nOPENAI_API_KEY=your_key_here\n\n# 可选 - 用于附加功能\nMISTRAL_API_KEY=your_key_here\nCOHERE_API_KEY=your_key_here\nAZURE_OPENAI_API_KEY=your_key_here\nAZURE_OPENAI_ENDPOINT=your_endpoint_here\n\n# 用于基于图的 RAG\nNEO4J_URI=bolt:\u002F\u002Flocalhost:7687\nNEO4J_USERNAME=neo4j\nNEO4J_PASSWORD=your_password\n````\n\n## 高级主题\n\n### 自定义评估指标\n```python\nfrom ragbuilder import EvaluationConfig\n\nconfig = EvaluationConfig(\n    type=\"custom\",\n    custom_class=\"your_module.CustomEvaluator\",\n    evaluator_kwargs={\n        \"metrics\": [\"precision\", \"recall\", \"f1_score\"]\n    }\n)\n```\n\n### 优化配置\n微调优化参数：\n```python\nfrom ragbuilder import OptimizationConfig\n\nconfig = OptimizationConfig(\n    n_trials=20,\n    n_jobs=1,\n    study_name=\"my_optimization\",\n    optimization_direction=\"maximize\"\n)\n```\n\n## API 部署\n\nRAGBuilder 可以部署为 API 服务：\n\n````python\n# 初始化并优化\nbuilder = RAGBuilder.from_source_with_defaults('data.pdf')\nresults = builder.optimize()\n\n# 部署为 API\nbuilder.serve(host=\"0.0.0.0\", port=8000)\n````\n\n可通过以下方式访问：\n- `POST \u002Fquery` - 通过 RAG 流程运行查询\n\n## 项目管理\n\n保存和加载优化后的 RAG 流程：\n\n````python\n# 保存项目\nbuilder.save('rag_project\u002F')\n\n# 加载现有项目\nbuilder = RAGBuilder.load('rag_project\u002F')\n\n# 访问组件\nvectorstore = builder.data_ingest.get_vectorstore()\nretriever = builder.retrieval.get_retriever()\ngenerator = builder.generation.get_generator()\n````\n\n## 最佳实践\n\n1. **从简单开始**\n   - 从 `from_source_with_defaults()` 开始\n   - 仅在需要时才增加复杂性\n\n2. **测试数据质量**\n   - 提供具有代表性的测试查询\n   - 使用领域特定的评估指标\n\n3. **资源管理**\n   - 监控大数据集下的内存使用情况\n   - 对大型文档使用分块处理\n\n4. **生产部署**\n   - 保存优化后的项目以便重复使用\n   - 监控 API 性能指标\n   - 为 API 端点实施速率限制\n\n## 使用分析\n\n我们收集匿名使用指标以改进 RAGBuilder：\n- 优化运行次数\n- 成功\u002F失败率\n- 不会收集任何个人或商业数据\n\n如需退出，请在 `.env` 中设置 `ENABLE_ANALYTICS=False`：\n\n## 贡献\n\n我们欢迎贡献！请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取指南。\n\n## 许可证\n\n本项目采用 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。","# RagBuilder 快速上手指南\n\nRagBuilder 是一个自动化构建生产级检索增强生成（RAG）系统的工具包。它通过贝叶斯优化对分块策略、分块大小等超参数进行自动调优，并结合预定义的高质量模板，帮助开发者在几分钟内为特定数据找到最优的 RAG 配置。\n\n## 环境准备\n\n*   **操作系统**：Linux, macOS, Windows\n*   **Python 版本**：建议 Python 3.9 及以上\n*   **前置依赖**：\n    *   推荐使用 `uv` 进行虚拟环境管理（安装更快），也可使用标准 `venv`。\n    *   需要配置大模型和 Embedding 模型的 API Key（如 OpenAI, Azure OpenAI 等）。\n\n## 安装步骤\n\n推荐使用 `uv` 快速创建环境并安装：\n\n```bash\n# 创建新的虚拟环境\nuv venv ragbuilder\n\n# 激活虚拟环境\n# Linux\u002FmacOS:\nsource ragbuilder\u002Fbin\u002Factivate\n# Windows (PowerShell):\nragbuilder\\Scripts\\Activate.ps1\n\n# 安装 ragbuilder\nuv pip install ragbuilder\n```\n\n> **提示**：如果网络下载较慢，可添加国内镜像源加速安装：\n> `uv pip install ragbuilder -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n### 配置环境变量\n\n在项目根目录创建 `.env` 文件，填入必要的 API 密钥：\n\n```env\n# 必填：OpenAI API Key (或其他支持的模型提供商)\nOPENAI_API_KEY=your_key_here\n\n# 选填：其他服务密钥\nAZURE_OPENAI_API_KEY=your_key_here\nAZURE_OPENAI_ENDPOINT=your_endpoint_here\nCOHERE_API_KEY=your_key_here\n```\n\n## 基本使用\n\n以下是最简单的使用流程：加载数据、自动优化配置、执行查询。\n\n### 1. 快速启动与优化\n\n使用默认配置从指定数据源（URL 或本地文件）构建并优化 RAG 管道：\n\n```python\nfrom ragbuilder import RAGBuilder\n\n# 初始化并使用默认配置进行优化\n# input_source 可以是 URL 或本地文件路径 (如 'data.pdf')\nbuilder = RAGBuilder.from_source_with_defaults(\n    input_source='https:\u002F\u002Flilianweng.github.io\u002Fposts\u002F2023-06-23-agent\u002F'\n)\n\n# 执行自动超参数调优\nresults = builder.optimize()\n\n# 通过优化后的管道运行查询\nresponse = results.invoke(\"What is HNSW?\")\nprint(response)\n\n# 查看优化总结报告\nprint(results.summary())\n```\n\n### 2. 指定默认模型\n\n如果需要指定特定的 LLM 和 Embedding 模型（例如使用 Azure OpenAI）：\n\n```python\nfrom langchain_openai import AzureChatOpenAI, AzureOpenAIEmbeddings\nfrom ragbuilder import RAGBuilder\n\nbuilder = RAGBuilder.from_source_with_defaults(\n    input_source='data.pdf',\n    default_llm=AzureChatOpenAI(model=\"gpt-4o\", temperature=0.0),\n    default_embeddings=AzureOpenAIEmbeddings(model=\"text-embedding-3-large\"),\n    n_trials=20  # 设置优化试验次数\n)\n\nresults = builder.optimize()\n```\n\n### 3. 部署为 API 服务\n\n优化完成后，可一键将 RAG 管道部署为 API 服务：\n\n```python\n# 初始化并优化\nbuilder = RAGBuilder.from_source_with_defaults('data.pdf')\nresults = builder.optimize()\n\n# 启动 API 服务\nbuilder.serve(host=\"0.0.0.0\", port=8000)\n```\n\n启动后，可通过 `POST \u002Fquery` 接口调用服务。\n\n### 4. 项目持久化\n\n保存优化好的项目以便后续直接加载使用，无需重新优化：\n\n```python\n# 保存项目\nbuilder.save('rag_project\u002F')\n\n# 加载现有项目\nbuilder = RAGBuilder.load('rag_project\u002F')\n\n# 直接访问内部组件\nvectorstore = builder.data_ingest.get_vectorstore()\nretriever = builder.retrieval.get_retriever()\n```","某金融科技公司的数据团队正致力于构建一个内部合规问答系统，需要让 AI 基于数百页复杂的监管文档准确回答员工疑问。\n\n### 没有 ragbuilder 时\n- **参数调优靠猜**：开发人员只能手动尝试不同的文本切片大小（如 500 或 1000 字符）和分割策略，耗时数周却难以确定最优组合。\n- **评估流程繁琐**：缺乏自动化测试机制，每次调整配置后需人工编写测试题并逐一验证回答质量，效率极低且主观性强。\n- **生产部署困难**：从实验代码到稳定的 API 服务需要大量重复工程工作，导致原型迟迟无法上线供业务部门使用。\n- **效果波动大**：由于未针对特定金融数据进行超参数优化，系统常出现检索内容不相关或遗漏关键条款的情况。\n\n### 使用 ragbuilder 后\n- **自动寻找最优解**：ragbuilder 利用贝叶斯优化自动遍历多种切片策略与尺寸，仅在几分钟内就锁定了最适合该金融数据集的配置方案。\n- **科学量化评估**：工具自动生成合成测试集并对不同配置打分，用客观数据替代人工直觉，确保选出的流水线在准确率上表现最佳。\n- **一键生产部署**：找到最优配置后，ragbuilder 直接生成包含向量化、检索和生成组件的生产级 API，大幅缩短从实验到落地的周期。\n- **性能显著提升**：经过针对性调优的 RAG 系统在回答复杂合规问题时，检索命中率与回答准确性均达到预期标准，减少了幻觉产生。\n\nragbuilder 将原本需要数周的人工试错过程压缩为分钟级的自动化优化，让团队能迅速交付高质量的生产级 RAG 应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKruxAI_ragbuilder_0a7ac053.png","KruxAI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FKruxAI_0fb6ad07.jpg","",null,"https:\u002F\u002Fwww.krux.ai\u002F","https:\u002F\u002Fgithub.com\u002FKruxAI",[79,83,87,91,95,99,103],{"name":80,"color":81,"percentage":82},"Python","#3572A5",58.2,{"name":84,"color":85,"percentage":86},"Jupyter Notebook","#DA5B0B",23.7,{"name":88,"color":89,"percentage":90},"HTML","#e34c26",13.4,{"name":92,"color":93,"percentage":94},"JavaScript","#f1e05a",4.5,{"name":96,"color":97,"percentage":98},"Dockerfile","#384d54",0.1,{"name":100,"color":101,"percentage":102},"Shell","#89e051",0,{"name":104,"color":105,"percentage":102},"Batchfile","#C1F12E",1534,123,"2026-03-30T18:05:24","Apache-2.0","未说明",{"notes":112,"python":110,"dependencies":113},"该工具主要依赖外部 API（如 OpenAI, Azure, Cohere 等），需配置相应的 API KEY。若使用基于图的检索功能，需额外部署 Neo4j 数据库。安装推荐使用 'uv' 工具管理虚拟环境。具体硬件需求取决于所选用的嵌入模型、重排序模型及数据量大小，README 中未给出具体数值。",[114,115,116,117,118],"langchain_openai","ragas","pymupdf","unstructured","optuna (隐含，用于贝叶斯优化)",[14],[121,122,123],"developer-tools","genai","rag","2026-03-27T02:49:30.150509","2026-04-07T06:13:34.616748",[127,132,137,142,147,152],{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},21117,"在 Mac 上使用 Docker Compose 运行时遇到 Python Git 设置错误（ImportError: Bad git executable）怎么办？","这是因为 Docker 镜像中缺少 git 可执行文件。解决方法有两种：\n1. 临时方案：在环境变量文件中添加 `GIT_PYTHON_REFRESH=quiet`。\n2. 永久方案（推荐）：在 `Dockerfile` 的系统依赖安装列表中添加 `git`。例如：\n```dockerfile\nRUN apt-get update && apt-get install -y \\\n    build-essential \\\n    libjpeg-dev \\\n    libmagic-dev \\\n    zlib1g-dev \\\n    libopenjp2-7-dev \\\n    libpng-dev \\\n    libpoppler-cpp-dev \\\n    pkg-config \\\n    gcc \\\n    libqpdf-dev \\\n    libgl1-mesa-glx \\\n    libglib2.0-0 \\\n    git \\\n    && rm -rf \u002Fvar\u002Flib\u002Fapt\u002Flists\u002F*\n```\n维护者已在 Release 0.0.21 版本中将 git 添加到了 Docker 依赖中，升级版本也可解决此问题。","https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fissues\u002F58",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},21118,"运行 docker-compose.yml 时提示路径不存在（如 neo4j folder not found）或构建失败怎么办？","这通常是因为只下载了 `docker-compose.yml` 文件而没有获取完整的项目代码，导致相对路径缺失。解决方法是克隆整个仓库，而不仅仅是单个文件：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder.git\n```\n然后进入目录再运行 docker compose 命令。","https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fissues\u002F41",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},21119,"如何在 RAGBuilder 中配置和使用 Ollama 模型？","需要在 `.env` 文件中配置 `OLLAMA_BASE_URL` 环境变量。\n- 如果是本地直接运行 RAGBuilder，设置为：`OLLAMA_BASE_URL=http:\u002F\u002Flocalhost:11434`\n- 如果是在 Docker 容器中运行 RAGBuilder，需要设置为：`OLLAMA_BASE_URL=http:\u002F\u002Fhost.docker.internal:11434`\n确保在此之前已经通过 `ollama pull \u003Cmodel_name>` 拉取了所需的模型（如 mistral）。","https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fissues\u002F30",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},21120,"使用 Ollama 时 RAGBuilder 启动后立即失败或无法连接怎么办？","请检查 `.env` 配置文件中的 `OLLAMA_BASE_URL` 设置是否正确。\n- 非 Docker 环境请使用：`OLLAMA_BASE_URL=http:\u002F\u002Flocalhost:11434`\n- Docker 环境请使用：`OLLAMA_BASE_URL=http:\u002F\u002Fhost.docker.internal:11434`\n错误的 URL 配置会导致应用无法连接到 Ollama 服务从而失败。","https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fissues\u002F24",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},21121,"RAGBuilder 与 RagFlow 或 Microsoft GraphRAG 有什么区别？","RAGBuilder 是一个旨在自动创建优化的生产就绪检索增强生成（RAG）设置的工具包。它的核心功能是对不同的 RAG 参数进行超参数调优和评估，以找到最佳配置。它提供多种预定义的 RAG 模板，用户只需提供数据，即可在几分钟内生成生产级的 RAG 设置。与其他项目不同，RAGBuilder 侧重于自动化参数搜索和配置优化，而非仅仅是一个固定的 RAG 流程实现。","https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fissues\u002F2",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},21122,"提供源数据路径时提示\"Invalid source data\"错误怎么办？","当遇到\"Invalid source data. Please check the URL or file\u002F directory path.\"错误时，请检查以下几点：\n1. 确认路径格式是否正确，避免使用可能引起解析问题的符号（如某些情况下的 `~` 缩写），建议尝试使用绝对路径。\n2. 确保该路径在运行 RAGBuilder 的环境中是真实存在且可访问的（特别是在 Docker 环境中，需要确保宿主机路径已正确挂载到容器内）。\n3. 检查文件或目录权限是否允许读取。","https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fissues\u002F15",[158,163,168,173,178,183,188,193,198,203],{"id":159,"version":160,"summary_zh":161,"released_at":162},127146,"v0.1.4","## 变更内容\n全新的 SDK，支持按模块进行优化。\n\n基本用法：\n````python\nfrom ragbuilder import RAGBuilder\n\n# 初始化并优化\nbuilder = RAGBuilder.from_source_with_defaults(input_source='data.pdf')\nresults = builder.optimize()\n\n# 通过完整流水线执行查询\nresponse = results.invoke(\"什么是 HNSW？\")\n\n# 查看优化摘要\nprint(results.summary())\n````\n\n高级配置\n若需更精细的控制，您可以自定义各个部分：\n\n````python\nfrom ragbuilder.config import (\n    DataIngestOptionsConfig,\n    RetrievalOptionsConfig,\n    GenerationOptionsConfig\n)\n\n# 配置数据摄入\ndata_ingest_config = DataIngestOptionsConfig(\n    input_source=\"data.pdf\",\n    document_loaders=[\n        {\"type\": \"pymupdf\"},\n        {\"type\": \"unstructured\"}\n    ],\n    chunking_strategies=[{\n        \"type\": \"RecursiveCharacterTextSplitter\",\n        \"chunker_kwargs\": {\"separators\": [\"\\n\\n\", \"\\n\", \" \", \"\"]}\n    }],\n    chunk_size={\"min\": 500, \"max\": 2000, \"stepsize\": 500},\n    embedding_models=[{\n        \"type\": \"openai\",\n        \"model_kwargs\": {\"model\": \"text-embedding-3-large\"}\n    }]\n)\n\n# 配置检索\nretrieval_config = RetrievalOptionsConfig(\n    retrievers=[\n        {\n            \"type\": \"vector_similarity\",\n            \"retriever_k\": [20],\n            \"weight\": 0.5\n        },\n        {\n            \"type\": \"bm25\",\n            \"retriever_k\": [20],\n            \"weight\": 0.5\n        }\n    ],\n    rerankers=[{\n        \"type\": \"BAAI\u002Fbge-reranker-base\"\n    }],\n    top_k=[3, 5]\n)\n\n# 使用自定义配置初始化\nbuilder = RAGBuilder(\n    data_ingest_config=data_ingest_config,\n    retrieval_config=retrieval_config\n)\n\n# 访问各个组件\nvectorstore = results.data_ingest.get_vectorstore()\ndocs = results.retrieval.invoke(\"什么是 RAG？\")\nanswer = results.generation.invoke(\"什么是 RAG？\")\n````\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.22...v0.1.4","2024-12-31T18:11:26",{"id":164,"version":165,"summary_zh":166,"released_at":167},127147,"0.0.22","## 变更内容\n* 由 @Mefisto04 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F72 中对 `DataProcessor` 类进行了增强，提升了错误处理、效率和日志记录功能。\n* 由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F77 中修复了若干 bug。\n\n## 新贡献者\n* @Akhsuna07 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F75 中完成了首次贡献。\n* @Mefisto04 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F72 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.21...0.0.22","2024-10-25T02:37:12",{"id":169,"version":170,"summary_zh":171,"released_at":172},127148,"0.0.21","## 变更内容\n* 向量数据库支持：Qdrant 和 Weaviate，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F73 中实现\n* Docker-Brew 修复，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F74 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.20...0.0.21","2024-10-19T12:45:22",{"id":174,"version":175,"summary_zh":176,"released_at":177},127149,"0.0.20","## 变更内容\n* 由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F64 中添加了聊天实验环境\n\n## 新贡献者\n* @eltociear 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F48 中完成了首次贡献\n* @FarukhS52 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F60 中完成了首次贡献\n* @Ruhi14 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F61 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.18...0.0.20","2024-10-15T08:46:49",{"id":179,"version":180,"summary_zh":181,"released_at":182},127150,"0.0.18","## 变更内容\n* Colbert Retriever，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F53 中实现\n* 将重排序器的选择改为一次仅选择一个，由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F54 中实现\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.17...0.0.18","2024-10-06T05:49:27",{"id":184,"version":185,"summary_zh":186,"released_at":187},127151,"0.0.17","# RAGBuilder v0.0.17 发行说明\n\n## 新功能：\n- **支持重排序器**：\n   - **ColBERTv2**: colbertv2.0\n   - **Cohere**: rerank-english-v3.0\n   - **Jina**: jina-reranker-v1-base-en\n   - **交叉编码器重排序器**：\n     - Mixedbread-ai\u002Fmxbai-rerank-base-v1 \n     - BAAI\u002Fbge-reranker-base\n   - **FlashRank**: ms-marco-MiniLM-L-12-v2\n   - **RankLLM**: GPT-4o\n- **数据处理**：\n   - 去除停用词、标签、标点符号和空白字符，并对文本进行词干提取。\n- **超参数可视化**：\n   - 跟踪贝叶斯优化的进展，并可视化各参数的重要性。\n\n## 变更内容：\n- @aravind10x 在 [#50](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F50) 中提供了优化建议。\n- @ashwinzyx 在 [#51](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F51) 中新增了五种重排序器。\n- @ashwinzyx 在 [#49](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F49) 中实现了数据处理功能。\n- @ashwinzyx 在 [#52](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F52) 中更新了 setup.py 文件。\n\n**完整变更日志**：[0.0.16...0.0.17](https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.16...0.0.17)","2024-09-28T12:20:57",{"id":189,"version":190,"summary_zh":191,"released_at":192},127152,"0.0.16","## 新功能\n- 试验运行采用10%采样\n- 来自Anthropic的上下文检索器\n- 集成Optuna，实现更高效的超参数调优\n\n## 变更内容\n* 采样：@aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F45 中实现\n* Optuna集成：用于超参数调优\n* 上下文检索器：由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F44 中实现\n* 小改进：支持在执行过程中查看结果\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.15...0.0.16","2024-09-21T13:40:32",{"id":194,"version":195,"summary_zh":196,"released_at":197},127153,"0.0.15","## 新功能\n- 基于图检索的纯 Vanilla RAG，使用 Graph Retriever\n- 混合图 RAG：结合 Graph Retriever 和 Vector Retriever\n- Neo4j 集成\n- 更加改进的集成检索器\n\n## 变更内容\n* 由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F35 中更新至版本 0.0.14\n* 由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F36 中实现 GraphRAG\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.14...0.0.15","2024-09-13T17:54:21",{"id":199,"version":200,"summary_zh":201,"released_at":202},127154,"0.0.14","## 有哪些新功能\n     - 上下文压缩的 Top K 修复\n     - 更加改进的集成检索器\n    \n## 变更内容\n* @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F29 中修复了混合活跃内容的 bug\n* @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F31 中实现了 Top k 上下文压缩\n* @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F33 中更新了集成检索器\n* @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F34 中添加了合成数据生成的跟踪功能\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcompare\u002F0.0.13...0.0.14","2024-09-10T08:32:14",{"id":204,"version":205,"summary_zh":206,"released_at":207},127155,"0.0.13","## 新的 SOTA 模板\n     - HYDE\n     - 混合 RAG\n     - 语义分块器\n     - 回溯提示法\n     - 查询重写\n     - RRF-倒数排名融合 RAG\n\n## 变更内容\n* 由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F1 中实现：将贝叶斯运行次数作为用户输入获取。\n* 由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F3 中实现：支持其他模型。\n* 由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F4 中实现：升级 Langchain。\n* 由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F5 中实现：集成 Milvus。\n* [重大] 由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F6 中实现：移除对 OpenAI 的依赖。\n* 由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F8 中进行的小幅更新。\n* 小幅改动：更新版本、添加 Milvus，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F9 中完成。\n* 更新 .env-Sample 文件中的 GOOGLE_APPLICATION_CREDENTIALS，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F10 中完成。\n* 为模型\u002F模型所有者添加分隔符，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F12 中完成。\n* [小幅] 模型名称错误修复，由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F13 中完成。\n* 修复路径展开错误，由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F14 中完成。\n* 为支持 Docker 修复 Ollama 库问题，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F16 中完成。\n* 更新 setup.py 文件，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F17 中完成。\n* 移除文件名中的模型名称，由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F19 中完成。\n* 全面重构 SOTA 模板，由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F20 中完成。\n* 再次更新 setup.py 文件，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F21 中完成。\n* 更新 README.md 文件，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F22 中完成。\n* 实现 PR 计数跟踪功能，由 @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F23 中完成。\n* 修复 SOTA 模板中的 bug，由 @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F27 中完成。\n\n## 新贡献者\n* @aravind10x 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F1 中做出了首次贡献。\n* @ashwinzyx 在 https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fpull\u002F5 中做出了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FKruxAI\u002Fragbuilder\u002Fcommits\u002F0.0.13","2024-08-27T04:36:44"]