SuperAPI AI 工具集

llamaindex

智能体与模型

查看项目

更新于 10-15 13:03

技能介绍

LlamaIndex 是一个用于连接 LLM 与自有数据的数据框架,主要面向 RAG(检索增强生成)应用场景。

用途

当需要构建 RAG 应用、对私有数据做文档问答、从多个来源摄取数据(300+ 连接器)、为 LLM 创建知识库、用企业数据构建聊天机器人,或从文档中提取结构化数据时,可以使用 LlamaIndex。若需求更偏向通用智能体,可考虑 LangChain;若需要生产级搜索管道,可考虑 Haystack;若只需轻量语义搜索,可考虑 txtai;若只需向量存储,可考虑 Chroma。

主要能力

  • 数据连接器:通过 SimpleDirectoryReader、SimpleWebPageReader、GithubRepositoryReader、BeautifulSoupWebReader、DatabaseReader、JSONReader 等加载文件、网页、GitHub 仓库、数据库和 API 数据,也可手动创建 Document。
  • 索引:支持 VectorStoreIndex(语义搜索,最常用)、ListIndex(顺序扫描)、TreeIndex(层级摘要),并可将索引持久化到磁盘或从存储加载。
  • 查询引擎:支持基础查询、流式响应,以及 similarity_top_k、response_mode(compact、tree_summarize、simple_summarize)、verbose 等配置。
  • 检索器:支持向量检索、元数据过滤(MetadataFilters、ExactMatchFilter)以及自定义检索器。
  • 智能体:通过 FunctionAgent 定义工具(如计算函数),也可用 QueryEngineTool 将查询引擎封装为工具,实现文档搜索与工具调用的组合。
  • 高级 RAG:支持对话式聊天引擎(condense_plus_context、context、react 等模式,带记忆)、元数据过滤、结构化输出(PydanticOutputParser)。
  • 向量存储集成:支持 Chroma(本地)、Pinecone(云端)、FAISS(快速)等。
  • 定制化:可设置全局 LLM(如 Anthropic)、自定义嵌入模型(如 HuggingFaceEmbedding)、自定义提示模板。
  • 多模态 RAG:可加载图片与文档,结合多模态 LLM(如 OpenAIMultiModal)进行查询。
  • 评估:提供 RelevancyEvaluator 和 FaithfulnessEvaluator,用于评估回答的相关性与忠实度。

使用方式

安装:推荐 pip install llama-index,或最小核心加特定集成:pip install llama-index-core、pip install llama-index-llms-openai、pip install llama-index-embeddings-openai。

5 行 RAG 示例:

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)

常见模式包括文档问答系统(加载文档、建索引、持久化、查询并输出来源)和带记忆的聊天机器人(使用 chat_engine 多轮对话)。

适用场景

主要用例为 RAG、文档问答、知识检索系统,需要大量数据连接器,或希望使用更简单的文档问答 API 时。

限制与说明

资料中给出的性能参考:索引 100 个文档约 10-30 秒(一次性,可持久化);向量查询约 0.5-2 秒;流式查询首 token 约 0.5 秒;带工具的智能体约 3-8 秒。最佳实践建议:多数情况使用向量索引、将索引保存到磁盘、合理分块(512-1024 tokens 为佳)、添加元数据、使用流式、开发时开启 verbose、评估回答、对话使用聊天引擎、持久化存储、监控成本。关于收费、价格、平台支持等具体信息,资料中暂未提供。