ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

txtai 全栈 AI 框架实战指南:语义搜索、LLM 编排与语言模型工作流

txtai 全栈 AI 框架实战指南:语义搜索、LLM 编排与语言模型工作流 txtai 全栈 AI 框架实战指南语义搜索、LLM 编排与语言模型工作流【免费下载链接】txtai All-in-one AI framework for semantic search, LLM orchestration and language model workflows项目地址: https://gitcode.com/GitHub_Trending/tx/txtaitxtai 是一个 All-in-one 的开源 AI 框架以嵌入数据库embeddings database为核心将向量索引、图网络与关系数据库统一在一个体系内从而同时支撑语义搜索、LLM 编排与语言模型工作流三类典型应用。本文将基于当前仓库版本 9.13.0见 src/python/txtai/version.py的官方文档与源码系统讲解 txtai 的架构、功能全景、快速上手、安装方式与核心实战场景读完即可基于它构建 RAG、Agent 与多模型工作流应用。txtai 是什么一个框架三类能力官方文档对 txtai 的定位是一句话All-in-one AI framework for semantic search, LLM orchestration and language model workflows即面向语义搜索、LLM 编排与语言模型工作流的全能 AI 框架。其技术底座是嵌入数据库embeddings database它并非单一的向量库而是三种存储的联合体向量索引vector indexes包含稠密向量dense与稀疏向量sparse两类索引负责语义层面的相似度检索图网络graph networks用于主题建模、数据连通性与网络分析关系数据库relational databases负责元数据、内容与结构化查询。这一基础架构带来两个核心价值其一直接提供开箱即用的向量检索能力其二作为大语言模型LLM应用的知识源knowledge source为 RAG、Agent 等场景提供上下文。在此基础上你可以构建自主 Agent、检索增强生成RAG流程、多模型工作流等高级应用。从源码结构可以进一步印证这一设计仓库 src/python/txtai/ 下平行存在embeddings、graph、database、ann近似最近邻检索含dense与sparse两个子目录、scoring等模块顶层入口 src/python/txtai/init.py 直接导出了Agent、Application、Embeddings、LLM、RAG、Textractor、Workflow等核心对象这与文档描述的能力矩阵一一对应。功能特性全景docs/index.md 对 txtai 的功能做了如下总结七个维度覆盖了从数据、模型到应用的完整链路 向量搜索支持 SQL 查询、对象存储、主题建模、图分析以及多模态索引 多模态嵌入可为文本、文档、音频、图像和视频创建 embeddings 语言模型管道Pipelines运行 LLM 提示词、问答、打标签、转录、翻译、摘要等任务↪️ 工作流Workflows将多个管道串联并聚合业务逻辑进程既可以是简单微服务也可以是多模型工作流 Agents智能连接嵌入、管道、工作流乃至其他 Agent自主解决复杂问题⚙️ Web 与 MCP API内置 API 服务并提供 JavaScript、Java、Rust、Go 等语言的绑定 开箱即用内置合理默认值可快速启动☁️ 本地或容器化扩展既可在本地运行也可通过容器编排横向扩展。在技术栈上txtai 基于Python 3.10、Hugging Face Transformers、Sentence Transformers 与 FastAPI 构建以 Apache 2.0 协议开源。这一点可从 setup.py 得到印证python_requires3.10默认依赖包含faiss-cpu、torch、transformers、numpy、pyyaml等。为什么选择 txtai面对层出不穷的向量数据库与 LLM 框架官方文档给出了选择 txtai 的理由同时附带了可直接运行的示例几分钟内上手通过 pip 或 Docker 即可安装几行代码即可完成索引与搜索# Get started in a couple lines import txtai embeddings txtai.Embeddings() embeddings.index([Correct, Not what we hoped]) embeddings.search(positive, 1) # [(0, 0.29862046241760254)]内置 API方便用你熟悉的编程语言开发应用。只需一个 YAML 配置文件即可启动一个完整的搜索服务# app.yml embeddings: path: sentence-transformers/all-MiniLM-L6-v2CONFIGapp.yml uvicorn txtai.api:app curl -X GET http://localhost:8000/search?querypositive本地运行无需将数据上传到分散的远程服务模型跨度大从微型模型micromodels一直到大型语言模型LLMs都能工作低占用按需安装额外依赖、按需扩容示例驱动学习examples/ 目录下的 notebook 覆盖了全部可用功能。从 src/python/txtai/embeddings/base.py 的源码可以看到index、upsert、delete、search、load、save、close等方法的完整定义分别位于第 103、155、203、356、533、606、664 行意味着建索引—查询—持久化—资源回收这一生命周期都有底层实现支撑。核心使用场景文档将典型用例归纳为三大类每一类都提供了专门的示例 notebook 与快速上手脚本。场景一语义搜索语义搜索semantic search是 txtai 最基础也最成熟的能力。与传统基于关键词的搜索不同语义搜索理解自然语言能够返回语义相同但关键词不一定相同的结果。语义搜索类示例包括示例说明01_Introducing_txtai.ipynbtxtai 功能总览13_Similarity_search_with_images.ipynb将图像与文本嵌入到同一空间进行搜索34_Build_a_QA_database.ipynb用语义搜索做问题匹配构建 QA 数据库38_Introducing_the_Semantic_Graph.ipynb探索主题、数据连通性并运行网络分析在 docs/embeddings/index.md 中给出了完整的索引与搜索代码展示了语义搜索的实际用法from txtai import Embeddings # Create embeddings model, backed by sentence-transformers transformers embeddings Embeddings(pathsentence-transformers/nli-mpnet-base-v2) data [ US tops 5 million confirmed virus cases, Canadas last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg, Beijing mobilises invasion craft along coast as Taiwan tensions escalate, The National Park Service warns against sacrificing slower friends in a bear attack, Maine man wins $1M from $25 lottery ticket, Make huge profits without work, earn up to $100,000 a day ] # Index the list of text embeddings.index(data) for query in (feel good story, climate change, public health story, war, wildlife, asia, lucky, dishonest junk): uid embeddings.search(query, 1)[0][0] print(f{query:20} {data[uid]})关于这一层的使用要点源自 docs/embeddings/index.md构建BuildEmbeddings实例由构造函数传入的配置驱动向量通过path参数指定模型不传任何配置也可以此时会加载默认的 transformers 向量模型模型指南 中有当前推荐列表。索引Indexindex方法接受可迭代对象支持(id, data, tags)、(id, data)和纯data三种元素格式输入既可以是列表也可以是生成器生成器有助于处理超大数据集内存中只保留部分数据。当data为字典时文本通过text键传入、二进制对象通过object键传入且需要启用 content/objects 存储。搜索Searchsearch(query, limit)返回(id, score)列表未存 content 时或查询列字典存储 content 时同时支持自然语言查询与 SQL 查询。资源管理Resource management嵌入数据库是上下文管理器推荐用with块自动close释放资源# Create a new Embeddings database, index data and save with Embeddings() as embeddings: embeddings.index(rows) embeddings.save(path) # Search a saved Embeddings database with Embeddings().load(path) as embeddings: embeddings.search(query)场景二LLM 编排Agents 与 RAG第二类场景围绕大语言模型展开包括自主 Agent、检索增强生成RAG、与数据对话chat with your data以及对接 LLM 的管道与工作流。AgentsAgent 会自动创建工作流来回答多方面的用户请求迭代式地提示模型并调用工具逐步推进直至给出答案。txtai 的 Agent 构建在 smolagents 框架之上支持 txtai 支持的全部 LLMHugging Face、llama.cpp、通过 LiteLLM 接入的 OpenAI / Claude / AWS Bedrock 等并支持agents.md与skill.md规范。Agents 非常适合需要多个工具/多种方法的复杂任务如果请求简单或有规则化流程官方建议优先考虑 RAG 与 Workflows。快速上手脚本见 examples/agent_quickstart.py相关示例还包括示例说明69_Granting_autonomy_to_agents.ipynb让 Agent 自主迭代式解决问题83_TxtAI_got_skills.ipynb将 skill.md 文件集成到 Agent 中84_Agent_Tools.ipynb了解 txtai 的 Agent 工具集71_Analyzing_LinkedIn_Company_Posts_with_Graphs_and_Agents.ipynb用图分析与 Agent 改善社交媒体互动在 docs/agent/index.md 中可以看到一个典型的 Agent 定义它同时持有 Wikipedia、arXiv 两个嵌入数据库工具与 web 搜索工具模型为Qwen/Qwen3-4B-Instruct-2507并设置了max_steps10限制推理步数。Agent 还支持Agent Teams——Agent 本身也可以作为工具被其他 Agent 调用从而让每个子 Agent 拥有独立的推理引擎。检索增强生成RAGRAG 通过知识库作为上下文约束模型输出降低 LLM 幻觉风险最常见的形态就是与你的数据对话chat with your data。快速上手脚本见 examples/rag_quickstart.py相关示例包括示例说明52_Build_RAG_pipelines_with_txtai.ipynbRAG 构建指南含引用citation生成方法79_RAG_is_more_than_Vector_Search.ipynb通过 Web、SQL 等来源检索上下文77_GraphRAG_with_Wikipedia_and_GPT_OSS.ipynb深度图搜索驱动的 RAG65_Speech_to_Speech_RAG.ipynb完整的语音到语音 RAG 工作流场景三语言模型工作流语言模型工作流也称语义工作流将语言模型连接起来构建智能应用。虽然 LLM 很强大但很多更小、更专精的模型在特定任务上表现更好、速度更快——包括抽取式问答、自动摘要、语音合成、转录和翻译等。工作流正是把这些模型高效串联起来的机制。examples/workflow_quickstart.py 提供了快速上手脚本相关示例包括示例说明14_Run_pipeline_workflows.ipynb简单而强大的数据处理构造09_Building_abstractive_text_summaries.ipynb生成式文本摘要11_Transcribe_audio_to_text.ipynb音频转文本12_Translate_text_between_languages.ipynb机器翻译与语言检测工作流的底层机制在 docs/workflow/index.md 中有清晰说明Workflow 是接受可调用对象并返回元素的构造以流式streaming方式按批次处理数据因此能够高效处理海量数据。最基本的示例workflow Workflow([Task(lambda x: [y * 2 for y in x])]) list(workflow([1, 2, 3]))由于工作流以生成器运行必须消费输出才会真正执行# Small dataset where output fits in memory list(workflow(elements)) # Large dataset for output in workflow(elements): function(output) # Large dataset where output is discarded for _ in workflow(elements): pass工作流既可以用 Python 定义也可以用 YAML 配置驱动。下面是一个完整的实战示例源自 docs/workflow/index.md转录一组音频文件 → 翻译成法语 → 建立索引 → 搜索。Python 版from txtai import Embeddings from txtai.pipeline import Transcription, Translation from txtai.workflow import FileTask, Task, Workflow embeddings Embeddings({ path: sentence-transformers/paraphrase-MiniLM-L3-v2, content: True }) transcribe Transcription() translate Translation() tasks [ FileTask(transcribe, r\.wav$), Task(lambda x: translate(x, fr)) ] data [US_tops_5_million.wav, Canadas_last_fully.wav, Beijing_mobilises.wav, The_National_Park.wav, Maine_man_wins_1_mil.wav, Make_huge_profits.wav] workflow Workflow(tasks) embeddings.index((uid, text, None) for uid, text in enumerate(workflow(data))) embeddings.search(wildlife, 1)等价的 YAML 配置驱动版保存为workflow.ymlwritable: true embeddings: path: sentence-transformers/paraphrase-MiniLM-L3-v2 content: true # Transcribe audio to text transcription: # Translate text between languages translation: workflow: index: tasks: - action: transcription select: \\.wav$ task: file - action: translation args: [fr] - action: indexfrom txtai import Application app Application(workflow.yml) list(app.workflow(index, [ US_tops_5_million.wav, Canadas_last_fully.wav, Beijing_mobilises.wav, The_National_Park.wav, Maine_man_wins_1_mil.wav, Make_huge_profits.wav ])) app.search(wildlife)工作流还可以串联多个 LLM 提示任务如先抽取关键词再翻译成法语也可以把任意 txtai 管道/工作流任务与 LLM 自由组合——这正是 docs/pipeline/index.md 所描述的管道是带__call__方法的可调用对象工作流因此能高效驱动一系列 transformers 管道。安装指南最简单的安装方式是通过 pip 从 PyPI 安装pip install txtai支持 Python 3.10官方建议使用 Python 虚拟环境。详细说明见 docs/install.md其要点如下。可选依赖extrastxtai 提供多种可选依赖组按需安装可控制依赖体积。从 setup.py 源码可以确认以下 extras 的具体组成Extra说明安装命令all安装全部依赖pip install txtai[all]ann额外 ANN 后端annoy、hnswlib、milvus、pgvector、sqlite-vec、turbovec、zvec 等pip install txtai[ann]api通过 Web API 提供 txtai 服务fastapi、uvicorn、pillow 等pip install txtai[api]cloud对接云存储与云算力apache-libcloud 等pip install txtai[cloud]console命令行索引查询控制台pip install txtai[console]database额外内容存储选项duckdb、sqlalchemy 等pip install txtai[database]graph主题建模、数据连通性与网络分析networkx、grand-graph 等pip install txtai[graph]model额外的非标准模型支持onnx、onnxruntimepip install txtai[model]pipeline全部管道默认安装已包含大多数常用管道pip install txtai[pipeline]scoring额外评分方法pip install txtai[scoring]vectors额外向量方法sentence-transformers、litellm、llama-cpp-python 等pip install txtai[vectors]workflow全部工作流任务默认安装已包含大多数常用工作流任务pip install txtai[workflow]管道类还有更细的拆分pipeline-audio、pipeline-data、pipeline-image、pipeline-llm、pipeline-text、pipeline-train。多个依赖可以组合安装pip install txtai[pipeline,workflow]另外extras[agent]包含 smolagents、mcp 等 Agent 相关依赖similarity是ann与vectors的向后兼容组合。环境特定前提LinuxAudioStream/Microphone 管道需要 PortAudio 系统库Transcription 管道需要 SoundFile 库LiteRT LLM 管道需要 libegl1、libgles2 与 libvulkan1macOS旧版 Faiss 依赖libomp可brew install libomp音频管道需brew install portaudioWindows可选依赖需要安装 C Build Tools。CPU-only 安装默认安装会带入带 GPU 支持的 PyTorch。纯 CPU 环境可安装 CPU 版 PyTorchpip install txtai torch[version]cpu \ -f https://download.pytorch.org/whl/torch其中[version]为 PyTorch 版本号如 2.4.1。从源码安装与 Conda从源码安装最新未发布功能pip install githttps://github.com/neuml/txtai安装 extra 时在 URL 末尾追加#eggtxtai[name-of-extra]conda-forge 提供社区维护的包conda install -c conda-forge txtai。极简安装Minimal如果默认依赖过重可安装零依赖的轻量包# Lightweight minimal install pip install txtai_minimal # Same as standard txtai install pip install txtai_minimal[default]注意在无 torch 环境下使用Embeddings或LLM接口需要llama.cpp、litellm或litert之一。从 setup.py 可以看到设置环境变量MINIMAL时包名会变为txtai_minimal默认依赖转为可选。容器化运行Docker 镜像已随仓库提供见 docker/ 目录下的api、aws、base、minimal、schedule、workflow等多个 Dockerfile容器化安装与编排方式详见 docs/cloud.md。模型指南txtai 为各组件提供了一套当前推荐的模型docs/models.md这些模型均允许商业使用兼顾速度与性能组件推荐模型Embeddingsall-MiniLM-L6-v2图像描述BLIP零样本标签DeBERTa v3 Zeroshot固定标签用 训练管道 微调大语言模型 (LLM)Gemma 4 31B摘要DistilBART语音合成ESPnet JETS转录Whisper翻译OPUS Model Series模型既可以传 Hugging Face Hub 的路径也可以传本地目录。模型路径是可选的未指定时会加载默认模型对于没有推荐模型的任务txtai 使用 Hugging Face Tasks 指南中所示的默认模型。深入学习路径仓库提供了丰富的学习资源示例库docs/examples.md 按语义搜索、LLM、管道、工作流、模型训练、API、架构、发布与示例应用等维度收录了 80 个 notebook 与脚本全部位于 examples/ 目录其中既有功能演示也有可直接运行的应用如 examples/similarity.py、examples/books.py、examples/wiki.py 等组件文档嵌入配置见 docs/embeddings/管道清单见 docs/pipeline/index.mdAPI 配置见 docs/api/configuration.md常用问题见 docs/faq.md生态应用官方还维护了基于 txtai 构建的应用例如 RAG 应用、开源 AI 编程 Agent、医学与科学论文分析工具 paperai、论文自动标注工具 annotateai 等可从中观察 txtai 在生产场景中的组织方式版本演进examples/ 中每个大版本都有Whats newnotebook4.0 至 9.0记录了内容存储、SQL、稀疏/混合/子索引、语义图 2.0、LoRA/QLoRA 训练、Agent 支持、学习型稀疏向量、晚期交互模型与重排序器等能力的演进脉络。小结txtai 通过嵌入数据库这一统一底座把向量检索、图分析与关系数据库整合为一个可组合的整体向上支撑语义搜索、RAG、Agent 与多模型工作流向下通过可裁剪的依赖体系与容器化部署适配从个人笔记本到生产集群的各种环境。无论你是要快速搭建一个语义搜索服务还是要为企业数据构建带引用的 RAG 应用亦或是串联多个专精模型完成复杂的数据处理链路都可以从本文介绍的安装方式、快速上手脚本与配置示例出发再结合 examples/ 目录中的对应 notebook 深入实践。【免费下载链接】txtai All-in-one AI framework for semantic search, LLM orchestration and language model workflows项目地址: https://gitcode.com/GitHub_Trending/tx/txtai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表