[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Eventual-Inc--Daft":3,"tool-Eventual-Inc--Daft":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[14,35],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":78,"owner_url":79,"languages":80,"stars":117,"forks":118,"last_commit_at":119,"license":120,"difficulty_score":32,"env_os":121,"env_gpu":121,"env_ram":121,"env_deps":122,"category_tags":130,"github_topics":133,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":153,"updated_at":154,"faqs":155,"releases":185},4261,"Eventual-Inc\u002FDaft","Daft","High-performance data engine for AI and multimodal workloads. Process images, audio, video, and structured data at any scale","Daft 是一款专为人工智能和多模态任务打造的高性能数据引擎。在当前的 AI 开发中，开发者往往需要分别处理图像、音频、视频等非结构化数据与传统的表格数据，流程繁琐且难以扩展。Daft 旨在解决这一痛点，让用户能在同一个框架内无缝混合处理各类数据，并直接运行大模型提示、生成嵌入向量或进行数据分类。\n\n这款工具特别适合需要处理大规模多模态数据的 AI 工程师、数据科学家及研究人员。无论是本地原型验证，还是通过 Ray 或 Kubernetes 集群进行分布式大规模计算，Daft 都能提供流畅的体验。其核心技术亮点在于\"Python 原生、Rust 驱动”的架构：既保留了 Python 开发的便捷性，又利用 Rust 实现了极致性能，无需面对复杂的 JVM 环境。此外，Daft 具备强大的通用连接能力，可直接访问 S3、Hugging Face、Delta Lake 等多种数据源，并拥有智能的内存管理机制，让开发者能更专注于算法逻辑而非基础设施配置。","|Banner|\n\n|CI| |PyPI| |Latest Tag| |Coverage| |Slack|\n\n`Website \u003Chttps:\u002F\u002Fwww.daft.ai>`_ • `Docs \u003Chttps:\u002F\u002Fdocs.daft.ai>`_ • `Installation \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Finstall\u002F>`_ • `Daft Quickstart \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fquickstart\u002F>`_ • `Community and Support \u003Chttps:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fdiscussions>`_\n\nDaft: High-Performance Data Engine for AI and Multimodal Workloads\n==================================================================\n\n|TrendShift|\n\n`Daft \u003Chttps:\u002F\u002Fwww.daft.ai>`_ is a high-performance data engine for AI and multimodal workloads. Process images, audio, video, and structured data at any scale.\n\n* **Native multimodal processing:** Process images, audio, video, and embeddings alongside structured data in a single framework\n* **Built-in AI operations:** Run LLM prompts, generate embeddings, and classify data at scale using OpenAI, Transformers, or custom models\n* **Python-native, Rust-powered:** Skip the JVM complexity with Python at its core and Rust under the hood for blazing performance\n* **Seamless scaling:** Start local, scale to distributed clusters on `Ray \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fdistributed\u002Fray\u002F>`_, `Kubernetes \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fdistributed\u002Fkubernetes\u002F>`_\n* **Universal connectivity:** Access data anywhere (S3, GCS, Iceberg, Delta Lake, Hugging Face, Unity Catalog)\n* **Out-of-box reliability:** Intelligent memory management and sensible defaults eliminate configuration headaches\n\nGetting Started\n---------------\n\nInstallation\n^^^^^^^^^^^^\n\nInstall Daft with ``pip install daft``. Requires Python 3.10 or higher.\n\nFor more advanced installations (e.g. installing from source or with extra dependencies such as Ray and AWS utilities), please see our `Installation Guide \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Finstall\u002F>`_\n\nQuickstart\n^^^^^^^^^^\n\nGet started in minutes with our `Quickstart \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fquickstart\u002F>`_ - load a real-world e-commerce dataset, process product images, and run AI inference at scale.\n\n\nMore Resources\n^^^^^^^^^^^^^^\n\n* `Examples \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fexamples\u002F>`_ - see Daft in action with use cases across text, images, audio, and more\n* `User Guide \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002F>`_ - take a deep-dive into each topic within Daft\n* `API Reference \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fapi\u002F>`_ - API reference for public classes\u002Ffunctions of Daft\n\nBenchmarks\n----------\n|Benchmark Image|\n\nTo see the full benchmarks, detailed setup, and logs, check out our `benchmarking page. \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fbenchmarks>`_\n\nContributing\n------------\n\nWe ❤️ developers! To start contributing to Daft, please read `CONTRIBUTING.md \u003Chttps:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fblob\u002Fmain\u002FCONTRIBUTING.md>`_. This document describes the development lifecycle and toolchain for working on Daft. It also details how to add new functionality to the core engine and expose it through a Python API.\n\nHere's a list of `good first issues \u003Chttps:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fissues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>`_ to get yourself warmed up with Daft. Comment in the issue to pick it up, and feel free to ask any questions!\n\nTelemetry\n---------\n\nTo help improve Daft, we collect non-identifiable data via Scarf (https:\u002F\u002Fscarf.sh).\n\nTo disable this behavior, set the environment variable ``DO_NOT_TRACK=true``.\n\nThe data that we collect is:\n\n1. **Non-identifiable:** Events are keyed by a session ID which is generated on import of Daft\n2. **Metadata-only:** We do not collect any of our users’ proprietary code or data\n3. **For development only:** We do not buy or sell any user data\n\nPlease see our `documentation \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fresources\u002Ftelemetry\u002F>`_ for more details.\n\n.. image:: https:\u002F\u002Fstatic.scarf.sh\u002Fa.png?x-pxid=31f8d5ba-7e09-4d75-8895-5252bbf06cf6\n\nRelated Projects\n----------------\n\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| Engine                                            | Query Optimizer | Multimodal    | Distributed | Arrow Backed    | Vectorized Execution Engine | Out-of-core |\n+===================================================+=================+===============+=============+=================+=============================+=============+\n| Daft                                              | Yes             | Yes           | Yes         | Yes             | Yes                         | Yes         |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Pandas \u003Chttps:\u002F\u002Fgithub.com\u002Fpandas-dev\u002Fpandas>`_  | No              | Python object | No          | optional >= 2.0 | Some(Numpy)                 | No          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Polars \u003Chttps:\u002F\u002Fgithub.com\u002Fpola-rs\u002Fpolars>`_     | Yes             | Python object | No          | Yes             | Yes                         | Yes         |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Modin \u003Chttps:\u002F\u002Fgithub.com\u002Fmodin-project\u002Fmodin>`_ | Yes             | Python object | Yes         | No              | Some(Pandas)                | Yes         |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Ray Data \u003Chttps:\u002F\u002Fgithub.com\u002Fray-project\u002Fray>`_  | No              | Yes           | Yes         | Yes             | Some(PyArrow)               | Yes         |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `PySpark \u003Chttps:\u002F\u002Fgithub.com\u002Fapache\u002Fspark>`_      | Yes             | No            | Yes         | Pandas UDF\u002FIO   | Pandas UDF                  | Yes         |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Dask DF \u003Chttps:\u002F\u002Fgithub.com\u002Fdask\u002Fdask>`_         | No              | Python object | Yes         | No              | Some(Pandas)                | Yes         |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n\nLicense\n-------\n\nDaft has an Apache 2.0 license - please see the LICENSE file.\n\n.. |Quickstart Image| image:: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fassets\u002F17691182\u002Fdea2f515-9739-4f3e-ac58-cd96d51e44a8\n   :alt: Dataframe code to load a folder of images from AWS S3 and create thumbnails\n   :height: 256\n\n.. |Benchmark Image| image:: https:\u002F\u002Fraw.githubusercontent.com\u002FEventual-Inc\u002FDaft\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fbenchmark.png\n   :alt: AI Benchmarks\n\n.. |Banner| image:: https:\u002F\u002Fdaft.ai\u002Fimages\u002Fdiagram.png\n   :target: https:\u002F\u002Fwww.daft.ai\n   :alt: Daft dataframes can load any data such as PDF documents, images, protobufs, csv, parquet and audio files into a table dataframe structure for easy querying\n\n.. |CI| image:: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Factions\u002Fworkflows\u002Fpr-test-suite.yml\u002Fbadge.svg\n   :target: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Factions\u002Fworkflows\u002Fpr-test-suite.yml?query=branch:main\n   :alt: GitHub Actions tests\n\n.. |PyPI| image:: https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fdaft.svg?label=pip&logo=PyPI&logoColor=white\n   :target: https:\u002F\u002Fpypi.org\u002Fproject\u002Fdaft\n   :alt: PyPI\n\n.. |Latest Tag| image:: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Ftag\u002FEventual-Inc\u002FDaft?label=latest&logo=GitHub\n   :target: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Ftags\n   :alt: latest tag\n\n.. |Coverage| image:: https:\u002F\u002Fcodecov.io\u002Fgh\u002FEventual-Inc\u002FDaft\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=J430QVFE89\n   :target: https:\u002F\u002Fcodecov.io\u002Fgh\u002FEventual-Inc\u002FDaft\n   :alt: Coverage\n\n.. |Slack| image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fslack-@distdata-purple.svg?logo=slack\n   :target: https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fdist-data\u002Fshared_invite\u002Fzt-3rh9jr9iv-tmmTNOlQpfvhEy2NTMWS_w\n   :alt: slack community\n\n.. |TrendShift| image:: https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F8239\n   :target: https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F8239\n   :alt: Eventual-Inc\u002FDaft | Trendshift\n   :width: 250px\n   :height: 55px\n","|横幅|\n\n|CI| |PyPI| |最新标签| |覆盖率| |Slack|\n\n`网站 \u003Chttps:\u002F\u002Fwww.daft.ai>`_ • `文档 \u003Chttps:\u002F\u002Fdocs.daft.ai>`_ • `安装 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Finstall\u002F>`_ • `Daft 快速入门 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fquickstart\u002F>`_ • `社区与支持 \u003Chttps:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fdiscussions>`_\n\nDaft：面向 AI 和多模态工作负载的高性能数据引擎\n==================================================\n\n|趋势变化|\n\n`Daft \u003Chttps:\u002F\u002Fwww.daft.ai>`_ 是一款专为 AI 和多模态工作负载设计的高性能数据引擎。无论规模大小，都能高效处理图像、音频、视频以及结构化数据。\n\n* **原生多模态处理：** 在同一框架内同时处理图像、音频、视频及嵌入向量与结构化数据\n* **内置 AI 操作：** 使用 OpenAI、Transformers 或自定义模型，大规模运行 LLM 提示词、生成嵌入并向数据进行分类\n* **Python 原生，Rust 驱动：** 无需复杂的 JVM 环境，以 Python 为核心，底层由 Rust 提供强大性能\n* **无缝扩展：** 可从本地开始，轻松扩展至基于 `Ray \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fdistributed\u002Fray\u002F>`_ 或 `Kubernetes \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fdistributed\u002Fkubernetes\u002F>`_ 的分布式集群\n* **通用连接性：** 随时随地访问数据（S3、GCS、Iceberg、Delta Lake、Hugging Face、Unity Catalog 等）\n* **开箱即用的可靠性：** 智能内存管理和合理默认设置，让您告别繁琐的配置问题\n\n快速入门\n--------\n\n安装\n^^^^^^\n\n使用 ``pip install daft`` 即可安装 Daft。需 Python 3.10 或更高版本。\n\n如需更高级的安装方式（例如从源码安装或添加 Ray、AWS 工具等额外依赖），请参阅我们的 `安装指南 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Finstall\u002F>`_。\n\n快速上手\n^^^^^^^^\n\n只需几分钟即可通过我们的 `快速入门 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fquickstart\u002F>`_ 开始使用——加载一个真实的电商数据集，处理商品图片，并大规模运行 AI 推理。\n\n\n更多资源\n^^^^^^^^\n\n* `示例 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fexamples\u002F>`_ - 通过文本、图像、音频等多种场景，了解 Daft 的实际应用\n* `用户指南 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002F>`_ - 深入探索 Daft 的各个功能模块\n* `API 参考 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fapi\u002F>`_ - Daft 公开类和函数的 API 文档\n\n基准测试\n----------\n|基准测试图片|\n\n如需查看完整的基准测试结果、详细设置及日志，请访问我们的 `基准测试页面 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fbenchmarks>`_。\n\n贡献代码\n--------\n\n我们非常欢迎开发者参与贡献！要开始为 Daft 贡献代码，请阅读 `CONTRIBUTING.md \u003Chttps:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fblob\u002Fmain\u002FCONTRIBUTING.md>`_ 文件。该文档介绍了 Daft 的开发流程和工具链，还详细说明了如何向核心引擎添加新功能并通过 Python API 对外暴露。\n\n以下是一些适合初学者的 `优质议题 \u003Chttps:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fissues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>`_，帮助您熟悉 Daft。在相关议题下留言即可认领，如有任何疑问也欢迎随时提问！\n\n遥测数据\n---------\n\n为了持续改进 Daft，我们通过 Scarf（https:\u002F\u002Fscarf.sh）收集非识别性数据。\n\n如需禁用此功能，可设置环境变量 ``DO_NOT_TRACK=true``。\n\n我们收集的数据包括：\n\n1. **非识别性：** 事件以会话 ID 进行标记，该 ID 在导入 Daft 时生成\n2. **仅元数据：** 我们不会收集用户的任何专有代码或数据\n3. **仅用于开发：** 我们既不购买也不出售任何用户数据\n\n更多详情请参阅我们的 `文档 \u003Chttps:\u002F\u002Fdocs.daft.ai\u002Fen\u002Fstable\u002Fresources\u002Ftelemetry\u002F>`_。\n\n.. image:: https:\u002F\u002Fstatic.scarf.sh\u002Fa.png?x-pxid=31f8d5ba-7e09-4d75-8895-5252bbf06cf6\n\n相关项目\n--------\n\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| 引擎                                            | 查询优化器      | 多模态        | 分布式      | Arrow 支持      | 向量化执行引擎            | 磁盘外处理 |\n+===================================================+=================+===============+=============+=================+=============================+=============+\n| Daft                                              | 是              | 是            | 是          | 是              | 是                          | 是          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Pandas \u003Chttps:\u002F\u002Fgithub.com\u002Fpandas-dev\u002Fpandas>`_  | 否              | Python 对象     | 否          | 可选 >= 2.0     | 部分（Numpy）               | 否          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Polars \u003Chttps:\u002F\u002Fgithub.com\u002Fpola-rs\u002Fpolars>`_     | 是              | Python 对象     | 否          | 是              | 是                          | 是          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Modin \u003Chttps:\u002F\u002Fgithub.com\u002Fmodin-project\u002Fmodin>`_ | 是              | Python 对象     | 是          | 否              | 部分（Pandas）              | 是          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Ray Data \u003Chttps:\u002F\u002Fgithub.com\u002Fray-project\u002Fray>`_  | 否              | 是            | 是          | 是              | 部分（PyArrow）             | 是          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `PySpark \u003Chttps:\u002F\u002Fgithub.com\u002Fapache\u002Fspark>`_      | 是              | 否            | 是          | Pandas UDF\u002FIO   | Pandas UDF                  | 是          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n| `Dask DF \u003Chttps:\u002F\u002Fgithub.com\u002Fdask\u002Fdask>`_         | 否              | Python 对象     | 是          | 否              | 部分（Pandas）              | 是          |\n+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+\n\n许可证\n-------\n\nDaft 采用 Apache 2.0 许可证——详情请参阅 LICENSE 文件。\n\n.. |快速入门图片| image:: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fassets\u002F17691182\u002Fdea2f515-9739-4f3e-ac58-cd96d51e44a8\n   :alt: 从 AWS S3 加载图像文件夹并创建缩略图的 DataFrame 代码\n   :height: 256\n\n.. |基准图像| image:: https:\u002F\u002Fraw.githubusercontent.com\u002FEventual-Inc\u002FDaft\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fbenchmark.png\n   :alt: AI 基准测试\n\n.. |横幅| image:: https:\u002F\u002Fdaft.ai\u002Fimages\u002Fdiagram.png\n   :target: https:\u002F\u002Fwww.daft.ai\n   :alt: Daft 数据框可以将任何数据（如 PDF 文档、图像、Protocol Buffers、CSV、Parquet 和音频文件）加载到表格型数据框结构中，以便于查询。\n\n.. |CI| image:: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Factions\u002Fworkflows\u002Fpr-test-suite.yml\u002Fbadge.svg\n   :target: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Factions\u002Fworkflows\u002Fpr-test-suite.yml?query=branch:main\n   :alt: GitHub Actions 测试\n\n.. |PyPI| image:: https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fdaft.svg?label=pip&logo=PyPI&logoColor=white\n   :target: https:\u002F\u002Fpypi.org\u002Fproject\u002Fdaft\n   :alt: PyPI\n\n.. |最新标签| image:: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Ftag\u002FEventual-Inc\u002FDaft?label=latest&logo=GitHub\n   :target: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Ftags\n   :alt: 最新标签\n\n.. |覆盖率| image:: https:\u002F\u002Fcodecov.io\u002Fgh\u002FEventual-Inc\u002FDaft\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg?token=J430QVFE89\n   :target: https:\u002F\u002Fcodecov.io\u002Fgh\u002FEventual-Inc\u002FDaft\n   :alt: 覆盖率\n\n.. |Slack| image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fslack-@distdata-purple.svg?logo=slack\n   :target: https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fdist-data\u002Fshared_invite\u002Fzt-3rh9jr9iv-tmmTNOlQpfvhEy2NTMWS_w\n   :alt: Slack 社区\n\n.. |TrendShift| image:: https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F8239\n   :target: https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F8239\n   :alt: Eventual-Inc\u002FDaft | Trendshift\n   :width: 250px\n   :height: 55px","# Daft 快速上手指南\n\nDaft 是一个专为 AI 和多模态工作负载设计的高性能数据引擎。它支持在单一框架中处理图像、音频、视频及结构化数据，底层由 Rust 驱动，提供 Python 原生接口，可轻松从本地扩展至分布式集群。\n\n## 环境准备\n\n*   **操作系统**：Linux, macOS, Windows\n*   **Python 版本**：Python 3.10 或更高版本\n*   **前置依赖**：无需额外安装 JVM 或其他复杂依赖，Daft 核心包已包含必要组件。\n\n## 安装步骤\n\n使用 pip 进行标准安装：\n\n```bash\npip install daft\n```\n\n> **提示**：如果您需要高级功能（如连接 AWS S3、使用 Ray 分布式计算等），可以安装额外依赖：\n> ```bash\n> pip install \"daft[aws, ray]\"\n> ```\n> 国内用户若遇到下载速度慢的问题，建议使用国内镜像源：\n> ```bash\n> pip install daft -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n以下示例展示如何加载数据、处理多模态内容（如生成图片缩略图）并运行简单的转换操作。\n\n### 1. 导入与数据加载\n\nDaft 的 API 设计与 Pandas 类似，易于上手。\n\n```python\nimport daft\n\n# 从本地文件或云存储（如 S3）加载数据\n# 这里以加载包含图片路径的 CSV 为例\ndf = daft.read_csv(\"data\u002Fproducts.csv\")\n\n# 预览数据\ndf.show()\n```\n\n### 2. 多模态数据处理\n\n利用 Daft 内置的多模态能力，直接对列中的图片进行处理（例如调整大小），无需手动编写循环。\n\n```python\nfrom daft import col\n\n# 假设 'image_path' 列包含图片文件路径\n# 使用 .url.download() 读取图片，并使用 .image.resize() 调整尺寸\ndf_with_thumbnails = df.with_column(\n    \"thumbnail\",\n    col(\"image_path\").url.download().image().resize(128, 128)\n)\n\ndf_with_thumbnails.show()\n```\n\n### 3. 集成 AI 推理 (可选)\n\n如果您安装了相关依赖，可以直接在 DataFrame 上运行 AI 模型（如调用 Hugging Face 模型生成嵌入向量）。\n\n```python\n# 示例：使用预训练模型为图片生成嵌入向量\n# 注意：实际运行需确保已安装 torch 和 transformers 等相关库\ndf_embedded = df_with_thumbnails.with_column(\n    \"embedding\",\n    col(\"thumbnail\").embeddings(model=\"resnet-50\")\n)\n\ndf_embedded.show()\n```\n\n### 4. 保存结果\n\n处理完成后，可将结果写回本地或云端存储。\n\n```python\n# 将结果写入 Parquet 文件\ndf_embedded.write_parquet(\"output\u002Fprocessed_data\")\n```\n\n---\n更多详细用法、分布式部署指南及完整 API 文档，请访问 [Daft 官方文档](https:\u002F\u002Fdocs.daft.ai)。","某电商平台的算法团队需要处理千万级商品数据，结合结构化表格与非结构化的商品图片，批量生成视觉嵌入向量以构建新一代以图搜图推荐系统。\n\n### 没有 Daft 时\n- **多模态割裂**：必须编写复杂的胶水代码，分别用 Pandas 处理表格、用 PIL\u002FOpenCV 加载图片，再手动对齐数据索引，极易出错。\n- **扩展性瓶颈**：本地脚本无法处理海量图片内存溢出，迁移到 Spark 或 Ray 集群需要重写大量分布式逻辑，开发周期长达数周。\n- **推理效率低下**：调用 AI 模型（如 CLIP）进行批量推理时，缺乏内置的并行优化，GPU 利用率低，处理全量数据耗时数天。\n- **存储适配繁琐**：读取存储在 S3 或 Iceberg 中的不同格式数据时，需配置多种连接器并处理认证与分页逻辑。\n\n### 使用 Daft 后\n- **原生统一处理**：Daft 允许在同一个 DataFrame 中直接加载图片列与结构化字段，自动处理多模态数据的对齐与转换，代码量减少 70%。\n- **无缝弹性伸缩**：只需一行配置即可将任务从本地笔记本无缝切换至 Ray 或 Kubernetes 集群，利用 Rust 内核实现高性能分布式计算。\n- **内置 AI 加速**：直接调用 Daft 内置的 AI 算子运行模型推理，自动优化批处理大小与资源调度，将千万级数据的处理时间缩短至数小时。\n- **通用数据连接**：原生支持 S3、Iceberg、Hugging Face 等多种数据源，无需额外配置即可直接流式读取云端数据。\n\nDaft 通过统一的 Python 接口与 Rust 高性能内核，彻底消除了多模态数据工程中的碎片化痛点，让大规模 AI 数据处理变得简单且高效。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEventual-Inc_Daft_a23cccdf.png","Eventual-Inc","Eventual","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FEventual-Inc_bd9e528b.png","Eventual Computing",null,"team@eventualcomputing.com","https:\u002F\u002Fwww.eventualcomputing.com\u002F","https:\u002F\u002Fgithub.com\u002FEventual-Inc",[81,85,89,93,97,101,105,108,111,114],{"name":82,"color":83,"percentage":84},"Rust","#dea584",44.9,{"name":86,"color":87,"percentage":88},"Python","#3572A5",34.9,{"name":90,"color":91,"percentage":92},"Jupyter Notebook","#DA5B0B",19.1,{"name":94,"color":95,"percentage":96},"TypeScript","#3178c6",0.9,{"name":98,"color":99,"percentage":100},"Shell","#89e051",0.1,{"name":102,"color":103,"percentage":104},"Makefile","#427819",0,{"name":106,"color":107,"percentage":104},"CSS","#663399",{"name":109,"color":110,"percentage":104},"Go Template","#00ADD8",{"name":112,"color":113,"percentage":104},"Dockerfile","#384d54",{"name":115,"color":116,"percentage":104},"JavaScript","#f1e05a",5389,436,"2026-04-06T02:11:16","Apache-2.0","未说明",{"notes":123,"python":124,"dependencies":125},"该工具核心由 Python 和 Rust 构建。支持本地运行或通过 Ray 和 Kubernetes 扩展至分布式集群。可通过 pip 直接安装，高级功能（如分布式处理或特定云存储支持）需安装额外依赖。支持多种数据源（S3, GCS, Iceberg, Delta Lake 等）。可通过设置环境变量 DO_NOT_TRACK=true 禁用遥测数据收集。","3.10+",[126,127,128,129],"Ray (可选，用于分布式)","AWS utilities (可选)","OpenAI API (可选，用于 AI 操作)","Transformers (可选，用于 AI 操作)",[14,131,15,132,16],"插件","其他",[134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152],"machine-learning","python","data-engineering","distributed-computing","rust","big-data","artificial-intelligence","multimodal","arrow","distributed","distributed-systems","embeddings","etl","huggingface","iceberg","parquet","ray","ai-engineering","ai-pipeline","2026-03-27T02:49:30.150509","2026-04-06T15:54:33.834373",[156,161,166,171,176,180],{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},19406,"如何在 Azure 上配置 Unity Catalog 读取 Delta Lake 表时解决区域配置无效或连接被拒绝的错误？","如果在读取 Unity Catalog 表时遇到 'OSError: Generic S3 error' 或 'Connection refused' 错误，即使显式定义了区域也可能失败。一个有效的变通方法是手动替换 io_config 中的存储账户名称。具体代码如下：\nio_config = IOConfig(azure=unity_table_ext.io_config.azure.replace(storage_account='your_storage_account_name'))\ndf = daft.read_deltalake(table=unity_table_ext.table_uri, io_config=io_config)\n请将 'your_storage_account_name' 替换为你实际的 Azure 存储账户名称。","https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fissues\u002F2903",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},19407,"将 Daft DataFrame 转换为 PyArrow Table 时出现 Schema 不匹配错误（特别是涉及 Null 列顺序时）如何解决？","当使用 `select` 选择列并转换为 PyArrow 时，如果列顺序与底层数据不一致或包含 Null 列，可能会报 'Schema at index 0 was different' 错误。\n解决方案有两种：\n1. 调整选择列的顺序，使其与原始查询或数据源中的顺序一致（例如先选 signal_c 再选 signal_b 可能避免错误）。\n2. 更稳健的方法是显式指定列的数据类型，确保转换时 Schema 定义明确。用户反馈表明，显式传递列数据类型可以解决此问题。","https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fissues\u002F4760",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},19408,"Daft 是否支持在 Google Cloud 上使用 Tabular 数据，以及如何配置凭证？","是的，从 v0.2.28 版本开始，Daft 默认支持在 Google Cloud 上与 Tabular 一起工作。\n如果需要手动配置，可以将凭证文件或访问令牌传递给 `daft.io.GCSConfig`。\n配置示例参考官方文档：https:\u002F\u002Fwww.getdaft.io\u002Fprojects\u002Fdocs\u002Fen\u002Flatest\u002Fapi_docs\u002Fdoc_gen\u002Fio_configs\u002Fdaft.io.GCSConfig.html","https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fissues\u002F2005",{"id":172,"question_zh":173,"answer_zh":174,"source_url":175},19409,"在使用 Daft 处理大量数据生成火焰图（flamegraph）内存不足时，有什么调试建议？","如果数据量太大导致无法生成火焰图（flamegraph），建议使用 `limit()` 函数限制处理的数据行数来进行小规模测试。\n例如：在 DataFrame 操作上添加 `.limit(100)`，只处理前 100 行数据，这样可以快速在本地生成配置文件并可视化，从而定位性能瓶颈。","https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fissues\u002F5224",{"id":177,"question_zh":178,"answer_zh":179,"source_url":175},19410,"如何优化 Daft 中自定义函数（如视频帧提取）以充分利用所有 CPU 核心？","目前对于自定义函数（如使用 `col().apply()` 进行视频处理）未能充分利用多核的问题，一个临时的变通方法是将数据分批次（into batches）处理。\n虽然这不是最终的完美解决方案，但在当前版本中可以作为一种权宜之计来提高并行度。如果问题持续，建议关注后续版本更新或提交包含具体火焰图分析的新 Issue。",{"id":181,"question_zh":182,"answer_zh":183,"source_url":184},19411,"初始化 UnityCatalog 客户端时遇到 'TypeError: got an unexpected keyword argument proxies' 错误怎么办？","该错误通常是由于底层依赖库版本冲突或参数传递问题引起的。虽然原始 Issue 主要报告了此 Bug，但维护者已确认此类连接问题（包括代理设置冲突）正在被跟踪修复（见关联 Issue #3142）。\n临时建议：检查你的 `databricks-sdk` 或其他相关依赖库的版本是否与 Daft 当前版本兼容，尝试更新或降级相关库至推荐版本。如果问题依旧，请确保没有在不支持的地方手动传递 `proxies` 参数。","https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fissues\u002F3708",[186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261,266,271,276,281],{"id":187,"version":188,"summary_zh":189,"released_at":190},117447,"v0.7.7","## 变更内容 🚀\n\n## ✨ 功能特性\n\n- 新增（subscriber）：为订阅者添加事件枚举和 on_event 分发 @cckellogg (#6508)\n- 新增：支持多种图像哈希算法（aHash、dHash、pHash、wHash、抗裁剪哈希）用于去重 @linguoxuan (#6338)\n- 新增：在 Parquet 操作中添加写入 _SUCCESS 文件的支持 @Lucas61000 (#6090)\n- 新增：向 osstelemetry.io 添加双端发送的遥测功能 @ykdojo (#6540)\n- 新增（tracing）：添加 DAFT_TRACE 控制台追踪，支持可配置的格式 @cckellogg (#6458)\n- 新增：转换并替换时区 @aaron-ang (#6106)\n- 新增：添加 concat_ws 函数 @euanlimzx (#6543)\n- 新增：添加随机打乱操作 @srilman (#6481)\n\n## 🐛 问题修复\n\n- 修复（dataframe）：使用 write_ 操作时，执行计划无意义 @Abyss-lord (#6564)\n- 修复（native）：在统计管理器关闭后保留 DataFrame 的指标 @cckellogg (#6555)\n- 修复：对不支持的查询（Flotilla）隐藏仪表板结果预览 @samstokes (#6557)\n- 修复：对 coalesce 进行短路求值 @Lucas61000 (#6525)\n- 修复（ci）：使用 content-hash 的 mtime 来防止 Cargo 缓存出现过时产物 @desmondcheongzx (#6546)\n\n## 🚀 性能优化\n\n- 性能优化（parquet）：在流式路径中按批次 yield，以改善 morsel 缓存的局部性 @desmondcheongzx (#6558)\n- 性能优化：通过去单态化排序和分发路径来减小二进制文件大小 @NikkeTryHard (#6541)\n- 性能优化：将 `decode(..., \"utf-8\")` 重写为类型转换 @srilman (#6537)\n\n## 📖 文档更新\n\n- 文档：新增 UDF 模式教程笔记本和示例页面 @everettVT (#6539)\n\n## 🔧 维护与改进\n\n- 杂项（deps）：使用 Dependabot 更新所有依赖组中的 9 个包 @[dependabot[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fdependabot) (#6569)\n- 杂项：强化供应链安全——排除较新版本、固定 Actions 和 uv 的版本 @everettVT (#6565)\n- 杂项（io）：在 Rust 端替换 Python 源代码的 shim 层 @rchowell (#6556)\n\n## ⬆️ 依赖更新\n\n- 杂项（deps）：使用 Dependabot 更新所有依赖组中的 9 个包 @[dependabot[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fdependabot) (#6569)\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.7.6...v0.7.7","2026-04-02T17:19:09",{"id":192,"version":193,"summary_zh":194,"released_at":195},117448,"v0.7.6","## 变更内容 🚀\n\n## 💥 重大变更\n\n- feat!: 添加对 Gravitino 目录中 Iceberg 表的支持 @rchowell (#6509)\n\n## ✨ 功能特性\n\n- feat!: 添加对 Gravitino 目录中 Iceberg 表的支持 @rchowell (#6509)\n- feat(swordfish): 计划缓存 @colin-ho (#6278)\n- feat: 添加 daft-checkpoint crate，包含 CheckpointStore trait 和内存… @rohitkulshreshtha (#6511)\n- feat: 允许在作业完成后继续显示原生进度条 @BABTUNA (#6449)\n- feat(build): 添加实验性的 cross-wheel 构建目标 @cckellogg (#6360)\n- feat: DataFrame.from_files @rchowell (#6507)\n- feat: 添加 Apache Paimon Lake 格式支持 @chenghuichen (#6450)\n- feat: 添加 current_date、current_timestamp、current_timezone 及其 SQL 别名 @BABTUNA (#6495)\n- feat(subscribers): 为算子和统计回调添加类型化事件 @cckellogg (#6479)\n- feat: 支持从原生运行器调用 to_ray_dataset() @desmondcheongzx (#6486)\n- feat: 异步数据源和任务 @rchowell (#6492)\n- feat: 添加 hex 和 unhex 函数 @Lucas61000 (#6373)\n- feat: 为 DataFrame 实现 _repr_mimebundle_ 方法 @Abyss-lord (#6385)\n- feat: 添加字符串 strip 函数 @Lucas61000 (#6372)\n- feat: 为 LocalPhysicalPlan 添加计划指纹生成功能 @colin-ho (#6276)\n- feat: 为连接算子添加指标 @srilman (#6391)\n- feat(observability): 添加进程级内存和 CPU 监控功能 @desmondcheongzx (#6428)\n- feat: 定义一个与 Python 接口匹配的单一 DataSource trait。@rchowell (#6427)\n- feat(io): 将 storage_options 传播到 Lance 后端，以支持 Apache Gravitino (gvfs:\u002F\u002F) @qingfeng-occ (#6430)\n- feat(subscribers): 添加 JSONL 事件日志订阅者 @cckellogg (#6420)\n- feat: 在 `read_text` 中添加读取完整文本文件的功能 @plotor (#6354)\n- feat(expressions): 支持 count(mode='all') 而无需表达式 @Abyss-lord (#6358)\n- feat: Kafka 有界数据源 @everySympathy (#5970)\n- feat(udf): 在 UDF v2 中支持 ray_options 和资源覆盖 @Jay-ju (#5982)\n- feat: 为 DataFrame 的 `select` 添加全局聚合支持 @caican00 (#6067)\n\n## 🐛 Bug 修复\n\n- fix: 修正多模态概览页面上网格卡片的缩进问题 @everettVT (#6530)\n- fix(series): 无法直接将字符串转换为 fixed_size_binary 类型 @Abyss-lord (#6521)\n- fix: 在 Iceberg 写入时尊重 schema 别名 @rchowell (#6512)\n- fix(series): 类型转换不应更改输入参数名称 @Abyss-lord (#6515)\n- fix: 在未设置格式的情况下保留 show 选项 @aaron-ang (#6102)\n- fix: 对于 Identity 转换，严格不等式绝不能放宽 @gavin9402 (#6484)\n- fix: 修复读取 json\u002Fjsonl 文件时 JSONL 记录模式中列缺失的问题 @caican00 (#5681)\n- fix: 移除 use_safetensors=True 以允许模型回退 @rchowell (#6489)\n- fix: 在 IO 测试中关闭连接并解决其他警告 @rchowell (#6470)\n- fix: 修复导致发布上传失败的概率性测试 flake 问题 @rchowell (#6475)\n- fix(io): 修复 JSONL 字节范围读取问题，并使 chunk_size 字节-","2026-03-30T21:58:12",{"id":197,"version":198,"summary_zh":199,"released_at":200},117449,"v0.7.5","## 变更内容 🚀\n\n## 💥 重大变更\n\n- perf!: 延迟加载 lance，以加快 `import daft` 的速度 @desmondcheongzx (#6328)\n- feat!: 向 stddev 添加 ddof 参数（默认 ddof=1）@aaron-ang (#6142)\n\n## ✨ 新特性\n\n- feat(io): 在 glob 模式中支持数值范围扩展 @singularityDLW (#6127)\n- feat(dashboard): 添加查询结果预览标签页 @samstokes (#6327)\n- feat: 添加 `read_text` API，以支持读取文本文件 @plotor (#6111)\n- feat: 为 IOConfig 添加协议别名 @universalmind303 (#6252)\n- feat(observability): 改进分布式算子名称 @srilman (#6324)\n- feat(metrics): 为分布式统计归因添加 node_plan_id @cckellogg (#6332)\n- feat: 通过稳定的 C ABI 添加对 daft 原生扩展的支持 @rchowell (#6301)\n- feat(lance): 使用新类型和参数完善分布式标量索引支持 @huleilei (#5817)\n- feat!: 向 stddev 添加 ddof 参数（默认 ddof=1）@aaron-ang (#6142)\n- feat: 使用人类可读的查询名称代替 UUID @samstokes (#6310)\n- feat(metrics): 为多阶段流水线节点添加 node phase 属性 @cckellogg (#6290)\n- feat(dashboard): 将墙钟时间和 CPU 时间添加到算子卡片中 @samstokes (#6300)\n- feat: 在 explain 中添加 Python Function 数据源信息 @plotor (#6119)\n- feat(dashboard): 带实时算子统计信息的物理计划树 @samstokes (#6299)\n- feat(io): 使用 SQLDataSink 实现 write_sql，并支持显式 dtype @huleilei (#5979)\n- feat(dashboard): 为查询计划添加交互式树状可视化工具 @samstokes (#6295)\n\n## 🐛 Bug 修复\n\n- fix(windows): 锁定传递性 aws 依赖项，以修复 Windows 链接错误 @universalmind303 (#6404)\n- fix(video): 为视频关键帧添加缺失的 pillow 依赖项 @desmondcheongzx (#6355)\n- fix(dashboard): 在启用通知前请求通知权限 @samstokes (#6362)\n- fix(dashboard): 使仪表板订阅者非阻塞 @cckellogg (#6336)\n- fix(dashboard): 确保在生成器提前终止时触发 query_end 事件 @samstokes (#6326)\n- fix(tests): 使 Ray conda UDF 测试对不可用的 Python 微版本更具鲁棒性 @cckellogg (#6341)\n- fix(sql): 拒绝 WITH 子句中的重复 CTE 名称 @singularityDLW (#6331)\n- fix: 对于 Flight Server 读取，使用 Tokio FS @srilman (#6308)\n- fix(io): 为 Azure Blob Storage 后端添加连接池信号量 @singularityDLW (#6305)\n- fix(dashboard): 将额外统计信息按字母顺序排序，以防止闪烁 @samstokes (#6309)\n- fix: 在 `DataType.infer_from_type` 中支持 Union 和 Optional 类型 @srilman (#6304)\n- fix: 使 `max_concurrency` 控制异步 UDF 的协程并发度 @colin-ho (#6302)\n- fix: 修复原生执行器关闭问题 @colin-ho (#6282)\n- fix(docs): 从 SUMMARY.md 中移除重复的 Voice AI 分析列表 @[copilot-swe-agent[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fcopilot-swe-agent) (#6274)\n\n## 🚀 性能优化\n\n- perf: 为 `from_glob_path` 支持多任务并行的 glob 扫描 @plotor (#5897)\n- perf: 在分布式限制中尽早丢弃任务 @srilman (#6350)","2026-03-16T21:50:14",{"id":202,"version":203,"summary_zh":204,"released_at":205},117450,"v0.7.4","## 变更内容 🚀\n\n## 💥 重大变更\n\n- 重构(arrow2)！：从 daft-core 中移除剩余的 arrow2 @universalmind303 (#6284)\n- 重构(arrow2)！：在 strftime 函数中使用 arrow-rs 的类型转换 @universalmind303 (#6263)\n- 重构(arrow2)！：将区间算术迁移至 arrow-rs @rohitkulshreshtha (#6186)\n\n## ✨ 新特性\n\n- 功能(ai)：在 prompt 函数中为图像和视频添加 HTTP URL 直通支持 @huleilei (#6182)\n- 功能(sql)：添加 DATE_TRUNC 函数支持 @desmondcheongzx (#6258)\n- 功能(swordfish)：流式数据源 @colin-ho (#5978)\n- 功能(metrics)：添加指标文档 @cckellogg (#6253)\n- 功能(io\u002Fav)：通过全面测试和改进增强时间区间采样 @huleilei (#6088)\n- 功能：添加腾讯云 COS（云对象存储）支持 @XuQianJin-Stars (#6140)\n- 功能(metrics)：整合命名并添加 node.type 属性 @cckellogg (#6236)\n- 功能：将 Flight shuffle 添加到 Flotilla @srilman (#6123)\n- 功能：兼容 Apache OpenDAL™ 的后端 @universalmind303 (#6177)\n- 功能(observability)：在指标 DataFrame 中将持续时间拆分为单独的列 @srilman (#6235)\n- 功能：添加对 pyiceberg 0.11.0 的支持 @gweaverbiodev (#6200)\n- 功能：添加对 SQL ORDER BY 列位置的支持 @Lucas61000 (#6211)\n- 功能：支持以守护进程模式运行仪表板 @plotor (#5993)\n- 功能：json_write 支持时间戳 @gpathak128 (#6214)\n- 功能：`.as_T` 类型转换方法 @aaron-ang (#6100)\n\n## 🐛 问题修复\n\n- 修复：处理排序合并多分区连接时连接键不同的情况 @gweaverbiodev (#6243)\n- 修复(arrow2)：在类型转换回退后，将物理数组重新解释为逻辑类型 @desmondcheongzx (#6291)\n- 修复(sql)：解决派生表达式中 GROUP BY 的列名歧义问题 @desmondcheongzx (#6286)\n- 修复(flight)：添加对 `flight_shuffle_dirs` 参数的检查，并更改默认值 @srilman (#6266)\n- 修复：映射字面量与 Python 字典之间的转换 @w2ais (#6084)\n- 修复：用于多列 search_sorted 和 sort 的 NaN 敏感比较器 @desmondcheongzx (#6242)\n- 修复：向 `.explode()` 方法添加 ignore_empty_and_null 参数 @singularityDLW (#6047)\n- 修复：在聚合中广播字面量表达式，使其与输入长度匹配 @desmondcheongzx (#6155)\n- 修复：清理来自仪表板守护进程 PR 的导入 @srilman (#6222)\n- 修复：修复主分支上的编译问题 @srilman (#6221)\n- 修复：在多列排序比较器中规范化负 NaN @ykdojo (#6215)\n- 修复：解析 Delta 版本号 @aaron-ang (#6156)\n- 修复：在从 Lance 读取数据之前注册扩展类型 @ykdojo (#6058)\n- 修复：在窗口聚合中使用 union 而不是 append_column，以修复模式不匹配的问题 @ykdojo (#6178)\n- 修复：into_batches 不应允许下游 shuffle 的省略 @desmondcheongzx (#6170)\n\n## ♻️ 代码重构\n\n- 重构(arrow2)：重构 index_bitmap 和 time_unit @universalmind303 (#6287)\n- 重构(arrow2)！：从 daft-core 中移除剩余的 arrow2 @universalmind303 (#6284)\n- 重构(arrow2)：移除 series::try_from(name, arrow2_arr) 方法 @universalmind303 (#6283)\n- 重构(ar","2026-02-25T00:03:27",{"id":207,"version":208,"summary_zh":209,"released_at":210},117451,"v0.7.3","## 变更内容 🚀\n\n## ✨ 功能特性\n\n- 新增(可观测性)：支持导出 Flotilla 指标 @srilman (#6122)\n- 新增：nightly.daft.ai 上的 nightly 安装 @desmondcheongzx (#6175)\n- 新增：支持额外的 `OTEL_*` 配置环境变量 @srilman (#6148)\n- 新增(lance)：支持 lance 命名空间的读写操作 @shaofengshi (#5980)\n- 新增：添加 Unity OAuth 的机器对机器访问令牌支持 @cckellogg (#5839)\n- 新增：支持 Iceberg 写入时的快照属性 @desmondcheongzx (#6139)\n- 新增：`agg_concat` 的分隔符 @aaron-ang (#6099)\n- 新增：添加 UUID 函数 @everySympathy (#5983)\n- 新增：为 CSV 写入添加自定义日期和时间戳格式 @madvart (#6073)\n- 新增(可观测性)：将指标以表格形式随结果一起导出 @srilman (#6055)\n- 新增：为列表和结构体类型添加比较运算 @aaron-ang (#6104)\n- 新增(前端)：增强仪表板 UI 并修复 Ray 运行器状态报告问题 @Jay-ju (#6063)\n- 新增(仪表板)：后端实现 @Jay-ju (#6062)\n- 新增：字符串大小写转换函数 @aaron-ang (#6096)\n- 新增：`list_contains` 表达式 @aaron-ang (#6095)\n- 新增：指定文本嵌入维度 @aaron-ang (#6097)\n- 新增：带有 ddof 参数的 Expr.var @aaron-ang (#6105)\n- 新增(lance)：添加最近向量搜索支持 @huleilei (#6025)\n- 新增：距离和相似度函数 @aaron-ang (#6098)\n- 新增：添加 Gravitino 连接器的可选依赖项 @shaofengshi (#6083)\n- 新增：在写入 JSON 时支持忽略空字段 @gpathak128 (#6049)\n\n## 🐛 Bug 修复\n\n- 修复(文档)：修复多模态文档中的损坏链接 @everettVT (#6197)\n- 修复：在终端打印中将 Map 列渲染为 Python 字典，而非 list[struct] @srilman (#6198)\n- 修复：解决与 OTEL 配置 PR 的合并冲突 @srilman (#6187)\n- 修复(可观测性)：按字符而非字节截断进度条名称 @desmondcheongzx (#6180)\n- 修复：修复 concat.rs 文件 @colin-ho (#6174)\n- 修复(测试)：将 Actor UDF 超时时间从 10 秒提升至 60 秒，以减少测试不稳定现象 @ykdojo (#6163)\n- 修复(优化器)：修复通过反连接推送过滤器时的 bug @desmondcheongzx (#6150)\n- 修复：允许 `is_in` 接受集合、元组及其他可迭代对象 @desmondcheongzx (#6115)\n- 修复(ci)：通过固定 cargo-llvm-cov 来恢复 Rust 代码覆盖率 @desmondcheongzx (#6146)\n- 修复：使 df.into_partitions() 在输入数量等于分区数量时正常工作 @everySympathy (#6061)\n- 修复(UDF)：确保 UDF v2 中的每调用 kwargs 在每个调用站点都唯一绑定 @huleilei (#6079)\n- 修复(rustfmt)：忽略 parquet 目录 @aaron-ang (#6101)\n- 修复：`OffsetBufferBuilder` 不再需要额外加 1 @colin-ho (#6057)\n- 修复：在并行运行测试时使用唯一的存储桶名称 @rchowell (#6052)\n\n## 🚀 性能优化\n\n- 性能优化：`from_vec` 实现零拷贝 @universalmind303 (#6172)\n- 性能优化：Actor UDFs 仅序列化所需列 @plotor (#5884)\n\n## ♻️ 重构\n\n- 重构(arrow2)：将 time.rs 中的时间相关方法迁移到 arrow-rs @rohitkulshreshtha (#6160)\n- 重构(arrow2)：将空值检查逻辑迁移到 arrow-rs @rohitkulshreshtha (","2026-02-13T21:21:57",{"id":212,"version":213,"summary_zh":214,"released_at":215},117452,"v0.7.2","## 变更内容 🚀\n\n## ✨ 功能特性\n\n- feat: 为 daft.File 添加 name 和 path 属性 @everettVT (#6024)\n- feat(mcap): 支持 topic_start_time_resolver 和 raw-bytes 非可寻址读取器 @Jay-ju (#5886)\n- feat: 为 OpenAI 文本嵌入器添加可配置的 token 限制 @kyo-tom (#6017)\n- feat: 添加 guess_mime_type 标量表达式，用于从字节中检测 MIME 类型 @[copilot-swe-agent[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fcopilot-swe-agent) (#5883)\n- feat: 无通道中间操作 @colin-ho (#5999)\n- feat: 支持在 \u002Fv1\u002Fembeddings 请求中丢弃维度 @rchowell (#5988)\n- feat: 在 io 模块中添加对 Apache Gravitino 虚拟文件系统 (gvfs:\u002F\u002F) 的写支持 @shaofengshi (#5965)\n- feat: 异步嵌入图像 @colin-ho (#5833)\n- feat: 为 CSV 写入器支持分隔符、配额和标题选项 @stayrascal (#5794)\n- feat(agg): 支持 v2 UDF 中的 map_groups @Jay-ju (#5927)\n- feat: `explode` 中的 `index_col` 选项 @aaron-ang (#5842)\n- feat: 支持可恢复流 @stayrascal (#5824)\n- feat(functions): 添加 shell_op 用于分布式 Shell 执行 @huleilei (#5738)\n- feat: 在 io 模块中添加对 Apache Gravitino 虚拟文件系统 (gvfs:\u002F\u002F) 的读支持 @shaofengshi (#5766)\n- feat: 支持在 Flotilla 中为 Class UDF 配置 Conda 环境 @plotor (#5117)\n- feat: 图像转张量 @aaron-ang (#5847)\n- feat: 通过 tos 支持原生写入器 @stayrascal (#5760)\n\n## 🐛 Bug 修复\n\n- fix(observability): 清理进度条命名 @srilman (#6028)\n- fix(video): 修正 start_time 的关键帧查找时间戳计算 @huleilei (#6005)\n- fix: SQL 计划器中未正确处理 “.*” @Lucas61000 (#5784)\n- fix: 优化 sink lance 的小文件问题 @caican00 (#5844)\n- fix: 覆盖 OpenAI 嵌入模型的维度 @kevinzwang (#6013)\n- fix: 使用 embed_text 函数时，支持通过 OpenAI 兼容 API 使用外部托管模型 @caican00 (#5873)\n- fix: 覆盖嵌入维度时尊重模型的数据类型 @fenfeng9 (#5899)\n- fix: 将 CSV 选项传递给原生写入器 @colin-ho (#6003)\n- fix: 非零 morsel 上界 @colin-ho (#5989)\n- fix: 清理进度条和计划中的 UDF 显示名称 @srilman (#5810)\n- fix(cast): 处理字符串到数字转换中的空白字符 @ykdojo (#5955)\n- fix: 读取 CSV 时缓冲池计算策略错误 @plotor (#5857)\n- fix: 优化查询计划中 Join 节点的显示信息 @plotor (#5617)\n- fix: 在 Ray Runner 中启用仪表板时快速失败 @plotor (#5867)\n- fix(ai): 解决 classify_text\u002Fclassify_image 中间歇性的元张量错误 @rohitkulshreshtha (#5977)\n- fix(ci): ci 中漏过的 cargo machete 错误 @universalmind303 (#5975)\n- fix: Daft.ai 链接检查器忽略 X @everettVT (#5879)\n- fix: 支持 Class UDF 上使用分数 GPU 数量 @caican00 (#5840)\n- fix: 从 read_huggingface 测试中移除不稳定的数据集 @everettVT (#5926)\n- fix: 允许将 null 追加到列表中，null 与所有类型兼容 @rchowell (#5921)\n- fi","2026-01-15T22:11:24",{"id":217,"version":218,"summary_zh":219,"released_at":220},117453,"v0.7.1","## 变更内容 🚀\n\n## ✨ 功能特性\n\n- feat: 支持 `SHOW TABLES` 的模式过滤 @aaron-ang (#5423)\n- feat(docs): 添加复制页面为 Markdown 按钮 @ykdojo (#5828)\n- feat: 支持通过原生 IO 覆盖文件 @stayrascal (#5728)\n- feat: 添加对 Series[start:end] 的支持 @everySympathy (#5815)\n- feat: 为模型 API 和 UDF 实现 retry-after 机制 @colin-ho (#5769)\n\n## 🐛 Bug 修复\n\n- fix: 首次使用估算内存字节数来显示扫描任务来源 @stayrascal (#5845)\n- fix: 移除 pop\\_all 断言 @colin-ho (#5850)\n- fix: 检查 deltalake 是否支持删除向量传播 @cckellogg (#5829)\n- fix: 将 decode\\_image 中的默认 ImageMode 设置为 RGB @colin-ho (#5827)\n- fix: 处理 read\\_huggingface 回退中的 FileNotFoundError @ykdojo (#5831)\n- fix: 为内存估算添加溢出保护 @yudduy (#5417)\n\n## ♻️ 重构\n\n- refactor(arrow2): 使字段和 dtype 的往返传输正常工作 @universalmind303 (#5849)\n\n## 📖 文档\n\n- docs: 改进远程 URL 的 IO 读取方法的文档字符串 @aaron-ang (#5841)\n- docs: 修复导致 CI 失败的损坏链接 @ykdojo (#5832)\n\n## 👷 CI 流水线\n\n- ci: 在 PR 上启用 Windows Rust 测试 @ykdojo (#5823)\n- ci: 在 notebook-checker 工作流中跳过快速入门笔记本 @ykdojo (#5804)\n\n## 🔧 维护\n\n- chore: 移除 overwrite\\_files 和 write\\_empty\\_tabular 方法 @stayrascal (#5838)\n- chore: 修复 README 文档中的一个小歧义 @plotor (#5830)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.7.0...v0.7.1","2025-12-19T01:25:26",{"id":222,"version":223,"summary_zh":224,"released_at":225},117454,"v0.7.0","## 变更内容 🚀\n\n## 💥 重大变更\n\n- chore!: 移除 spark connect @universalmind303 (#5743)\n\n## ✨ 新特性\n\n- feat(lance): 支持行级模式演化 @Jay-ju (#5749)\n- feat: 改进模型 API 的类型定义 @colin-ho (#5809)\n- feat(deltalake): 允许用户在读取时忽略删除向量 @kevinzwang (#5758)\n- feat: 在结构化日志中捕获 UDF 参数名和参数值。@rohitkulshreshtha (#5771)\n- feat: 支持拆分和合并 jsonl\u002Fndjson 文件 @caican00 (#5695)\n- feat(tools): 为文档添加 Markdown 转 Notebook 的转换器 @ykdojo (#5691)\n- feat: 在 Ray Actor\u002FTask 创建中支持 label_selector 规范 @Jay-ju (#5042)\n- feat: 支持原生 CSV 写入器 @stayrascal (#5706)\n- feat: 更新 daft[postgres] 的可选依赖项 @desmondcheongzx (#5586)\n- feat(lance): 为 Lance 添加分布式压缩功能 @huleilei (#5699)\n- feat: 在订阅者中对计划使用 JSON 序列化 @srilman (#5709)\n- feat: 扩展哈希函数，使其能够接收并哈希多个输入 @rahulkodali (#5692)\n- feat: 在 catalog 模块中添加 Apache Gravitino 目录 @shaofengshi (#5694)\n- feat: 改善延迟导入失败时的错误提示 @samstokes (#5753)\n- feat: 为 UDF 错误添加了结构化日志记录。@rohitkulshreshtha (#5688)\n- feat: 在读取 Lance 数据集时，将统计信息添加到 ScanTask 中 @plotor (#5727)\n- feat: 按算子进行动态批处理 @universalmind303 (#5676)\n- feat: 允许用户禁用后缀范围请求 @TheR1sing3un (#5188)\n- feat: 按大小进行流式采样 @colin-ho (#5663)\n- feat: 当查询异常退出时，允许仪表板显示查询已取消\u002F失败\u002F终止的信息 @VOID001 (#5576)\n- feat: 添加带有提示词的 Google AI 提供商 @everettVT (#5640)\n- feat: 添加幂运算表达式 @kliwongan (#5237)\n- feat: 在 `.collect` 预览中不进行截断 @colin-ho (#5632)\n- feat: sample API 支持通过大小参数进行精确采样 @caican00 (#5600)\n- feat: 音频文件子类型 @universalmind303 (#5602)\n- feat(tos): 增强重试逻辑，使其能够感知响应 @stayrascal (#5569)\n- feat: 在 swordfish 过滤操作中，将选择性指标发送到 OTel @samstokes (#5584)\n- feat: 添加用于收集 UDF 错误的 OTel 日志收集器。@rohitkulshreshtha (#5624)\n\n## 🐛 Bug 修复\n\n- fix: 处理 local_path_from_uri 中的 Windows 路径和查询参数 @ykdojo (#5819)\n- fix: 在 test_limit_offset 中使用 pytest.importorskip 导入 lance @ykdojo (#5818)\n- fix: 支持跳过空的 json\u002Fjsonl 文件 @caican00 (#5660)\n- fix: 少量文档修正 @yuchaoran2011 (#5814)\n- fix: 在读取 Lance 数据集时，使用 Limit 的 CountRows 返回意外结果 @plotor (#5550)\n- fix: 检查 OpenAI 提供商中是否存在缺失的依赖项 @everettVT (#5747)\n- fix: 修复在读取 lance 进行点查询时 BTree 索引无效的问题 @caican00 (#5673)\n- fix: 将 deltalake 与 unity extra 合并 @everettVT (#5785)\n- fix: 增强单元测试 @caican00 (#5787)\n- fix: 修补 CVE-2025-66478，将后续依赖更新至 16.0.7 @everettVT (#5786)\n- fix: 使用单一整合进度","2025-12-16T18:15:14",{"id":227,"version":228,"summary_zh":229,"released_at":230},117455,"v0.6.14","## 变更内容 🚀\n\n## ✨ 功能特性\n\n- feat: 嵌入文本指标 @colin-ho (#5583)\n- feat: 为自定义 UDF 指标添加描述和属性 @colin-ho (#5574)\n- feat(flotilla): 在 StatsManager 中聚合已完成的 Worker 指标 @srilman (#5531)\n- feat: 在原生运行器中为 explode 算子添加放大倍数指标 @samstokes (#5565)\n\n## 🐛 Bug 修复\n\n- fix: 修复空 DataFrame 的 `show` 问题 @caican00 (#5595)\n- fix: 修复 OpenAI 测试指标 Fixture @colin-ho (#5593)\n- fix: 通过移除未使用的工具来解决文档生成磁盘空间不足的问题 @ykdojo (#5589)\n- fix: 修复 explode.rs 中的导入问题 @colin-ho (#5573)\n- fix: 添加对带括号语法的 STRUCT 解析支持 @Lucas61000 (#5449)\n- fix: 仪表板详细追踪错误 @srilman (#5567)\n- fix: 在 Ray 运行器上跳过提示词指标测试 @colin-ho (#5564)\n\n## 📖 文档\n\n- docs: 更新 AI 函数使用模式 @everettVT (#5568)\n\n## 🔧 维护\n\n- chore: 丰富并统一查询计划中显示的 UDF 属性 @plotor (#5553)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.13...v0.6.14\n","2025-11-17T17:25:29",{"id":232,"version":233,"summary_zh":234,"released_at":235},117456,"v0.6.13","## 变更内容 🚀\n\n## 💥 重大变更\n\n- refactor!: 移除从字节创建 File 对象的支持 @universalmind303 (#5556)\n\n## ✨ 新特性\n\n- feat: 提示指标 @colin-ho (#5549)\n- feat: 异步 UDF 指标 @colin-ho (#5541)\n- feat: 支持为文本嵌入指定维度 @samstokes (#5543)\n- feat: 支持自定义 S3 请求的重试错误信息 @stayrascal (#5447)\n- feat: UDF 指标 @colin-ho (#5507)\n- feat: 支持产品 @luoyuxia (#5515)\n- feat: 来自 Swordfish 的 OTEL 指标 @srilman (#5454)\n- feat: 添加 tos 对象源 @stayrascal (#5372)\n- feat: 将正在运行的 UDF 名称绑定到 UDFActor @plotor (#5514)\n- feat: 在提示中支持文本文档 @colin-ho (#5520)\n\n## 🐛 Bug 修复\n\n- fix: 对字面量值进行排序以及带 order-by 的聚合 @kevinzwang (#5547)\n- fix: 当读取 Lance 数据集时，带有 Offset 的 Limit 返回意外结果 @plotor (#5540)\n- fix: 为 embed_text 集成测试添加绝对差阈值 @colin-ho (#5527)\n- fix: 使用 OpenAI 提供商时，test_embed_text_with_none_values 测试失败 @desmondcheongzx (#5534)\n- fix: 在提示中检查 numpy 依赖 @colin-ho (#5521)\n- fix: 处理使用 openai 嵌入文本时的 Nones @desmondcheongzx (#5513)\n- fix: 修复损坏的基准测试博客链接 @colin-ho (#5522)\n\n## ♻️ 重构\n\n- refactor!: 移除从字节创建 File 对象的支持 @universalmind303 (#5556)\n\n## 📖 文档\n\n- docs: 修复迁移指南 @kevinzwang (#5563)\n- docs: 将关键功能的大小写统一为句子大小写 @ykdojo (#5559)\n- docs: 旧版 UDF 迁移指南 @kevinzwang (#5562)\n- docs: 简化介绍中的入门提示 @ykdojo (#5560)\n- docs: 将博客图标由书签更新为博客 @ykdojo (#5557)\n\n## 🔧 维护\n\n- chore: 移除文档反馈小部件 @ykdojo (#5544)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.12...v0.6.13","2025-11-13T03:32:24",{"id":237,"version":238,"summary_zh":239,"released_at":240},117457,"v0.6.12","## What's Changed 🚀\r\n\r\n## ✨ Features\r\n\r\n- feat(flotilla): Add Query ID to OTEL Metrics @srilman (#5506)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Support custom models in openai text embedder @colin-ho (#5525)\r\n\r\n## 🚀 Performance\r\n\r\n- perf: Async embed text @colin-ho (#5524)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: change the provider name in embed\\_text example @huleilei (#5523)\r\n\r\n## 👷 CI\r\n\r\n- ci: Skip Windows Rust Tests in PRs @srilman (#5511)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.11...v0.6.12\r\n","2025-11-10T13:42:52",{"id":242,"version":243,"summary_zh":244,"released_at":245},117458,"v0.6.11","## What's Changed 🚀\r\n\r\n## ✨ Features\r\n\r\n- feat: PostgresCatalog and PostgresTable followups @desmondcheongzx (#5508)\r\n- feat: Add Catalog and Table implementations for PostgreSQL @desmondcheongzx (#5487)\r\n- feat: make maintain\\_order configurable @stayrascal (#5505)\r\n- feat: chat completions api for prompt function @colin-ho (#5497)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Assert nonzero concurrency for udfs @colin-ho (#5500)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.10...v0.6.11\r\n","2025-11-07T12:46:40",{"id":247,"version":248,"summary_zh":249,"released_at":250},117459,"v0.6.10","## What's Changed 🚀\r\n\r\n## ✨ Features\r\n\r\n- feat: add --addr flag to daft-dashboard cli @VOID001 (#5444)\r\n- feat: Support multiple image and file inputs for prompt function @colin-ho (#5481)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: removes checking model directly for embedding dimensions @rchowell (#5445)\r\n- fix: return-dtype for embed\\_text\u002Fimage @universalmind303 (#5496)\r\n- fix: Lower json inflation factor @colin-ho (#5461)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: adds daft.func and daft.cls usage with migration page @everettVT (#5475)\r\n\r\n## 🔧 Maintenance\r\n\r\n- chore: Drop Python 3.9 @srilman (#5479)\r\n- chore: remove extra from build command @stayrascal (#5493)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.9...v0.6.10\r\n","2025-11-05T21:01:41",{"id":252,"version":253,"summary_zh":254,"released_at":255},117460,"v0.6.9","## What's Changed 🚀\r\n\r\n## ✨ Features\r\n\r\n- feat: experimental vllm provider @kevinzwang (#5443)\r\n- feat: Common Crawl x Daft tutorial using Qwen3 @malcolmgreaves (#5472)\r\n- feat: better display for FileArrays @universalmind303 (#5482)\r\n- feat: add a new subtype of file for video ops @universalmind303 (#5346)\r\n- feat(dashboard): Starting Page for No Queries @srilman (#5452)\r\n- feat: Flotilla OTEL Stats @srilman (#5463)\r\n- feat: JSON Serialization for All Plans @srilman (#5356)\r\n- feat: add mechanism for creating async rust based functions @universalmind303 (#5455)\r\n- feat: Async batch func @colin-ho (#5459)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Don't update lockfile in package builds @srilman (#5484)\r\n- fix: Undetach flotilla runner @colin-ho (#5473)\r\n\r\n## 🚀 Performance\r\n\r\n- perf: make DataType.infer 99.99% faster for core datatypes (image, file) @universalmind303 (#5469)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: add Try Daft Cloud link to documentation navigation @ykdojo (#5486)\r\n\r\n## 👷 CI\r\n\r\n- ci: fix bun install by using node 20 @kevinzwang (#5491)\r\n\r\n## 🔧 Maintenance\r\n\r\n- chore(dashboard): Upgrade Bun and Next.js @srilman (#5474)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.8...v0.6.9\r\n","2025-11-04T07:52:18",{"id":257,"version":258,"summary_zh":259,"released_at":260},117461,"v0.6.8","## What's Changed 🚀\r\n\r\n## ✨ Features\r\n\r\n- feat: Allow images in prompt @colin-ho (#5466)\r\n- feat: add pre-existence checks  for lance\\_data\\_sink @huleilei (#5381)\r\n- feat: Support setting `actor_udf_ready_timeout` via Env @plotor (#5426)\r\n- feat: retryable udfs @universalmind303 (#5392)\r\n- feat: Add a Bigtable data sink @desmondcheongzx (#5431)\r\n- feat: classify\\_image expression @universalmind303 (#5428)\r\n- feat: Add support for Metrics tab in quickstart Ray dashboard @jeevb (#5429)\r\n- feat(lance): distributed FTS index creation via Daft UDF with fragment-level parallelism @huleilei (#5236)\r\n- feat: add mimetype detection for daft.file @universalmind303 (#5411)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: report a more reasonable error message when select \\* from \\\u003Csome\\_keywords> @VOID001 (#5440)\r\n- fix: Fix async udf with `use_process` @colin-ho (#5457)\r\n- fix: Drop table error in current active session @plotor (#5439)\r\n- fix: add retry on \"unable to open file\" @kevinzwang (#5442)\r\n- fix: Allow publishing quickstart helm chart to GHCR @jeevb (#5437)\r\n- fix: convert num\\_rows to int when query count(\\*) from clickhouse @dujl (#5421)\r\n- fix: Actually clone the repo before publishing quickstart helm chart @jeevb (#5433)\r\n- fix: file reads for huggingface @universalmind303 (#5427)\r\n- fix: Make benchmarking Ray cluster setup commands idempotent @jeevb (#5425)\r\n- fix(lance): correct limit pushdown semantics with filters @huleilei (#5408)\r\n\r\n## 🚀 Performance\r\n\r\n- perf: Call async udfs asynchronously @colin-ho (#5451)\r\n- perf: Elide shuffle for window if already partitioned @colin-ho (#5450)\r\n- perf: defer allocation when creating series from literals @universalmind303 (#5391)\r\n- perf: Double workers per udf actor handle @colin-ho (#5415)\r\n\r\n## ♻️ Refactor\r\n\r\n- refactor: Make helper function for calling async python functions from rust @colin-ho (#5432)\r\n- refactor: combine sentence\\_transformers + transformers, and clean up … @universalmind303 (#5422)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: adds ai functions, ai providers, contributing, and docstrings with nav @everettVT (#5438)\r\n- docs: warning for Common Crawl dataset API instability @malcolmgreaves (#5436)\r\n- docs: update the example to access S3-compatible services @huleilei (#5405)\r\n- docs(connectors): add connector page for Lance format @huleilei (#5397)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.7...v0.6.8\r\n","2025-10-30T12:59:27",{"id":262,"version":263,"summary_zh":264,"released_at":265},117462,"v0.6.7","## What's Changed 🚀\r\n\r\n## 💥 Breaking Changes\r\n\r\n- feat!: Catch transient errors on turbopuffer writes @desmondcheongzx (#5380)\r\n\r\n## ✨ Features\r\n\r\n- feat: add viz for embedding @samster25 (#5419)\r\n- feat!: Catch transient errors on turbopuffer writes @desmondcheongzx (#5380)\r\n- feat(dashboard): Cleanup Queries Page @srilman (#5416)\r\n- feat: Extend hash variants for xxhash @srilman (#5276)\r\n- feat: prompt @colin-ho (#5394)\r\n- feat: Add case function for better SQL-style conditional expressions @rasanpreetsingh3 (#5383)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Reduce number udfs by 1 in multi udf test @colin-ho (#5414)\r\n- fix: Wrap azure fsspec in pafs.FSSpecHandler @colin-ho (#5412)\r\n- fix(flotilla): Set flotilla actor cpu requests to 1 @colin-ho (#5404)\r\n- fix: Fix prompt integration tests @colin-ho (#5401)\r\n- fix: Fix Operator Finalization in Swordish Stat Manager @srilman (#5398)\r\n\r\n## 🚀 Performance\r\n\r\n- perf(swordfish): Reuse scheduler runtime @colin-ho (#5387)\r\n\r\n## ♻️ Refactor\r\n\r\n- refactor: Cleanup Dtype Names @srilman (#5400)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: Fix some document errors @plotor (#5409)\r\n- docs: update minhash example to use cc dataset @everettVT (#5390)\r\n- docs: fix daft.File usage examples @kevinzwang (#5403)\r\n\r\n## 👷 CI\r\n\r\n- ci: Remove Tests for the Old Ray Runner @srilman (#5374)\r\n- ci: disable running tpch profiling on push @kevinzwang (#5384)\r\n\r\n## 🔧 Maintenance\r\n\r\n- chore: bump pyo3 dependency @universalmind303 (#5410)\r\n- chore: revert #5383 @kevinzwang (#5396)\r\n- chore: optimize operator naming @Jay-ju (#5204)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.6...v0.6.7\r\n","2025-10-20T05:37:48",{"id":267,"version":268,"summary_zh":269,"released_at":270},117463,"v0.6.6","## What's Changed 🚀\r\n\r\n## 💥 Breaking Changes\r\n\r\n- docs!: update docstrings for various functions  @universalmind303 (#5344)\r\n\r\n## ✨ Features\r\n\r\n- feat: Explicit AWS vs. HTTP mode for common crawl dataset @malcolmgreaves (#5379)\r\n- feat: pydantic model type conversion @kevinzwang (#5370)\r\n- feat(dashboard): Individual Query Page @srilman (#5367)\r\n- feat(flotilla): Flotilla sort merge join @colin-ho (#5369)\r\n- feat: batch UDF with `@daft.func.batch` @kevinzwang (#5362)\r\n- feat(dashboard): Queries Page @srilman (#5257)\r\n- feat: more tensor conversions @kevinzwang (#5357)\r\n- feat: @daft.cls decorator for new class UDFs @kevinzwang (#5350)\r\n- feat: Detect concurrency \u002F num gpus for model apis @colin-ho (#5342)\r\n- feat: Flotilla linear scheduler @colin-ho (#4378)\r\n- feat: Lazy `from_glob_path` @colin-ho (#5235)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Use sum supertype for `list_sum` type inference @colin-ho (#5366)\r\n- fix: Use default io config in read video if not passed in @colin-ho (#5364)\r\n- fix: support serialize and deserialize LazyImport @stayrascal (#5361)\r\n- fix(file): python expects bytes instead of None @universalmind303 (#5348)\r\n- fix: read\\_video\\_frames handles EOF gracefully @rchowell (#5343)\r\n\r\n## 🚀 Performance\r\n\r\n- perf(flotilla): Throttle worker refresh and autoscaling @colin-ho (#5351)\r\n- perf: Elide shuffle for distinct if input is already partitioned @colin-ho (#5354)\r\n- perf: use bincode instead of python for io\\_conf serialization in FileArray @universalmind303 (#5340)\r\n- perf: Only Serialize Required Cols in Process UDFs @srilman (#5069)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: Update Common Crawl Dataset docs to make AWS region explicit @desmondcheongzx (#5373)\r\n- docs: add Flotilla blog post links to AI benchmarks @ykdojo (#5359)\r\n- docs: Revamp optimization docs @colin-ho (#5347)\r\n- docs!: update docstrings for various functions  @universalmind303 (#5344)\r\n\r\n## 👷 CI\r\n\r\n- ci: Fix ai benchmark workflow @colin-ho (#5363)\r\n- ci: Pin pydantic version in `provision.py` for iceberg tests @colin-ho (#5352)\r\n- ci: Add ai benchmarks ci @colin-ho (#5337)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.5...v0.6.6\r\n","2025-10-14T20:24:58",{"id":272,"version":273,"summary_zh":274,"released_at":275},117464,"v0.6.5","## What's Changed 🚀\r\n\r\n## 💥 Breaking Changes\r\n\r\n- refactor!: make daft.File immutable @universalmind303 (#5288)\r\n\r\n## ✨ Features\r\n\r\n- feat: add `use_process` flag for `@daft.func(...)`  @universalmind303 (#5323)\r\n- feat: Dashboard Query Subscriber @srilman (#5266)\r\n- feat: Subscriber Framework @srilman (#5210)\r\n- feat: make file-array serializable @universalmind303 (#5304)\r\n- feat: add count() pushdown optimization in Iceberg datasource @huleilei (#5029)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Fix the make docs warnings @colin-ho (#5328)\r\n- fix: Iterate on the patched azure\\_identity@0.21.0 @desmondcheongzx (#5322)\r\n- fix: decimal format for handling scientific notation @rchowell (#5303)\r\n- fix: Use patched azure\\_identity@0.21.0 for AKS Workload Identity credentials to continue working > 24 hours @desmondcheongzx (#5299)\r\n\r\n## 🚀 Performance\r\n\r\n- perf: more literal optimizations @universalmind303 (#5314)\r\n- perf: Support parallel CSV parsing when files contain carriage returns @desmondcheongzx (#5319)\r\n\r\n## ♻️ Refactor\r\n\r\n- refactor!: make daft.File immutable @universalmind303 (#5288)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: add casting matrix @kevinzwang (#5333)\r\n- docs: add daft.func docs page and APIs @kevinzwang (#5335)\r\n- docs: Update links for running Daft in distributed mode @desmondcheongzx (#5334)\r\n- docs: Fix broken links on minhash example @colin-ho (#5326)\r\n- docs: Add architecture docs @colin-ho (#5320)\r\n- docs: Add docs to broken link checker @colin-ho (#5324)\r\n- docs: Clean up AGENTS.md structure @ykdojo (#5321)\r\n- docs: Add Kubernetes quickstart to Daft docs @jeevb (#5318)\r\n- docs: Add docs and values reference for quickstart chart @jeevb (#5313)\r\n- docs: Fix broken link in Common Crawl dataset docs @desmondcheongzx (#5301)\r\n- docs: Document Common Crawl dataset @desmondcheongzx (#5300)\r\n\r\n## 👷 CI\r\n\r\n- ci: Only fail broken link checker on 404s @colin-ho (#5327)\r\n- ci: fix property test column name @kevinzwang (#5325)\r\n\r\n## 🔧 Maintenance\r\n\r\n- chore: Refactor DistributedPipelineNode to implement TreeDisplay @srilman (#5315)\r\n- chore: Enable interactive html for `df.__repr_html__` @colin-ho (#5312)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.4...v0.6.5\r\n","2025-10-06T17:48:34",{"id":277,"version":278,"summary_zh":279,"released_at":280},117465,"v0.6.4","## What's Changed 🚀\r\n\r\n## 💥 Breaking Changes\r\n\r\n- feat!: unify Python -> Daft type conversions @kevinzwang (#5201)\r\n\r\n## ✨ Features\r\n\r\n- feat: Add rows written stat for sinks @colin-ho (#5285)\r\n- feat: Add Common Crawl dataset @desmondcheongzx (#5244)\r\n- feat!: unify Python -> Daft type conversions @kevinzwang (#5201)\r\n- feat: when function @kevinzwang (#5283)\r\n- feat: Add first draft of k8s-quickstart helm chart @jeevb (#5272)\r\n- feat: add support for pyiceberg 0.10.0 @gmweaver (#5277)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Pass io config when grabbing Common Crawl manifest @desmondcheongzx (#5294)\r\n- fix: Use {} for dashboard dynamic route @colin-ho (#5289)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: Update readme with new benchmarks @colin-ho (#5281)\r\n- docs: fixed typo on s3 section of docs @destroyer22719 (#5280)\r\n\r\n## ✅ Tests\r\n\r\n- test: Temporarily remove Common Crawl integration test @desmondcheongzx (#5296)\r\n- test: Complete coverage for array comparisons @desmondcheongzx (#5286)\r\n\r\n## 🔧 Maintenance\r\n\r\n- chore: Fix imports to not import pyarrow @colin-ho (#5290)\r\n- chore: remove ChanChan from PR checklist @kevinzwang (#5282)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.3...v0.6.4\r\n","2025-10-01T00:00:39",{"id":282,"version":283,"summary_zh":284,"released_at":285},117466,"v0.6.3","## What's Changed 🚀\r\n\r\n## ✨ Features\r\n\r\n- feat: allow PythonArray to be serialized @kevinzwang (#5270)\r\n- feat: support pyarrow.schema in write\\_lance api @huleilei (#5247)\r\n- feat(dashboard): Add verbose flag @srilman (#5267)\r\n- feat: file\\_size expr @universalmind303 (#5243)\r\n- feat: Use separate runtime and port for detached dashboard @srilman (#5263)\r\n- feat: expression avg alias @destroyer22719 (#5252)\r\n- feat: add df constructors for daft.File @universalmind303 (#5074)\r\n- feat: Add WARC-Target-URI as a top-level column for WARC reads @desmondcheongzx (#5254)\r\n- feat: Force build side for broadcast joins @colin-ho (#5238)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: Increase actor udf readiness timeout @colin-ho (#5258)\r\n- fix: Ensure super extension type is registered in to\\_arrow\\_dtype @ConeyLiu (#5265)\r\n\r\n## 🚀 Performance\r\n\r\n- perf: Use take for join probes @colin-ho (#5160)\r\n\r\n## ♻️ Refactor\r\n\r\n- refactor: add fragment\\_group\\_size to reduce lance scan task @Jay-ju (#5261)\r\n\r\n## 📖 Documentation\r\n\r\n- docs: improve copy and consistency on index page @ykdojo (#5271)\r\n- docs: Update AI benchmarks @colin-ho (#5264)\r\n- docs: AI benchmarks @colin-ho (#5245)\r\n\r\n## 🔧 Maintenance\r\n\r\n- chore(deps): Upgrade aws lc rs @colin-ho (#5274)\r\n- chore(deps): bump the minor group across 1 directory with 51 updates @[dependabot[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fdependabot) (#5262)\r\n- chore: Add warning for smj @colin-ho (#5268)\r\n- chore(flotilla): Remove stages @srilman (#5222)\r\n- chore: Fix more dependabot security warnings @desmondcheongzx (#5260)\r\n- chore: Fix dependabot h11 security warning @desmondcheongzx (#5259)\r\n- chore: remove old documentation about daft cli @universalmind303 (#5241)\r\n\r\n## ⬆️ Dependencies\r\n\r\n- chore(deps): bump the minor group across 1 directory with 51 updates @[dependabot[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fdependabot) (#5262)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FEventual-Inc\u002FDaft\u002Fcompare\u002Fv0.6.2...v0.6.3\r\n","2025-09-24T23:29:15"]