towhee
Towhee 是一个专为简化神经数据处理流程而设计的开源框架,旨在让非结构化数据(如长文本、图像、音视频及分子结构)的处理变得简单高效。它解决了开发者在构建复杂 AI 流水线时面临的模型集成难、多模态数据格式不统一以及部署性能优化繁琐等痛点。
无论是希望快速原型验证的算法工程师,还是需要将 AI 能力落地到生产环境的后端开发者,Towhee 都能提供极大便利。用户无需成为深度学习专家,即可通过直观的 Python 链式 API 轻松编排基于大语言模型(LLM)的数据处理流程。
其核心亮点在于丰富的预置生态与高性能架构:内置超过 140 个涵盖计算机视觉、自然语言处理等领域的 SOTA 模型算子,并提供检索增强生成(RAG)、以图搜图等开箱即用的 ETL 流水线。此外,Towhee 底层集成 Triton 推理服务器,支持 TensorRT 等多种加速后端,能显著提升 CPU 和 GPU 上的推理速度,并支持将 Python 流水线一键转换为高性能 Docker 容器,便于大规模部署与扩展。借助 Towhee,您可以专注于业务逻辑,轻松将原始数据转化为有价值的向量嵌入或结构化信息。
使用场景
某电商团队需要构建一个“以图搜同款”功能,让用户上传商品照片即可快速检索库中相似物品。
没有 towhee 时
- 开发人员需手动拼接图像解码、预处理、模型推理(如 CLIP)及向量降维代码,脚本冗长且难以维护。
- 面对视频或批量图片数据,缺乏内置的帧采样与并行处理机制,导致数据处理耗时极长。
- 不同深度学习框架(PyTorch, ONNX 等)的部署环境配置复杂,从原型到生产环境的迁移成本高昂。
- 缺少标准化的算子库,每次更换模型或调整流程都需要重写大量底层逻辑,试错效率低下。
使用 towhee 后
- 通过 Pythonic 链式 API,仅需几行代码即可串联起“视频解码->关键帧提取->CLIP 特征提取->向量存储”的全流程。
- 直接调用内置的 140+ 预训练算子(如视频切片、音频分割),无需重复造轮子,大幅缩短开发周期。
- 利用基于 Triton 的高性能后端,自动优化 CPU/GPU 推理速度,并能一键将管道打包为 Docker 容器用于生产部署。
- 灵活切换多模态模型与提示词管理策略,轻松适配业务变化,快速构建检索增强生成(RAG)等高级应用。
towhee 将复杂的非结构化数据处理流水线简化为直观的代码链条,让开发者能专注于业务逻辑而非底层工程细节。
运行环境要求
- 未说明
- 非必需
- 支持 CPU 和 GPU 运行
- 若使用高性能后端(Triton Inference Server),支持 TensorRT、PyTorch 和 ONNX 加速,具体显卡型号和 CUDA 版本取决于所选后端及模型
未说明

快速开始
x2vec, Towhee就是你的不二之选!
Towhee 是一个前沿框架,旨在通过基于大语言模型(LLM)的流水线编排来简化非结构化数据的处理流程。它能够从多种非结构化数据类型中提取宝贵洞察,包括长文本、图像、音频和视频文件。借助生成式AI和最先进的深度学习模型,Towhee可以将这些未加工的数据转换为特定格式,如文本、图像或嵌入向量,并高效地加载到向量数据库等合适的存储系统中。开发者可以先使用友好的Python式API构建直观的数据处理流水线原型,随后再针对生产环境进行优化。
🎨 多模态支持:Towhee能够处理多种数据类型。无论是图像数据、视频片段、文本、音频文件,还是分子结构,Towhee都能轻松应对。
📃 LLM流水线编排:Towhee具有高度灵活性,可适配不同的大语言模型(LLM)。此外,它还支持在本地部署开源大型模型。同时,Towhee提供提示词管理和知识检索等功能,使与这些LLM的交互更加高效且富有成效。
🎓 丰富的算子库:Towhee提供了覆盖计算机视觉、自然语言处理、多模态、音频和医疗五大领域的大量即用型先进模型。拥有BERT、CLIP等超过140种模型,以及视频解码、音频切片、帧采样、降维等丰富功能,Towhee能够帮助用户高效构建数据处理流水线。
🔌 预构建的ETL流水线:Towhee为常见任务提供了开箱即用的ETL(提取、转换、加载)流水线,例如检索增强生成、文本图像搜索和视频副本检测等。这意味着即使你不是AI专家,也能利用这些功能快速构建应用。
⚡️ 高性能后端:借助Triton推理服务器的强大能力,Towhee可以在CPU和GPU上,通过TensorRT、PyTorch和ONNX等平台加速模型服务。此外,只需几行代码,即可将你的Python流水线转化为高性能的Docker容器,实现高效的部署和扩展。
🐍 Python式API:Towhee提供了一种链式调用的Python风格API,用于描述自定义的数据处理流水线。我们还支持Schema机制,让处理非结构化数据如同操作表格数据一样简单。
快速开始
Towhee需要Python 3.7及以上版本。你可以通过pip安装Towhee:
pip install towhee towhee.models
流水线
预定义流水线
Towhee提供了一些预定义的流水线,帮助用户快速实现某些功能。目前已实现的功能包括:
所有流水线都可以在Towhee Hub上找到。以下是一个使用sentence_embedding流水线的示例:
from towhee import AutoPipes, AutoConfig
# 获取内置的sentence_similarity流水线
config = AutoConfig.load_config('sentence_embedding')
config.model = 'paraphrase-albert-small-v2'
config.device = 0
sentence_embedding = AutoPipes.pipeline('sentence_embedding', config=config)
# 为一句话生成嵌入
embedding = sentence_embedding('你好吗?').get()
# 批量为多句话生成嵌入
embeddings = sentence_embedding.batch(['你好吗?', '你几岁了?'])
embeddings = [e.get() for e in embeddings]
自定义流水线
如果在Towhee Hub中找不到你需要的流水线,也可以通过Towhee的Python API实现自定义流水线。下面我们将创建一个基于CLIP的跨模态检索流水线。
from towhee import ops, pipe, DataCollection
# 创建图像嵌入并构建索引
p = (
pipe.input('file_name')
.map('file_name', 'img', ops.image_decode.cv2())
.map('img', 'vec', ops.image_text_embedding.clip(model_name='clip_vit_base_patch32', modality='image'))
.map('vec', 'vec', ops.towhee.np_normalize())
.map(('vec', 'file_name'), (), ops.ann_insert.faiss_index('./faiss', 512))
.output()
)
for f_name in ['https://raw.githubusercontent.com/towhee-io/towhee/main/assets/dog1.png',
'https://raw.githubusercontent.com/towhee-io/towhee/main/assets/dog2.png',
'https://raw.githubusercontent.com/towhee-io/towhee/main/assets/dog3.png']:
p(f_name)
# 将Faiss数据刷写到磁盘。
p.flush()
# 根据文本搜索图像
decode = ops.image_decode.cv2('rgb')
p = (
pipe.input('text')
.map('text', 'vec', ops.image_text_embedding.clip(model_name='clip_vit_base_patch32', modality='text'))
.map('vec', 'vec', ops.towhee.np_normalize())
# Faiss操作结果格式:[[id, score, [file_name], ...]]
.map('vec', 'row', ops.ann_search.faiss_index('./faiss', 3))
.map('row', 'images', lambda x: [decode(item[2][0]) for item in x])
.output('text', 'images')
)
DataCollection(p('小狗柯基')).show()
核心概念
Towhee 由四个主要组成部分构成:算子、管道、DataCollection API 和 引擎。
算子:算子是神经网络数据处理管道中的单个构建模块。不同实现的算子按任务分类,每个任务都具有标准接口。算子可以是深度学习模型、数据处理方法,或 Python 函数。
管道:管道由多个算子以有向无环图(DAG)的形式连接而成。这种 DAG 可以实现复杂的功能,例如嵌入特征提取、数据标注以及跨模态数据分析等。
DataCollection API:这是一个符合 Python 风格且支持方法链式调用的 API,用于构建自定义管道,提供了多种数据转换接口:map、filter、flat_map、concat、window、time_window 和 window_all。通过这些接口,可以快速构建复杂的数据处理管道,以处理视频、音频、文本、图像等非结构化数据。
引擎:引擎位于 Towhee 的核心位置。给定一个管道后,引擎会驱动各个算子之间的数据流,调度任务,并监控计算资源的使用情况(CPU/GPU 等)。我们在 Towhee 中提供了一个基础引擎,用于在单机上运行管道;同时还提供了一个基于 Triton 的引擎,适用于 Docker 容器环境。
资源
- TowheeHub:https://towhee.io/
- 文档:https://towhee.readthedocs.io/en/latest/
- 示例:https://github.com/towhee-io/examples
贡献
编写代码并不是唯一的贡献方式!提交问题、回答问题以及改进文档,都只是您可以帮助我们不断壮大的社区的众多方式之一。请查看我们的贡献页面,以获取更多信息。
特别感谢以下各位对 Towhee 的贡献,无论是在 Github 上、Towhee Hub 中,还是其他地方:
正在寻找一个用于存储和索引嵌入向量的数据库吗?不妨看看 Milvus。
版本历史
1.1.32023/12/051.1.22023/09/151.1.12023/07/051.1.02023/06/091.0.02023/05/250.9.02022/12/020.8.12022/09/300.8.02022/08/160.7.32022/07/270.7.22022/07/070.7.12022/07/010.7.02022/06/240.6.12022/05/130.6.02022/04/080.5.02022/03/040.4.02021/12/31常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器