[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-StarlightSearch--EmbedAnything":3,"tool-StarlightSearch--EmbedAnything":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":23,"env_os":103,"env_gpu":104,"env_ram":105,"env_deps":106,"category_tags":113,"github_topics":114,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":135,"updated_at":136,"faqs":137,"releases":168},2811,"StarlightSearch\u002FEmbedAnything","EmbedAnything","Highly Performant, Modular, Memory Safe and Production-ready Inference, Ingestion and Indexing built in Rust 🦀","EmbedAnything 是一款基于 Rust 语言打造的高性能嵌入（Embedding）生成与索引工具，旨在为开发者提供轻量、安全且生产就绪的多模态数据处理方案。它主要解决了传统 AI 嵌入流程中依赖庞大框架（如 PyTorch）、内存占用高以及部署复杂等痛点，让用户能够轻松地将文本、图像、音频、PDF 甚至网页内容转化为向量，并高效地流式传输至各类向量数据库。\n\n这款工具特别适合需要构建检索增强生成（RAG）系统、进行搜索引擎开发或处理大规模多源数据的后端工程师与 AI 研究人员。其核心亮点在于完全摆脱了对 PyTorch 的依赖，显著降低了云端部署门槛和内存 footprint；同时得益于 Rust 的语言特性，它在保证内存安全的前提下实现了极致的推理与索引速度。EmbedAnything 具备高度模块化设计，支持稠密、稀疏、ONNX 及 Late-interaction 等多种嵌入模式，并允许用户通过极简的代码配置灵活切换不同的向量数据库适配器。无论是本地实验还是生产环境部署，EmbedAnything 都能以“小而美”的架构提供闪电般的处理效率，是追求高性能与低资源消耗项目","EmbedAnything 是一款基于 Rust 语言打造的高性能嵌入（Embedding）生成与索引工具，旨在为开发者提供轻量、安全且生产就绪的多模态数据处理方案。它主要解决了传统 AI 嵌入流程中依赖庞大框架（如 PyTorch）、内存占用高以及部署复杂等痛点，让用户能够轻松地将文本、图像、音频、PDF 甚至网页内容转化为向量，并高效地流式传输至各类向量数据库。\n\n这款工具特别适合需要构建检索增强生成（RAG）系统、进行搜索引擎开发或处理大规模多源数据的后端工程师与 AI 研究人员。其核心亮点在于完全摆脱了对 PyTorch 的依赖，显著降低了云端部署门槛和内存 footprint；同时得益于 Rust 的语言特性，它在保证内存安全的前提下实现了极致的推理与索引速度。EmbedAnything 具备高度模块化设计，支持稠密、稀疏、ONNX 及 Late-interaction 等多种嵌入模式，并允许用户通过极简的代码配置灵活切换不同的向量数据库适配器。无论是本地实验还是生产环境部署，EmbedAnything 都能以“小而美”的架构提供闪电般的处理效率，是追求高性能与低资源消耗项目的理想选择。","\n\n\u003Cp align =\"center\">\n\u003Cimg width=400 src = \"https:\u002F\u002Fres.cloudinary.com\u002Fdltwftrgc\u002Fimage\u002Fupload\u002Fv1712504276\u002FProjects\u002FEmbedAnything_500_x_200_px_a4l8xu.png\">\n\u003C\u002Fp>\n\n\n\n\u003Cdiv align=\"center\">\n\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_7f3cac6adf5d.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fembed-anything)\n[![gpu](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_7f3cac6adf5d.png-gpu)](https:\u002F\u002Fwww.pepy.tech\u002Fprojects\u002Fembed-anything-gpu)\n[![Open in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1CowJrqZxDDYJzkclI-rbHaZHgL9C6K3p?usp=sharing)\n[![roadmap](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-%235865F2.svg?style=flat&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FjuETVTMdZu)\n[![MkDocs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBlogs-F38020?.svg?logoColor=fff)](https:\u002F\u002Fembed-anything.com\u002Fblog\u002F)\n\n\u003C\u002Fdiv>\n\n\n\u003Cdiv align=\"center\">\n\n  \u003Cp align=\"center\">\n    \u003Cb> Highly Performant, Modular and Memory Safe\u003C\u002Fb>\n    \u003Cbr \u002F>\n    \u003Cb> Ingestion, Inference and Indexing in Rust 🦀\u003C\u002Fb>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fembed-anything.com\u002Freferences\u002F\">Python docs »\u003C\u002Fa>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fdocs.rs\u002Fembed_anything\u002Flatest\u002Fembed_anything\u002F\">Rust docs »\u003C\u002Fa>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#benchmarks\">\u003Cstrong>Benchmarks\u003C\u002Fstrong>\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#%EF%B8%8Ffaq\">\u003Cstrong>FAQ\u003C\u002Fstrong>\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Ftree\u002Fmain\u002Fexamples\u002Fadapters\">\u003Cstrong>Adapters\u003C\u002Fstrong>\u003C\u002Fa>\n    .\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-our-past-collaborations\">\u003Cstrong>Collaborations\u003C\u002Fstrong>\u003C\u002Fa>\n    .\n     \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-notebooks\">\u003Cstrong>Notebooks\u003C\u002Fstrong>\u003C\u002Fa>\n\n\n    \n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\nEmbedAnything is a minimalist, yet highly performant, modular, lightning-fast, lightweight, multisource, multimodal, and local embedding pipeline built in Rust. Whether you're working with text, images, audio, PDFs, websites, or other media, EmbedAnything streamlines the process of generating embeddings from various sources and seamlessly streaming (memory-efficient-indexing) them to a vector database. It supports dense, sparse, ONNX, model2vec and late-interaction embeddings, offering flexibility for a wide range of use cases.\n\n\n\n\u003Cp align =\"center\">\n\u003Cimg width=400 src = \"https:\u002F\u002Fres.cloudinary.com\u002Fdogbbs77y\u002Fimage\u002Fupload\u002Fv1766251819\u002Fstreaming_popagm.png\">\n\u003C\u002Fp>\n\n\u003C!-- TABLE OF CONTENTS -->\n\u003Cdetails>\n  \u003Csummary>Table of Contents\u003C\u002Fsummary>\n  \u003Col>\n    \u003Cli>\n      \u003Ca href=\"#about-the-project\">About The Project\u003C\u002Fa>\n      \u003Cul>\n        \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#the-benefit-of-rust-for-speed\">Built With Rust\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#why-candle\">Why Candle?\u003C\u002Fa>\u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Fli>\n    \u003Cli>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-getting-started\">Getting Started\u003C\u002Fa>\n      \u003Cul>\n        \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-installation\">Installation\u003C\u002Fa>\u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-getting-started\">Usage\u003C\u002Fa>\u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#roadmap\">Roadmap\u003C\u002Fa>\u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#quick-start\">Contributing\u003C\u002Fa>\u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#Supported-Models\">How to add custom model and chunk size\u003C\u002Fa>\u003C\u002Fli>\n    \n  \u003C\u002Fol>\n\u003C\u002Fdetails>\n\n\n## 🚀 Key Features\n\n\n- **No Dependency on Pytorch**: Easy to deploy on cloud, comes with low memory footprint.\n- **Highly Modular** : Choose any vectorDB adapter for RAG, with ~~1 line~~ 1 word of code\n- **Backend** : Supports Candle, ONNX and cloud models\n- **MultiModality** : Works with text sources like PDFs, txt, md, Images JPG and Audio, .WAV\n- **GPU support** : Hardware acceleration on GPU as well.\n- **Chunking** : In-built chunking methods like semantic, late-chunking\n- **Vector Streaming:** : Separate file processing, Indexing and Inferencing on different threads, reduces latency.\n- **AWS S3 Bucket:** : Directly import AWS S3 bucket files.\n- **Prebult Docker Image** : Just pull it: starlightsearch\u002Fembedanything-server\n- **SearchAgent** : Example of how you can use index for Searchr1 reasoning.\n\n\n## 💡What is Vector Streaming\n\n Embedding models are computationally expensive and time-consuming. By separating document preprocessing from model inference, you can significantly reduce pipeline latency and improve throughput.\n\nVector streaming transforms a sequential bottleneck into an efficient, concurrent workflow.\n\nThe embedding process happens separetly from the main process, so as to maintain high performance enabled by rust MPSC, and no memory leak as embeddings are directly saved to vector database. Find our [blog](https:\u002F\u002Fstarlight-search.com\u002Fblog\u002F2025\u002F02\u002F25\u002Fvector%20database\u002F).\n\n[![EmbedAnythingXWeaviate](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_1c2c68ad087f.gif)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=OJRWPLQ44Dw)\n\n## 🦀 Why Embed Anything \n\n➡️Faster execution. \u003Cbr \u002F>\n➡️No Pytorch Dependency, thus low-memory footprint and easy to deploy on cloud. \u003Cbr \u002F>\n➡️True multithreading \u003Cbr \u002F>\n➡️Running embedding models locally and efficiently \u003Cbr \u002F>\n➡️In-built chunking methods like semantic, late-chunking \u003Cbr\u002F>\n➡️Supports range of models, Dense, Sparse, Late-interaction, ReRanker, ModernBert.\u003Cbr \u002F>\n➡️Memory Management: Rust enforces memory management simultaneously, preventing memory leaks and crashes that can plague other languages \u003Cbr \u002F>\n\n**⚠️ WhichModel has been deprecated in pretrained_hf**\n\n\n## 🍓 Our Past Collaborations:\n\nWe have collaborated with reputed enterprise like\n[Elastic](https:\u002F\u002Fwww.youtube.com\u002Flive\u002FOzQopxkxHyY?si=l6KasNNuCNOKky6f), [Weaviate](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fsonam-pankaj_machinelearning-data-ai-activity-7238832243622768644-gB8c?utm_source=share&utm_medium=member_desktop&rcm=ACoAABlF_IAB4Y74d5JJwj0CUwpTkhuskE0PAt4), [SingleStore](https:\u002F\u002Fwww.linkedin.com\u002Fevents\u002Fbuildingdomain-specificragappli7295319309566775297\u002Ftheater\u002F), [Milvus](https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fbuild_RAG_with_milvus_and_embedAnything.md) \nand [Analytics Vidya Datahours](https:\u002F\u002Fcommunity.analyticsvidhya.com\u002Fc\u002Fdatahour\u002Fmultimodal-embeddings-and-search-with-embed-anything-6adba0)\n\nYou can get in touch with us for further collaborations.\n\n## Benchmarks\n\n### Inference Speed benchmarks.\nOnly measures embedding model inference speed, on onnx-runtime. [Code](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1nXvd25hDYO-j7QGOIIC0M7MDpovuPCaD?usp=sharing)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_8a22b20d42b5.png\" width=\"500\">\n\n\nBenchmarks with other fromeworks coming soon!! 🚀\n# ⭐ Supported Models\n\nWe support any hugging-face models on Candle. And We also support ONNX runtime for BERT and ColPali.\n\n## How to add custom model on candle: from_pretrained_hf\n\n**⚠️ WhichModel has been deprecated in from_pretrained_hf**\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, TextEmbedConfig\n\n\n# Load a custom BERT model from Hugging Face\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# Configure embedding parameters\nconfig = TextEmbedConfig(\n    chunk_size=1000,      # Maximum characters per chunk\n    batch_size=32,        # Number of chunks to process in parallel\n    splitting_strategy=\"sentence\"  # How to split text: \"sentence\", \"word\", or \"semantic\"\n)\n\n# Embed a file (supports PDF, TXT, MD, etc.)\ndata = embed_anything.embed_file(\"path\u002Fto\u002Fyour\u002Ffile.pdf\", embedder=model, config=config)\n\n# Access the embeddings and text\nfor item in data:\n    print(f\"Text: {item.text[:100]}...\")  # First 100 characters\n    print(f\"Embedding shape: {len(item.embedding)}\")\n    print(f\"Metadata: {item.metadata}\")\n    print(\"---\" * 20)\n```\n\n\n| Model  | HF link |\n| ------------- | ------------- | \n| Jina  | [Jina Models](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fjinaai\u002Fjina-embeddings-v2-65708e3ec4993b8fb968e744) | \n| Bert | All Bert based models |\n| CLIP | openai\u002Fclip-* | \n| Whisper| [OpenAI Whisper models](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fopenai\u002Fwhisper-release-6501bba2cf999715fd953013)|\n| ColPali | starlight-ai\u002Fcolpali-v1.2-merged-onnx|\n| Colbert | answerdotai\u002Fanswerai-colbert-small-v1, jinaai\u002Fjina-colbert-v2 and more |\n| Splade | [Splade Models](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fnaver\u002Fsplade-667eb6df02c2f3b0c39bd248) and other Splade like models |\n| Model2Vec | model2vec, minishlab\u002Fpotion-base-8M |\n| Qwen3-Embedding | Qwen\u002FQwen3-Embedding-0.6B |\n| Reranker | [Jina Reranker Models](https:\u002F\u002Fhuggingface.co\u002Fjinaai\u002Fjina-reranker-v2-base-multilingual), Xenova\u002Fbge-reranker, Qwen\u002FQwen3-Reranker-4B |\n\n\n## Splade Models (Sparse Embeddings)\n\nSparse embeddings are useful for keyword-based retrieval and hybrid search scenarios.\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig\n\n\n# Load a SPLADE model for sparse embeddings\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"prithivida\u002FSplade_PP_en_v1\"\n)\n\n# Configure the embedding process\nconfig = TextEmbedConfig(chunk_size=1000, batch_size=32)\n\n# Embed text files\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.txt\", embedder=model, config=config)\n\n# Sparse embeddings are useful for hybrid search (combining dense and sparse)\nfor item in data:\n    print(f\"Text: {item.text}\")\n    print(f\"Sparse embedding (non-zero values): {sum(1 for x in item.embedding if x != 0)}\")\n```\n\n## ONNX-Runtime: from_pretrained_onnx\n\nONNX models provide faster inference and lower memory usage. Use the `ONNXModel` enum for pre-configured models or provide a custom model path.\n\n### BERT Models\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, ONNXModel, Dtype, TextEmbedConfig\n\n\n# Option 2: Use a custom ONNX model from Hugging Face\nmodel = EmbeddingModel.from_pretrained_onnx(\n    WhichModel.Bert\n    model_id=\"onnx_model_link\",\n    dtype=Dtype.F16  # Use half precision for faster inference\n)\n```\n\n### Cloud Embedding Models (Cohere Embed v4)\n\nUse cloud models for high-quality embeddings without local model deployment.\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel\nimport os\n\n# Set your API key\nos.environ[\"COHERE_API_KEY\"] = \"your-api-key-here\"\n\n# Initialize the cloud model\nmodel = EmbeddingModel.from_pretrained_cloud(\n    WhichModel.CohereVision, \n    model_id=\"embed-v4.0\"\n)\n\n# Use it like any other model\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.pdf\", embedder=model)\n```\n\n\n## For Semantic Chunking\n\nSemantic chunking preserves meaning by splitting text at semantically meaningful boundaries rather than fixed sizes.\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig\n\n# Main embedding model for generating final embeddings\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# Semantic encoder for determining chunk boundaries\n# This model analyzes text to find natural semantic breaks\nsemantic_encoder = EmbeddingModel.from_pretrained_hf(\n    model_id=\"jinaai\u002Fjina-embeddings-v2-small-en\"\n)\n\n# Configure semantic chunking\nconfig = TextEmbedConfig(\n    chunk_size=1000,                    # Target chunk size\n    batch_size=32,                      # Batch processing size\n    splitting_strategy=\"semantic\",      # Use semantic splitting\n    semantic_encoder=semantic_encoder    # Model for semantic analysis\n)\n\n# Embed with semantic chunking\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.pdf\", embedder=model, config=config)\n\n# Chunks will be split at semantically meaningful boundaries\nfor item in data:\n    print(f\"Chunk: {item.text[:200]}...\")\n    print(\"---\" * 20)\n```\n\n## For Late-Chunking\n\nLate-chunking splits text into smaller units first, then combines them during embedding for better context preservation.\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig, EmbedData\n\n# Load your embedding model\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# Configure late-chunking\nconfig = TextEmbedConfig(\n    chunk_size=1000,              # Maximum chunk size\n    batch_size=8,                 # Batch size for processing\n    splitting_strategy=\"sentence\", # Split by sentences first\n    late_chunking=True,           # Enable late-chunking\n)\n\n# Embed a file with late-chunking\ndata: list[EmbedData] = model.embed_file(\"test_files\u002Fattention.pdf\", config=config)\n\n# Late-chunking helps preserve context across sentence boundaries\nfor item in data:\n    print(f\"Text: {item.text}\")\n    print(f\"Embedding dimension: {len(item.embedding)}\")\n    print(\"---\" * 20)\n```\n\n# 🧑‍🚀 Getting Started\n\n## 💚 Installation\n\n`\npip install embed-anything\n`\u003Cbr\u002F>\n\nFor GPUs and using special models like ColPali \u003Cbr\u002F>\n\n`\npip install embed-anything-gpu\n`\n\n🚧❌ If it shows cuda error while running on windowns, run the following command:\n\n```\nos.add_dll_directory(\"C:\u002FProgram Files\u002FNVIDIA GPU Computing Toolkit\u002FCUDA\u002Fv12.6\u002Fbin\")\n```\n## 📒 Notebooks\n\n\n|   |   \n| ------------- | \n| [End-to-End Retrieval and Reranking using VectorDB Adapters](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1gct0lEplyW8VWGPXUgpLcQuMQeZDl6D5?usp=sharing)  | \n| [ColPali-Onnx](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1yCVbpkoe53ymiCxG8ttJNbRhECy1Q-Du?usp=sharing)  | \n| [Adapters](https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Ftree\u002Fmain\u002Fexamples\u002Fadapters) |  |\n| [Qwen3- Embedings](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1OlUJwTtPvj28h5tCVerf6ebEnAf8kPAh?usp=sharing) | \n| [Benchmarks](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1nXvd25hDYO-j7QGOIIC0M7MDpovuPCaD?usp=sharing) | \n\n\n\n### Advanced Usage with Configuration\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, TextEmbedConfig\n\n# Load model\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"jinaai\u002Fjina-embeddings-v2-small-en\"\n)\n\n# Configure embedding parameters\nconfig = TextEmbedConfig(\n    chunk_size=1000,              # Characters per chunk\n    batch_size=32,                # Process 32 chunks at once\n    buffer_size=64,               # Buffer size for streaming\n    splitting_strategy=\"sentence\" # Split by sentences\n)\n\n# Embed with custom configuration\ndata = embed_anything.embed_file(\n    \"test_files\u002Fdocument.pdf\", \n    embedder=model, \n    config=config\n)\n\n# Process embeddings\nfor item in data:\n    print(f\"Chunk: {item.text}\")\n    print(f\"Metadata: {item.metadata}\")\n```\n\n### Embedding Queries\n\n```python\n\n# Embed a query\nqueries = [\"What is machine learning?\", \"How does neural networks work?\"]\nquery_embeddings = embed_anything.embed_query(queries, embedder=model)\n\n# Use embeddings for similarity search\nfor i, query_emb in enumerate(query_embeddings):\n    print(f\"Query: {queries[i]}\")\n    print(f\"Embedding shape: {len(query_emb.embedding)}\")\n```\n\n### Embedding Directories\n\n```python\n\n# Embed all files in a directory\ndata = embed_anything.embed_directory(\n    \"test_files\u002F\", \n    embedder=model, \n    config=config\n)\n\nprint(f\"Total chunks: {len(data)}\")\n```\n\n#### Using Custom ONNX Models\n\nFor custom or fine-tuned models, specify the Hugging Face model ID and path to the ONNX file:\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, Dtype\n\n# Load a custom ONNX model from Hugging Face\nmodel = EmbeddingModel.from_pretrained_onnx(\n    WhichModel.Jina,\n    hf_model_id=\"jinaai\u002Fjina-embeddings-v2-small-en\",\n    path_in_repo=\"model.onnx\",  # Path to ONNX file in the repo\n    dtype=Dtype.F16              # Use half precision\n)\n\n# Use the model\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.pdf\", embedder=model)\n```\n\n**Note**: Using pre-configured models (via `ONNXModel` enum) is recommended as these models are tested and optimized. For a complete list of supported ONNX models, see [ONNX Models Guide](\u002Fdocs\u002Fguides\u002Fonnx_models.md).\n\n## ⁉️FAQ\n\n### Do I need to know rust to use or contribute to embedanything?\nThe answer is No. EmbedAnything provides you pyo3 bindings, so you can run any function in python without any issues. To contibute you should check out our guidelines and python folder example of adapters.\n\n### How is it different from fastembed?\n\nWe provide both backends, candle and onnx. On top of it we also give an end-to-end pipeline, that is you can ingest different data-types and index to any vector database, and inference any model. Fastembed is just an onnx-wrapper.\n\n### We've received quite a few questions about why we're using Candle.\n\nOne of the main reasons is that Candle doesn't require any specific ONNX format models, which means it can work seamlessly with any Hugging Face model. This flexibility has been a key factor for us. However, we also recognize that we’ve been compromising a bit on speed in favor of that flexibility.\n\n\n## 🚧 Contributing to EmbedAnything\n\nFirst of all, thank you for taking the time to contribute to this project. We truly appreciate your contributions, whether it's bug reports, feature suggestions, or pull requests. Your time and effort are highly valued in this project. 🚀\n\nThis document provides guidelines and best practices to help you to contribute effectively. These are meant to serve as guidelines, not strict rules. We encourage you to use your best judgment and feel comfortable proposing changes to this document through a pull request.\n\n\n\n\u003Cli>\u003Ca href=\"##-RoadMap\">Roadmap\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"##-Quick-Start\">Quick Start\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"##-Contributing-Guidelines\">Guidelines\u003C\u002Fa>\u003C\u002Fli>\n\n\n# 🏎️ RoadMap \n\n## Accomplishments\n\nOne of the aims of EmbedAnything is to allow AI engineers to easily use state of the art embedding models on typical files and documents. A lot has already been accomplished here and these are the formats that we support right now and a few more have to be done. \u003Cbr \u002F>\n\n\n### 🖼️ Modalities and Source\n\nWe’re excited to share that we've expanded our platform to support multiple modalities, including:\n\n- [x] Audio files\n\n- [x] Markdowns\n\n- [x] Websites\n\n- [x] Images\n\n- [x] Videos (frame sampling; enable the `video` feature)\n\n- [ ] Graph\n\nThis gives you the flexibility to work with various data types all in one place! 🌐 \u003Cbr \u002F>\n\n\n\n### ⚙️ Performance \n\n\nWe now support both candle and Onnx backend\u003Cbr\u002F>\n➡️ Support for GGUF models \u003C\u002Fbr >\n\n\n### 🫐Embeddings:\n\nWe had multimodality from day one for our infrastructure. We have already included it for websites, images and audios but we want to expand it further to.\n\n➡️ Graph embedding -- build deepwalks embeddings depth first and word to vec \u003Cbr \u002F>\n➡️ Video embedding improvements (temporal + audio) \u003Cbr\u002F>\n➡️ Yolo Clip \u003Cbr\u002F>\n\n\n### 🌊Expansion to other Vector Adapters\n\nWe currently support a wide range of vector databases for streaming embeddings, including:\n\n- Elastic: thanks to amazing and active Elastic team for the contribution \u003Cbr\u002F>\n- Weaviate \u003Cbr\u002F>\n- Pinecone \u003Cbr\u002F>\n- Qdrant \u003Cbr\u002F>\n- Milvus\u003Cbr\u002F>\n- Chroma \u003Cbr\u002F>\n\nHow to add an adpters: https:\u002F\u002Fstarlight-search.com\u002Fblog\u002F2024\u002F02\u002F25\u002Fadapter-development-guide.md\n\n### 💥 Create WASM demos to integrate embedanything directly to the browser. \u003Cbr\u002F>\n\n### 💜 Add support for ingestion from remote sources\n➡️ Support for S3 bucket \u003C\u002Fbr >\n➡️ Support for azure storage \u003C\u002Fbr >\n➡️ Support for google drive\u002Fdropbox\u003C\u002Fbr >\n\n\n\n\nBut we're not stopping there! We're actively working to expand this list.\n\nWant to Contribute?\nIf you’d like to add support for your favorite vector database, we’d love to have your help! Check out our contribution.md for guidelines, or feel free to reach out directly sonam@starlight-search.com . Let's build something amazing together! 💡\n\n## AWESOME Projects built on EmbedAnything.\n1. A Rust-based cursor like chat with your codebase tool: https:\u002F\u002Fgithub.com\u002Ftimpratim\u002Fcargo-chat\n2. A simple vector-based search engine, also supports ordinary text search : https:\u002F\u002Fgithub.com\u002Fszuwgh\u002Fvectorbase2\n3. Semantic file tracker in CLI operated through daemon built with rust.: https:\u002F\u002Fgithub.com\u002Fsam-salehi\u002Fsophist\n4. FogX-Store is a dataset store service that collects and serves large robotics datasets : https:\u002F\u002Fgithub.com\u002FJ-HowHuang\u002FFogX-Store\n5. A Dart Wrapper for EmbedAnything Crate: https:\u002F\u002Fgithub.com\u002Fcotw-fabier\u002Fembedanythingindart\n6. Generate embeddings in Rust with tauri on MacOS : https:\u002F\u002Fgithub.com\u002Fdo-me\u002Ftauri-embedanything-ios\n7. RAG with EmbedAnything and Milvus: https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fv2.5.x\u002Fbuild_RAG_with_milvus_and_embedAnything.md\n\n\n\n\n## A big Thank you to all our StarGazers\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_eebd22cdde5f.png)](https:\u002F\u002Fstar-history.com\u002F#StarlightSearch\u002FEmbedAnything&Date)\n","\u003Cp align =\"center\">\n\u003Cimg width=400 src = \"https:\u002F\u002Fres.cloudinary.com\u002Fdltwftrgc\u002Fimage\u002Fupload\u002Fv1712504276\u002FProjects\u002FEmbedAnything_500_x_200_px_a4l8xu.png\">\n\u003C\u002Fp>\n\n\n\n\u003Cdiv align=\"center\">\n\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_7f3cac6adf5d.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fembed-anything)\n[![GPU支持](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_7f3cac6adf5d.png-gpu)](https:\u002F\u002Fwww.pepy.tech\u002Fprojects\u002Fembed-anything-gpu)\n[![在Colab中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1CowJrqZxDDYJzkclI-rbHaZHgL9C6K3p?usp=sharing)\n[![Discord路线图](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-%235865F2.svg?style=flat&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FjuETVTMdZu)\n[![MkDocs博客](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBlogs-F38020?.svg?logoColor=fff)](https:\u002F\u002Fembed-anything.com\u002Fblog\u002F)\n\n\u003C\u002Fdiv>\n\n\n\u003Cdiv align=\"center\">\n\n  \u003Cp align=\"center\">\n    \u003Cb> 高性能、模块化且内存安全\u003C\u002Fb>\n    \u003Cbr \u002F>\n    \u003Cb> 使用Rust进行数据摄取、推理和索引 🦀\u003C\u002Fb>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fembed-anything.com\u002Freferences\u002F\">Python文档 »\u003C\u002Fa>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fdocs.rs\u002Fembed_anything\u002Flatest\u002Fembed_anything\u002F\">Rust文档 »\u003C\u002Fa>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#benchmarks\">\u003Cstrong>基准测试\u003C\u002Fstrong>\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#%EF%B8%8Ffaq\">\u003Cstrong>常见问题解答\u003C\u002Fstrong>\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Ftree\u002Fmain\u002Fexamples\u002Fadapters\">\u003Cstrong>适配器\u003C\u002Fstrong>\u003C\u002Fa>\n    .\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-our-past-collaborations\">\u003Cstrong>合作案例\u003C\u002Fstrong>\u003C\u002Fa>\n    .\n     \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-notebooks\">\u003Cstrong>笔记本示例\u003C\u002Fstrong>\u003C\u002Fa>\n\n\n    \n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\nEmbedAnything是一个极简但高性能的模块化嵌入流水线，采用Rust语言编写，速度极快、轻量级，支持多源、多模态数据，并可在本地运行。无论您处理的是文本、图像、音频、PDF、网页或其他媒体，EmbedAnything都能简化从各种来源生成嵌入向量的过程，并以高效的方式（内存优化索引）将其无缝流式传输到向量数据库中。它支持密集型、稀疏型、ONNX、model2vec以及后期交互式嵌入，为广泛的使用场景提供了灵活性。\n\n\n\n\u003Cp align =\"center\">\n\u003Cimg width=400 src = \"https:\u002F\u002Fres.cloudinary.com\u002Fdogbbs77y\u002Fimage\u002Fupload\u002Fv1766251819\u002Fstreaming_popagm.png\">\n\u003C\u002Fp>\n\n\u003C!-- 目录 -->\n\u003Cdetails>\n  \u003Csummary>目录\u003C\u002Fsummary>\n  \u003Col>\n    \u003Cli>\n      \u003Ca href=\"#about-the-project\">项目简介\u003C\u002Fa>\n      \u003Cul>\n        \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#the-benefit-of-rust-for-speed\">基于Rust构建\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#why-candle\">为什么选择Candle？\u003C\u002Fa>\u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Fli>\n    \u003Cli>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-getting-started\">快速入门\u003C\u002Fa>\n      \u003Cul>\n        \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-installation\">安装指南\u003C\u002Fa>\u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#-getting-started\">使用方法\u003C\u002Fa>\u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#roadmap\">路线图\u003C\u002Fa>\u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#quick-start\">贡献方式\u003C\u002Fa>\u003C\u002Fli>\n    \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything?tab=readme-ov-file#Supported-Models\">如何添加自定义模型和分块大小\u003C\u002Fa>\u003C\u002Fli>\n    \n  \u003C\u002Fol>\n\u003C\u002Fdetails>\n\n\n## 🚀 核心特性\n\n\n- **无需依赖PyTorch**：易于部署在云端，内存占用低。\n- **高度模块化**：只需~~一行代码~~一个词即可为RAG选择任意向量数据库适配器。\n- **后端支持**：兼容Candle、ONNX及云端模型。\n- **多模态支持**：可处理PDF、txt、md等文本文件，以及JPG图片和.WAV音频文件。\n- **GPU支持**：也支持GPU硬件加速。\n- **分块功能**：内置语义分块、延迟分块等方法。\n- **向量流式传输**：将文件处理、索引和推理分别放在不同线程上执行，从而降低延迟。\n- **AWS S3存储桶**：可直接导入AWS S3存储桶中的文件。\n- **预构建Docker镜像**：只需拉取starlightsearch\u002Fembedanything-server即可。\n- **SearchAgent**：展示了如何利用索引进行搜索推理的示例。\n\n\n## 💡什么是向量流式传输？\n\n嵌入模型计算成本高且耗时。通过将文档预处理与模型推理分离，可以显著降低流水线的延迟并提高吞吐量。\n\n向量流式传输将原本的顺序瓶颈转化为高效的并发工作流程。\n\n嵌入过程与主进程分离，从而充分利用Rust的MPSC机制实现高性能，并且由于嵌入直接保存到向量数据库中，因此不会出现内存泄漏。更多信息请参见我们的[博客](https:\u002F\u002Fstarlight-search.com\u002Fblog\u002F2025\u002F02\u002F25\u002Fvector%20database\u002F)。\n\n[![EmbedAnythingXWeaviate](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_1c2c68ad087f.gif)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=OJRWPLQ44Dw)\n\n## 🦀 为什么选择Embed Anything \n\n➡️执行速度更快。\u003Cbr \u002F>\n➡️无需依赖PyTorch，因此内存占用低，便于在云端部署。\u003Cbr \u002F>\n➡️真正的多线程处理。\u003Cbr \u002F>\n➡️可以在本地高效运行嵌入模型。\u003Cbr \u002F>\n➡️内置语义分块、延迟分块等方法。\u003Cbr\u002F>\n➡️支持多种模型，包括密集型、稀疏型、后期交互式、重排序器、ModernBert等。\u003Cbr \u002F>\n➡️内存管理：Rust强制实施内存管理机制，有效防止其他语言中常见的内存泄漏和崩溃问题。\u003Cbr \u002F>\n\n**⚠️ WhichModel已在pretrained_hf中弃用**\n\n\n## 🍓 我们的过往合作：\n\n我们曾与多家知名企业合作，包括\n[Elastic](https:\u002F\u002Fwww.youtube.com\u002Flive\u002FOzQopxkxHyY?si=l6KasNNuCNOKky6f)、[Weaviate](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fsonam-pankaj_machinelearning-data-ai-activity-7238832243622768644-gB8c?utm_source=share&utm_medium=member_desktop&rcm=ACoAABlF_IAB4Y74d5JJwj0CUwpTkhuskE0PAt4)、[SingleStore](https:\u002F\u002Fwww.linkedin.com\u002Fevents\u002Fbuildingdomain-specificragappli7295319309566775297\u002Ftheater\u002F)、[Milvus](https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fbuild_RAG_with_milvus_and_embedAnything.md) \n以及 [Analytics Vidya Datahours](https:\u002F\u002Fcommunity.analyticsvidhya.com\u002Fc\u002Fdatahour\u002Fmultimodal-embeddings-and-search-with-embed-anything-6adba0)\n\n如需进一步合作，欢迎与我们联系。\n\n## 基准测试\n\n### 推理速度基准测试。\n仅测量嵌入模型在 ONNX Runtime 上的推理速度。[代码](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1nXvd25hDYO-j7QGOIIC0M7MDpovuPCaD?usp=sharing)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_8a22b20d42b5.png\" width=\"500\">\n\n\n与其他框架的基准测试即将推出！！🚀\n# ⭐ 支持的模型\n\n我们在 Candle 中支持所有 Hugging Face 模型。此外，我们还支持 BERT 和 ColPali 的 ONNX Runtime。\n\n## 如何在 Candle 上添加自定义模型：from_pretrained_hf\n\n**⚠️ WhichModel 已在 from_pretrained_hf 中弃用**\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, TextEmbedConfig\n\n\n# 从 Hugging Face 加载自定义 BERT 模型\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# 配置嵌入参数\nconfig = TextEmbedConfig(\n    chunk_size=1000,      # 每个分块的最大字符数\n    batch_size=32,        # 并行处理的分块数量\n    splitting_strategy=\"sentence\"  # 文本分割策略：\"sentence\"、\"word\" 或 \"semantic\"\n)\n\n# 嵌入文件（支持 PDF、TXT、MD 等）\ndata = embed_anything.embed_file(\"path\u002Fto\u002Fyour\u002Ffile.pdf\", embedder=model, config=config)\n\n# 访问嵌入和文本\nfor item in data:\n    print(f\"文本: {item.text[:100]}...\")  # 前 100 个字符\n    print(f\"嵌入形状: {len(item.embedding)}\")\n    print(f\"元数据: {item.metadata}\")\n    print(\"---\" * 20)\n```\n\n\n| 模型  | HF 链接 |\n| ------------- | ------------- | \n| Jina  | [Jina Models](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fjinaai\u002Fjina-embeddings-v2-65708e3ec4993b8fb968e744) | \n| Bert | 所有基于 BERT 的模型 |\n| CLIP | openai\u002Fclip-* | \n| Whisper| [OpenAI Whisper 模型](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fopenai\u002Fwhisper-release-6501bba2cf999715fd953013)|\n| ColPali | starlight-ai\u002Fcolpali-v1.2-merged-onnx|\n| Colbert | answerdotai\u002Fanswerai-colbert-small-v1, jinaai\u002Fjina-colbert-v2 及更多 |\n| Splade | [Splade Models](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fnaver\u002Fsplade-667eb6df02c2f3b0c39bd248)及其他类似 Splade 的模型 |\n| Model2Vec | model2vec, minishlab\u002Fpotion-base-8M |\n| Qwen3-Embedding | Qwen\u002FQwen3-Embedding-0.6B |\n| Reranker | [Jina Reranker Models](https:\u002F\u002Fhuggingface.co\u002Fjinaai\u002Fjina-reranker-v2-base-multilingual), Xenova\u002Fbge-reranker, Qwen\u002FQwen3-Reranker-4B |\n\n\n## Splade 模型（稀疏嵌入）\n\n稀疏嵌入适用于基于关键词的检索和混合搜索场景。\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig\n\n\n# 加载用于稀疏嵌入的 SPLADE 模型\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"prithivida\u002FSplade_PP_en_v1\"\n)\n\n# 配置嵌入过程\nconfig = TextEmbedConfig(chunk_size=1000, batch_size=32)\n\n# 嵌入文本文件\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.txt\", embedder=model, config=config)\n\n# 稀疏嵌入适用于混合搜索（结合稠密和稀疏嵌入）\nfor item in data:\n    print(f\"文本: {item.text}\")\n    print(f\"稀疏嵌入（非零值）: {sum(1 for x in item.embedding if x != 0)}\")\n```\n\n## ONNX-Runtime：from_pretrained_onnx\n\nONNX 模型提供更快的推理速度和更低的内存占用。可以使用 `ONNXModel` 枚举来加载预配置的模型，或提供自定义模型路径。\n\n### BERT 模型\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, ONNXModel, Dtype, TextEmbedConfig\n\n\n# 选项 2：使用来自 Hugging Face 的自定义 ONNX 模型\nmodel = EmbeddingModel.from_pretrained_onnx(\n    WhichModel.Bert\n    model_id=\"onnx_model_link\",\n    dtype=Dtype.F16  # 使用半精度以加快推理速度\n)\n```\n\n### 云端嵌入模型（Cohere Embed v4）\n\n使用云模型可以获得高质量的嵌入，而无需本地部署模型。\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel\nimport os\n\n# 设置你的 API 密钥\nos.environ[\"COHERE_API_KEY\"] = \"your-api-key-here\"\n\n# 初始化云端模型\nmodel = EmbeddingModel.from_pretrained_cloud(\n    WhichModel.CohereVision, \n    model_id=\"embed-v4.0\"\n)\n\n# 像使用其他模型一样使用它\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.pdf\", embedder=model)\n```\n\n\n## 语义分块\n\n语义分块通过在语义上有意义的边界处分割文本，而不是按固定大小进行分割，从而保留文本的意义。\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig\n\n# 用于生成最终嵌入的主要嵌入模型\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# 用于确定分块边界的语义编码器\n# 此模型会分析文本以找到自然的语义断点\nsemantic_encoder = EmbeddingModel.from_pretrained_hf(\n    model_id=\"jinaai\u002Fjina-embeddings-v2-small-en\"\n)\n\n# 配置语义分块\nconfig = TextEmbedConfig(\n    chunk_size=1000,                    # 目标分块大小\n    batch_size=32,                      # 批量处理大小\n    splitting_strategy=\"semantic\",      # 使用语义分割\n    semantic_encoder=semantic_encoder    # 用于语义分析的模型\n)\n\n# 使用语义分块进行嵌入\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.pdf\", embedder=model, config=config)\n\n# 分块将在语义上有意义的边界处被分割\nfor item in data:\n    print(f\"分块: {item.text[:200]}...\")\n    print(\"---\" * 20)\n```\n\n## 延迟分块\n\n延迟分块首先将文本分割成更小的单元，然后在嵌入过程中再将它们组合起来，以更好地保留上下文。\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig, EmbedData\n\n# 加载你的嵌入模型\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# 配置延迟分块\nconfig = TextEmbedConfig(\n    chunk_size=1000,              # 最大分块大小\n    batch_size=8,                 # 处理批次大小\n    splitting_strategy=\"sentence\", # 先按句子分割\n    late_chunking=True,           # 启用延迟分块\n)\n\n# 使用延迟分块嵌入文件\ndata: list[EmbedData] = model.embed_file(\"test_files\u002Fattention.pdf\", config=config)\n\n# 延迟分块有助于在句子边界上保持上下文\nfor item in data:\n    print(f\"文本: {item.text}\")\n    print(f\"嵌入维度: {len(item.embedding)}\")\n    print(\"---\" * 20)\n```\n\n# 🧑‍🚀 开始使用\n\n## 💚 安装\n\n`\npip install embed-anything\n`\u003Cbr\u002F>\n\n对于 GPU 用户以及使用特殊模型如 ColPali 的情况：\u003Cbr\u002F>\n\n`\npip install embed-anything-gpu\n`\n\n🚧❌ 如果在 Windows 上运行时出现 CUDA 错误，请执行以下命令：\n\n```\nos.add_dll_directory(\"C:\u002FProgram Files\u002FNVIDIA GPU Computing Toolkit\u002FCUDA\u002Fv12.6\u002Fbin\")\n```\n\n## 📒 笔记本\n\n\n|   |   \n| ------------- | \n| [使用向量数据库适配器进行端到端检索和重排序](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1gct0lEplyW8VWGPXUgpLcQuMQeZDl6D5?usp=sharing)  | \n| [ColPali-Onnx](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1yCVbpkoe53ymiCxG8ttJNbRhECy1Q-Du?usp=sharing)  | \n| [适配器](https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Ftree\u002Fmain\u002Fexamples\u002Fadapters) |  |\n| [Qwen3- 嵌入](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1OlUJwTtPvj28h5tCVerf6ebEnAf8kPAh?usp=sharing) | \n| [基准测试](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1nXvd25hDYO-j7QGOIIC0M7MDpovuPCaD?usp=sharing) | \n\n\n\n### 高级用法与配置\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, TextEmbedConfig\n\n# 加载模型\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"jinaai\u002Fjina-embeddings-v2-small-en\"\n)\n\n# 配置嵌入参数\nconfig = TextEmbedConfig(\n    chunk_size=1000,              # 每个分块的字符数\n    batch_size=32,                # 每次处理32个分块\n    buffer_size=64,               # 流式传输的缓冲区大小\n    splitting_strategy=\"sentence\" # 按句子分割\n)\n\n# 使用自定义配置进行嵌入\ndata = embed_anything.embed_file(\n    \"test_files\u002Fdocument.pdf\", \n    embedder=model, \n    config=config\n)\n\n# 处理嵌入结果\nfor item in data:\n    print(f\"分块: {item.text}\")\n    print(f\"元数据: {item.metadata}\")\n```\n\n### 查询嵌入\n\n```python\n\n# 嵌入查询\nqueries = [\"什么是机器学习？\", \"神经网络是如何工作的？\"]\nquery_embeddings = embed_anything.embed_query(queries, embedder=model)\n\n# 使用嵌入进行相似度搜索\nfor i, query_emb in enumerate(query_embeddings):\n    print(f\"查询: {queries[i]}\")\n    print(f\"嵌入形状: {len(query_emb.embedding)}\")\n```\n\n### 目录嵌入\n\n```python\n\n# 嵌入目录中的所有文件\ndata = embed_anything.embed_directory(\n    \"test_files\u002F\", \n    embedder=model, \n    config=config\n)\n\nprint(f\"总分块数: {len(data)}\")\n```\n\n#### 使用自定义 ONNX 模型\n\n对于自定义或微调过的模型，指定 Hugging Face 模型 ID 和 ONNX 文件路径：\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, WhichModel, Dtype\n\n# 从 Hugging Face 加载自定义 ONNX 模型\nmodel = EmbeddingModel.from_pretrained_onnx(\n    WhichModel.Jina,\n    hf_model_id=\"jinaai\u002Fjina-embeddings-v2-small-en\",\n    path_in_repo=\"model.onnx\",  # 仓库中 ONNX 文件的路径\n    dtype=Dtype.F16              # 使用半精度\n)\n\n# 使用该模型\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.pdf\", embedder=model)\n```\n\n**注意**: 建议使用预配置的模型（通过 `ONNXModel` 枚举），因为这些模型已经过测试和优化。有关支持的完整 ONNX 模型列表，请参阅 [ONNX 模型指南](\u002Fdocs\u002Fguides\u002Fonnx_models.md)。\n\n## ⁉️常见问题解答\n\n### 我需要了解 Rust 才能使用或贡献 EmbedAnything 吗？\n答案是不需要。EmbedAnything 提供了 pyo3 绑定，因此您可以在 Python 中运行任何函数而不会遇到问题。要参与贡献，您可以查看我们的指南以及 adapters 文件夹中的 Python 示例。\n\n### 它与 fastembed 有何不同？\n\n我们同时提供了 candle 和 onnx 两种后端。此外，我们还提供了一个端到端的流程，即您可以摄取不同数据类型并索引到任何向量数据库中，然后对任何模型进行推理。而 fastembed 只是一个 ONNX 包装器。\n\n### 我们收到了很多关于为什么使用 Candle 的问题。\n\n其中一个主要原因是 Candle 不需要特定格式的 ONNX 模型，这意味着它可以无缝地与任何 Hugging Face 模型一起工作。这种灵活性对我们来说至关重要。然而，我们也意识到，为了获得这种灵活性，我们在一定程度上牺牲了速度。\n\n\n## 🚧 贡献 EmbedAnything\n\n首先，感谢您抽出时间来为这个项目做出贡献。我们非常感谢您的贡献，无论是错误报告、功能建议还是拉取请求。您的时间和努力在这个项目中备受珍视。🚀\n\n本文档提供了指导方针和最佳实践，以帮助您有效地做出贡献。这些内容旨在作为指导，而非严格规则。我们鼓励您根据自己的判断行事，并随时可以通过拉取请求提出对本文档的修改建议。\n\n\n\n\u003Cli>\u003Ca href=\"##-RoadMap\">路线图\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"##-Quick-Start\">快速入门\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"##-Contributing-Guidelines\">贡献指南\u003C\u002Fa>\u003C\u002Fli>\n\n\n# 🏎️ 路线图 \n\n## 已完成事项\n\nEmbedAnything 的目标之一是让 AI 工程师能够轻松地在典型文件和文档上使用最先进的嵌入模型。目前我们已经取得了许多成就，以下是我们当前支持的格式，还有一些工作有待完成。\u003Cbr \u002F>\n\n\n### 🖼️ 模态与来源\n\n我们很高兴地宣布，我们的平台已扩展到支持多种模态，包括：\n\n- [x] 音频文件\n\n- [x] Markdown 文件\n\n- [x] 网站\n\n- [x] 图片\n\n- [x] 视频（帧采样；启用 `video` 功能）\n\n- [ ] 图\n\n这使您能够在同一个平台上灵活地处理各种数据类型！🌐 \u003Cbr \u002F>\n\n\n\n### ⚙️ 性能 \n\n\n我们现在同时支持 candle 和 Onnx 后端\u003Cbr\u002F>\n➡️ 支持 GGUF 模型 \u003C\u002Fbr >\n\n\n### 🫐 嵌入：\n\n从一开始，我们的基础设施就支持多模态。我们已经将其应用于网站、图片和音频，但我们希望进一步扩展它。\n\n➡️ 图嵌入 -- 构建深度优先的 deepwalk 嵌入和 word to vec \u003Cbr\u002F>\n➡️ 视频嵌入改进（时空 + 音频）\u003Cbr\u002F>\n➡️ Yolo Clip \u003Cbr\u002F>\n\n\n### 🌊 扩展到其他向量适配器\n\n我们目前支持广泛的向量数据库用于流式嵌入，包括：\n\n- Elastic：感谢卓越且活跃的 Elastic 团队的贡献 \u003Cbr\u002F>\n- Weaviate \u003Cbr\u002F>\n- Pinecone \u003Cbr\u002F>\n- Qdrant \u003Cbr\u002F>\n- Milvus\u003Cbr\u002F>\n- Chroma \u003Cbr\u002F>\n\n如何添加适配器：https:\u002F\u002Fstarlight-search.com\u002Fblog\u002F2024\u002F02\u002F25\u002Fadapter-development-guide.md\n\n### 💥 创建 WASM 演示，将 EmbedAnything 直接集成到浏览器中。\u003Cbr\u002F>\n\n### 💜 添加对远程源摄取的支持\n➡️ 支持 S3 存储桶 \u003C\u002Fbr >\n➡️ 支持 Azure 存储 \u003C\u002Fbr >\n➡️ 支持 Google Drive\u002FDropbox\u003C\u002Fbr >\n\n\n\n\n但我们并未止步于此！我们正在积极努力扩展此列表。\n\n想参与贡献吗？\n如果您希望为我们最喜欢的向量数据库添加支持，我们非常乐意得到您的帮助！请查看我们的 contribution.md 文件以获取指南，或者直接联系 sonam@starlight-search.com 。让我们一起构建一些令人惊叹的东西吧！💡\n\n## 基于 EmbedAnything 构建的精彩项目。\n1. 一款基于 Rust 的、类似聊天的代码库交互工具：https:\u002F\u002Fgithub.com\u002Ftimpratim\u002Fcargo-chat\n2. 一个简单的向量检索引擎，同时也支持普通文本搜索：https:\u002F\u002Fgithub.com\u002Fszuwgh\u002Fvectorbase2\n3. 通过 Rust 构建的守护进程在 CLI 中运行的语义文件跟踪器：https:\u002F\u002Fgithub.com\u002Fsam-salehi\u002Fsophist\n4. FogX-Store 是一个用于收集和提供大型机器人数据集的数据集存储服务：https:\u002F\u002Fgithub.com\u002FJ-HowHuang\u002FFogX-Store\n5. EmbedAnything 库的 Dart 封装：https:\u002F\u002Fgithub.com\u002Fcotw-fabier\u002Fembedanythingindart\n6. 在 macOS 上使用 Tauri 框架以 Rust 生成嵌入向量：https:\u002F\u002Fgithub.com\u002Fdo-me\u002Ftauri-embedanything-ios\n7. 使用 EmbedAnything 和 Milvus 构建 RAG 系统：https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fv2.5.x\u002Fbuild_RAG_with_milvus_and_embedAnything.md\n\n\n\n\n## 衷心感谢所有关注我们的用户\n\n## 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_readme_eebd22cdde5f.png)](https:\u002F\u002Fstar-history.com\u002F#StarlightSearch\u002FEmbedAnything&Date)","# EmbedAnything 快速上手指南\n\nEmbedAnything 是一个基于 Rust 构建的高性能、模块化且内存安全的嵌入（Embedding）管道。它支持文本、图像、音频、PDF 等多种数据源，能够高效地生成稠密、稀疏及多模态向量，并直接流式传输至向量数据库。由于不依赖 PyTorch，它具有极低的内存占用和更快的执行速度，非常适合本地部署和云环境。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows (WSL 推荐)\n*   **Python 版本**: Python 3.8 - 3.12\n*   **硬件加速 (可选)**:\n    *   **GPU**: 如需启用 GPU 加速，请确保已安装正确的 NVIDIA 驱动和 CUDA 工具包。\n    *   **CPU**: 默认支持，利用 Rust 的多线程优势。\n*   **前置依赖**: 无需安装 PyTorch 或 TensorFlow，EmbedAnything 自带轻量级后端 (Candle\u002FONNX)。\n\n## 安装步骤\n\n您可以通过 `pip` 直接安装。根据是否需要在 GPU 上运行，选择对应的安装包：\n\n### 1. CPU 版本 (默认推荐)\n适用于大多数通用场景，内存占用极低。\n\n```bash\npip install embed-anything\n```\n\n### 2. GPU 版本\n如果您拥有 NVIDIA GPU 并希望获得更快的推理速度，请安装 GPU 专用版本。\n\n```bash\npip install embed-anything-gpu\n```\n\n> **提示**: 国内用户若遇到下载速度慢的问题，建议使用国内镜像源安装：\n> ```bash\n> pip install embed-anything -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n以下是使用 EmbedAnything 处理本地文件（如 PDF、TXT、MD）并生成向量的最简示例。\n\n### 示例：加载模型并嵌入文件\n\n此示例演示了如何从 Hugging Face 加载一个 BERT 模型，配置分块策略，并对文件进行嵌入处理。\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig\n\n# 1. 加载预训练模型 (自动从 Hugging Face 下载)\n# 支持 sentence-transformers, Jina, CLIP, Whisper 等多种模型\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# 2. 配置嵌入参数\nconfig = TextEmbedConfig(\n    chunk_size=1000,              # 每个分块的最大字符数\n    batch_size=32,                # 并行处理的批大小\n    splitting_strategy=\"sentence\" # 分块策略：\"sentence\", \"word\", 或 \"semantic\"\n)\n\n# 3. 嵌入文件 (支持 PDF, TXT, MD, JPG, WAV 等)\n# 该过程包含文件解析、分块、推理和向量化\ndata = embed_anything.embed_file(\"path\u002Fto\u002Fyour\u002Ffile.pdf\", embedder=model, config=config)\n\n# 4. 遍历结果\nfor item in data:\n    print(f\"文本片段：{item.text[:100]}...\")  # 打印前 100 个字符\n    print(f\"向量维度：{len(item.embedding)}\")\n    print(f\"元数据：{item.metadata}\")\n    print(\"---\" * 20)\n```\n\n### 进阶：使用语义分块 (Semantic Chunking)\n\n为了保持文本的语义完整性，您可以使用专门的编码器进行智能分块：\n\n```python\nimport embed_anything\nfrom embed_anything import EmbeddingModel, TextEmbedConfig\n\n# 主嵌入模型\nmodel = EmbeddingModel.from_pretrained_hf(\n    model_id=\"sentence-transformers\u002Fall-MiniLM-L12-v2\"\n)\n\n# 语义分析模型 (用于确定最佳切分点)\nsemantic_encoder = EmbeddingModel.from_pretrained_hf(\n    model_id=\"jinaai\u002Fjina-embeddings-v2-small-en\"\n)\n\n# 配置语义分块\nconfig = TextEmbedConfig(\n    chunk_size=1000,\n    batch_size=32,\n    splitting_strategy=\"semantic\",      # 启用语义分块\n    semantic_encoder=semantic_encoder   # 指定语义分析模型\n)\n\n# 执行嵌入\ndata = embed_anything.embed_file(\"test_files\u002Fdocument.pdf\", embedder=model, config=config)\n```\n\n### 支持的数据源与模型类型\n*   **多模态支持**: 文本 (PDF, TXT, MD), 图像 (JPG), 音频 (WAV)。\n*   **模型类型**: 稠密向量 (Dense), 稀疏向量 (Splade), 多向量交互 (ColBERT\u002FColPali), 重排序模型 (Reranker)。\n*   **云端模型**: 支持通过 API 调用 Cohere 等云端大模型进行嵌入。","某初创团队正在构建一个支持 PDF 文档、网页文章和本地图片的多模态企业知识库，需要快速将海量异构数据转化为向量并入库以支持 RAG（检索增强生成）应用。\n\n### 没有 EmbedAnything 时\n- **资源消耗巨大**：依赖 PyTorch 重型框架，导致容器内存占用极高，在云函数或边缘设备上部署成本昂贵且容易崩溃。\n- **开发流程割裂**：处理 PDF、图片和文本需要编写多套独立的预处理和推理脚本，代码冗余严重，维护难度极大。\n- **索引效率低下**：数据必须先全部加载到内存生成嵌入后再批量写入数据库，面对大文件时极易触发内存溢出（OOM），无法实现流式处理。\n- **模型切换繁琐**：尝试更换更轻量级的 ONNX 模型或调整分块策略时，往往需要重构大量底层推理代码。\n\n### 使用 EmbedAnything 后\n- **极致轻量部署**：基于 Rust 构建且无需 PyTorch 依赖，内存占用降低数倍，可轻松运行在低配云服务器甚至本地笔记本上。\n- **统一多模态流水线**：通过模块化设计，仅用一行代码即可统一接入 PDF、图像和文本源，自动调用对应模型生成向量，大幅简化架构。\n- **流式内存安全索引**：利用其原生的流式处理能力，边读取数据边生成嵌入并实时写入向量库，彻底解决大文件处理时的内存瓶颈。\n- **灵活适配零摩擦**：支持无缝切换 Dense、Sparse 或 ONNX 模型，调整分块大小或向量数据库适配器几乎不需要修改核心业务逻辑。\n\nEmbedAnything 通过 Rust 的高性能与内存安全特性，将复杂的多模态数据入库流程转化为轻量、流式且高度模块化的生产级解决方案。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FStarlightSearch_EmbedAnything_78499a8f.png","StarlightSearch","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FStarlightSearch_d4707c3a.png","Intelligence Layer powered by rust",null,"www.starlight-search.com","https:\u002F\u002Fgithub.com\u002FStarlightSearch",[83,87,91,95],{"name":84,"color":85,"percentage":86},"Rust","#dea584",92,{"name":88,"color":89,"percentage":90},"Python","#3572A5",7.3,{"name":92,"color":93,"percentage":94},"Dockerfile","#384d54",0.7,{"name":96,"color":97,"percentage":98},"HTML","#e34c26",0,1175,114,"2026-04-02T06:57:34","Apache-2.0","Linux, macOS, Windows","非必需。支持 NVIDIA GPU 硬件加速（通过 Candle 后端或 ONNX Runtime），也支持纯 CPU 运行。具体显存和 CUDA 版本未说明，取决于所选模型大小。","未说明（强调低内存占用和内存安全）",{"notes":107,"python":108,"dependencies":109},"该工具核心由 Rust 编写，最大特点是不依赖 PyTorch，因此部署轻便且内存占用低。支持多种后端（Candle, ONNX, 云端模型）和多模态数据（文本、PDF、图片、音频）。提供预构建的 Docker 镜像 (starlightsearch\u002Fembedanything-server) 以简化部署。支持语义分块和向量流式传输以提高效率。","未说明（提供 Python API，核心由 Rust 编写）",[110,111,112],"embed-anything (Python 包)","Candle (内置 Rust 深度学习框架)","ONNX Runtime (可选)",[14,54,26,51,15,13],[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"machine-learning","indexing","rag","rust","information-retrieval","vector-database","high-performance","inference","python","onnxruntime","server","cloud","ai","pipeline","search","large-language-models","production-ready","hacktoberfest","generative-ai","local","2026-03-27T02:49:30.150509","2026-04-06T06:44:00.045260",[138,143,148,153,158,163],{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},13007,"如何在 iOS 或移动端自定义模型文件的下载和缓存路径？","目前无法直接在代码构建器中设置路径，但可以通过设置环境变量 `HF_HOME` 来指定模型文件的下载和缓存目录。这对于 iOS 等只能使用特定目录（如 AppCache）而无法访问默认 AppData 目录的场景非常有用。\n\n设置方法：\nexport HF_HOME=\u002Fyour\u002Fcustom\u002Fpath\n\n维护者表示未来会考虑通过 builder 允许直接设置路径，但目前环境变量是有效的短期解决方案。","https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fissues\u002F114",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},13008,"为什么 Qwen3 模型不支持或不推荐用于 Late Chunking（延迟分块）？","Late Chunking 技术主要适用于基于“平均池化”（mean pooling）的模型。Qwen3 嵌入模型使用的是“最后 token 池化”（last-token pooling）技术，因此 Late Chunking 对其不起作用，甚至不会提升性能。\n\n维护者确认：“我记得这就是我没有给 Qwen3 添加 late chunking 的原因。它仅对基于 mean pooling 的模型有效。”因此，在使用 Qwen3 时无需尝试配置此功能。","https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fissues\u002F168",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},13009,"ColPali 模型在 GPU 上运行报错或只能在 CPU 上运行怎么办？","如果遇到 CUDA 驱动错误（如 `DriverError(CUDA_ERROR_NOT_FOUND)`）或发现 ONNX 版本仅在 CPU 运行，请参考以下方案：\n\n1. **使用官方 Notebook**：项目提供了专门的 ColPali ONNX Notebook，其中包含了必要的依赖安装说明（如未安装 Torch 可能需要安装 cudaNN）。\n   - GitHub 示例：https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fblob\u002Fmain\u002Fexamples\u002Fnotebooks\u002Fcolpali.ipynb\n   - Colab GPU 版本：https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1CowJrqZxDDYJzkclI-rbHaZHgL9C6K3p?usp=sharing\n\n2. **关于 Candle 后端**：目前尚未发布支持 GPU 的 Candle 版本（因为还需要适配 Metal 等平台），如果需要在 GPU 上进行评估，请优先使用 ONNX 后端并参考上述笔记本配置。","https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fissues\u002F163",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},13010,"Milvus 向量数据库连接时出现文本字段长度限制错误如何解决？","当处理较大的 PDF 文件时，可能会因为 Milvus 数据库中存储内容的文本字段长度限制（默认为 1098 个字符）而失败。\n\n解决方案是将文本字段的长度限制增加。根据社区反馈，将长度从 1098 修改为 2048 或 4048 可以解决因文件内容过长导致的插入失败问题。如果您在自行部署或修改源码，请检查相关的 Schema 定义并调大 `varchar` 的长度限制。","https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fissues\u002F73",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},13011,"如何配置以支持 `HF_HOME` 和 `HF_ENDPOINT` 环境变量？","如果您需要使用 `HF_HOME`（自定义缓存目录）或 `HF_ENDPOINT`（自定义 Hugging Face 镜像源），请确保库内部使用了 `ApiBuilder::from_env` 而不是 `ApiBuilder::new` 来初始化 Hugging Face API。\n\n技术细节：\n该项目依赖 `hf-hub` crate (v0.4.2+)，该版本支持通过 `ApiBuilder::from_env` 自动读取环境变量。如果当前版本未生效，可能是因为构造函数硬编码了 `new`。开发者建议将所有相关构造函数更新为 `from_env` 以原生支持这些环境变量，从而方便在内网或特定存储路径下使用。","https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fissues\u002F178",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},13012,"代码中 'embeder' 和 'embedder' 拼写不一致，哪个是正确的？","正确的拼写是 **embedder**。\n\n维护者已确认之前的 'embeder' 是一个传播已久的拼写错误（typo）。在查阅文档或编写代码时，请统一使用 'embedder'。如果您在贡献代码或文档，请将所有 'embeder' 修正为 'embedder' 以保持一致性。","https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fissues\u002F88",[169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264],{"id":170,"version":171,"summary_zh":172,"released_at":173},71671,"0.7.0","## 变更内容\n* 修复文件无扩展名时的 panic，由 @st0nie 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F185 中完成\n* 增加对 AWS S3 的支持，由 @taradepan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F184 中完成\n* 修复：支持 `HF_HOME` 和 `HF_ENDPOINT`，由 @DayNice 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F187 中完成\n* 修复 Qwen3Embed 在并发情况下的 panic，由 @st0nie 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F186 中完成\n* 修复：在 `pyi` 文件中添加缺失的 `staticmethod` 装饰器，并移除重复声明，由 @DayNice 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F189 中完成\n* 开发工作由 @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F192 中完成\n\n## 新贡献者\n* @st0nie 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F185 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.6.6...0.7.0","2025-12-27T22:37:13",{"id":175,"version":176,"summary_zh":177,"released_at":178},71672,"0.6.6","## 变更内容\n* Qwen_reranker 由 @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F162 中实现\n* textembedconfig 博文由 @sonam-pankaj95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F166 中发布\n* 修正由 @sonam-pankaj95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F167 中完成\n* 功能（文档）：为核心模块添加全面的 Rust 文档，由 @dunky-star 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F170 中实现\n* 开发 - 全面的 Rust 文档，由 @sonam-pankaj95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F171 中完成\n* 更新提示词和格式，以符合 Qwen3 的官方实现，由 @wdhwg001 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F177 中完成\n* 支持 `HF_HOME` 和 `HF_ENDPOINT`，由 @DayNice 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F179 中实现\n* 服务器指南由 @sonam-pankaj95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F181 中编写\n\n## 新贡献者\n* @dunky-star 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F170 中完成了首次贡献\n* @wdhwg001 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F177 中完成了首次贡献\n* @DayNice 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F179 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.6.4...0.6.6","2025-10-28T18:18:34",{"id":180,"version":181,"summary_zh":182,"released_at":183},71673,"0.6.4","## 变更内容\n* Idefics3，由 @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F152 中提交\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.6.3...0.6.4","2025-06-25T17:10:12",{"id":185,"version":186,"summary_zh":187,"released_at":188},71674,"0.6.3","- 修复了 Qwen3 的多批次处理问题\n\n**完整更新日志**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.6.2...0.6.3","2025-06-08T11:39:15",{"id":190,"version":191,"summary_zh":192,"released_at":193},71675,"0.6.2","## 变更内容\n* 功能新增：@Pringled 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F146 中升级了 model2vec-rs 版本\n\n## 新贡献者\n* @Pringled 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F146 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.6.0...0.6.2","2025-06-07T19:54:58",{"id":195,"version":196,"summary_zh":197,"released_at":198},71676,"0.6.0a","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.6.0...0.6.0a","2025-05-26T10:29:13",{"id":200,"version":201,"summary_zh":202,"released_at":203},71677,"0.6.0","## 变更内容\n* @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F145 中贡献的 Model2vec\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.5.6...0.6.0","2025-05-26T09:19:19",{"id":205,"version":206,"summary_zh":207,"released_at":208},71678,"0.5.6a","## 变更内容\n* 使用 `?` 替代解包操作，以避免运行时 panic，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F125 中完成\n* 功能：Milvus 向量数据库适配器，由 @karthikeyanrathore 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F128 中实现\n* 将 HTML 嵌入 Markdown，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F126 中完成\n* 新特性：Qdrant 适配器，由 @Anush008 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F131 中实现\n* 重构：将 Milvus 集成迁移到 MilvusClient API，由 @jinhonglin-ryan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F132 中完成\n* 重写处理器，将其转换为 Markdown 并传递给 MarkdownProcessor，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F130 中完成\n* 杂项：更新依赖并重构代码，由 @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F136 中完成\n* 修复：在 Milvus 适配器示例中，将硬编码的本地 PDF 路径替换为占位符，由 @jinhonglin-ryan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F143 中完成\n* 修复 Rust 版 ColBERT 示例中 `model_id` 参数的位置问题，由 @wesc 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F142 中完成\n* 修复 README 中的 broken links，由 @alvinometric 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F144 中完成\n* 将文档处理器移至新的 processors crate，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F141 中完成\n* 添加 SigLip 模型支持，由 @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F139 中完成\n\n## 新贡献者\n* @karthikeyanrathore 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F128 中完成了首次贡献\n* @Anush008 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F131 中完成了首次贡献\n* @jinhonglin-ryan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F132 中完成了首次贡献\n* @wesc 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F142 中完成了首次贡献\n* @alvinometric 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F144 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.5.5...0.5.6","2025-05-25T14:47:02",{"id":210,"version":211,"summary_zh":212,"released_at":213},71679,"0.5.6","## 变更内容\n* 使用 `?` 替代解包操作，以避免运行时恐慌，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F125 中完成\n* 功能：Milvus 向量数据库适配器，由 @karthikeyanrathore 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F128 中实现\n* 将 HTML 嵌入 Markdown，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F126 中完成\n* 新特性：Qdrant 适配器，由 @Anush008 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F131 中实现\n* 重构：将 Milvus 集成迁移到 MilvusClient API，由 @jinhonglin-ryan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F132 中完成\n* 重写处理器，将其转换为 Markdown 并传递给 MarkdownProcessor，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F130 中完成\n* 杂项：更新依赖并重构代码，由 @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F136 中完成\n* 修复：在 Milvus 适配器示例中，将硬编码的本地 PDF 路径替换为占位符，由 @jinhonglin-ryan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F143 中完成\n* 修复 Rust 版 ColBERT 示例中 `model_id` 参数的位置问题，由 @wesc 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F142 中完成\n* 修复 README 中的 broken links，由 @alvinometric 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F144 中完成\n* 将文档处理器移至新的 processors crate，由 @boswelja 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F141 中完成\n* 添加 SigLip 模型支持，由 @akshayballal95 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F139 中完成\n\n## 新贡献者\n* @karthikeyanrathore 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F128 中完成了首次贡献\n* @Anush008 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F131 中完成了首次贡献\n* @jinhonglin-ryan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F132 中完成了首次贡献\n* @wesc 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F142 中完成了首次贡献\n* @alvinometric 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F144 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.5.5...0.5.6","2025-05-25T14:17:52",{"id":215,"version":216,"summary_zh":217,"released_at":218},71680,"0.5.5","## 变更内容\n* @taradepan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F122 中添加了 ChromaDB 适配器\n* @Femure 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F124 中添加了 rustls-tls 功能\n\n## 新贡献者\n* @taradepan 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F122 中完成了首次贡献\n* @Femure 在 https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F124 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.5.3...0.5.5","2025-03-26T08:52:01",{"id":220,"version":221,"summary_zh":222,"released_at":223},71681,"0.5.3","## What's Changed\r\n* Rewrite Rust documentation - part 1 by @boswelja in https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F106\r\n* Make SplittingStrategy::Semantic require an encoder by @boswelja in https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F118\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.5.2...0.5.3","2025-02-15T13:25:34",{"id":225,"version":226,"summary_zh":227,"released_at":228},71682,"0.5.2","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.5.1...0.5.2","2025-01-19T10:33:14",{"id":230,"version":231,"summary_zh":232,"released_at":233},71683,"0.5.1","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.5.0...0.5.1","2025-01-12T12:29:01",{"id":235,"version":236,"summary_zh":237,"released_at":238},71684,"0.5.0","## What's Changed\r\n* add modernbert by @akshayballal95 in https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F110\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.4.19...0.5.0","2025-01-05T17:24:59",{"id":240,"version":241,"summary_zh":242,"released_at":243},71685,"0.4.19","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.4.18...0.4.19","2024-12-26T18:55:49",{"id":245,"version":246,"summary_zh":247,"released_at":248},71686,"0.4.17a","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.4.17...0.4.17a","2024-12-09T01:07:23",{"id":250,"version":251,"summary_zh":252,"released_at":253},71687,"0.4.17","## What's Changed\r\n* Create HtmlProcessor by @boswelja in https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F94\r\n* Bump ort to resolve version conflicts by @boswelja in https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F96\r\n\r\n## New Contributors\r\n* @boswelja made their first contribution in https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fpull\u002F94\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.4.15...0.4.17","2024-12-09T01:06:02",{"id":255,"version":256,"summary_zh":257,"released_at":258},71688,"0.4.15","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.4.14...0.4.15","2024-11-11T10:27:24",{"id":260,"version":261,"summary_zh":262,"released_at":263},71689,"0.4.14","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.4.13...0.4.14","2024-11-11T09:15:48",{"id":265,"version":266,"summary_zh":267,"released_at":268},71690,"0.4.13","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FStarlightSearch\u002FEmbedAnything\u002Fcompare\u002F0.4.12...0.4.13","2024-11-09T14:07:34"]