[!注意] 此仓库已被归档并设为只读。 随着 LlamaIndex v0.10 的发布,我们将弃用这个
llama_hub仓库 - 所有集成(数据加载器、工具)和包现已移至核心llama-indexPython 仓库。 LlamaHub 将继续存在。我们正在改版 llamahub.ai,使其指向llama-index仓库中可用的所有集成/包/数据集。
原创者:Jesse Zhang (GitHub: emptycrown, Twitter: @thejessezhang),他慷慨地将此仓库捐赠给了 LlamaIndex!
👥 贡献
有兴趣贡献?请查看下方的贡献部分了解更多详情。
这是一个由社区创建的所有数据加载器/读取器/工具/llama-packs/llama-datasets 的简单库。目标是让大型语言模型能够轻松连接到各种知识源。这些是通用工具,旨在用于 LlamaIndex、LangChain 等项目中。
加载器和读取器允许您轻松导入数据以供大型语言模型搜索和检索,而工具则允许模型读取和写入第三方数据服务和源。最终,这使您能够创建自己的定制数据代理,与您和您的数据智能协作,充分发挥下一代大型语言模型的能力。
有关各种数据代理的示例,请参阅 notebooks 目录。您可以找到创建数据代理的 Jupyter 笔记本示例,这些代理可以从 Google Docs、SQL 数据库、Notion 和 Slack 加载和解析数据,还可以管理您的 Google 日历和 Gmail 收件箱,或读取和使用 OpenAPI 规范。
要更轻松地浏览可用的集成,请查看此网站:https://llamahub.ai/。
<图片>
llama-hub 作为 PyPI 包使用)这些通用加载器旨在用作将数据加载到 LlamaIndex 中的方式,并/或随后在 LangChain 中使用。
pip install llama-hub
from llama_index import VectorStoreIndex from llama_hub.google_docs import GoogleDocsReader gdoc_ids = ['1wf-y2pd9C878Oh-FmLH7Q_BQkljdm6TQal-c1pUfrec'] loader = GoogleDocsReader() documents = loader.load_data(document_ids=gdoc_ids) index = VectorStoreIndex.from_documents(documents) index.query('作者在哪里上的学?')
from llama_index.agent import OpenAIAgent import openai openai.api_key = 'sk-api-key' from llama_hub.tools.google_calendar import GoogleCalendarToolSpec tool_spec = GoogleCalendarToolSpec() agent = OpenAIAgent.from_tools(tool_spec.to_tool_list()) agent.chat('今天日历上的第一件事是什么') agent.chat("请在明天下午4点创建一个审查拉取请求的事件")
有关创建和使用数据代理的各种示例,请参阅 notebooks 目录。
注意:请确保将 Tool 的描述更改为符合您用例的内容。
from llama_index import VectorStoreIndex from llama_hub.google_docs import GoogleDocsReader from langchain.llms import OpenAI from langchain.chains.question_answering import load_qa_chain # 加载文档 gdoc_ids = ['1wf-y2pd9C878Oh-FmLH7Q_BQkljdm6TQal-c1pUfrec'] loader = GoogleDocsReader() documents = loader.load_data(document_ids=gdoc_ids) langchain_documents = [d.to_langchain_format() for d in documents] # 初始化示例 QA 链 llm = OpenAI(temperature=0) qa_chain = load_qa_chain(llm) question="<在此输入查询>" answer = qa_chain.run(input_documents=langchain_documents, question=question)
download_loader)您也可以使用 LlamaIndex 的 download_loader 在一行代码中使用加载器。
例如,请参阅下面使用 Google Docs 加载器的代码片段。
from llama_index import VectorStoreIndex, download_loader GoogleDocsReader = download_loader('GoogleDocsReader') gdoc_ids = ['1wf-y2pd9C878Oh-FmLH7Q_BQkljdm6TQal-c1pUfrec'] loader = GoogleDocsReader() documents = loader.load_data(document_ids=gdoc_ids) index = VectorStoreIndex.from_documents(documents) index.query('作者在哪里上的学?')
可以使用 llama-index 附带的 llamaindex-cli 工具下载 Llama-packs:
llamaindex-cli download-llamapack ZephyrQueryEnginePack --download-dir ./zephyr_pack
或直接使用 download_llama_pack 函数:
from llama_index.llama_pack import download_llama_pack # 下载并安装依赖项 LlavaCompletionPack = download_llama_pack( "LlavaCompletionPack", "./llava_pack" )
(注:以下我们展示了使用 RagEvaluatorPack 在 LabelledRagDataset 上生成 RAG 基准的模式。然而,还有其他类型的 llama-datasets,如 LabelledEvaluatorDataset,以及用于在各自任务上生成基准的相应 llama-packs。它们都遵循类似的使用模式。请参阅 README 以了解每种类型的 llama-dataset 的更多信息。)
llama-dataset 的主要用途是评估 RAG 系统的性能。具体来说,它作为一个新的测试集(用传统机器学习的术语来说),用于构建 RAG,进行预测,然后执行评估,比较预测的响应与参考响应。要进行评估,推荐的使用模式涉及应用 RagEvaluatorPack。我们建议阅读"评估"模块的 文档 以了解有关我们所有 llama-dataset 的更多信息。
from llama_index.llama_dataset import download_llama_dataset from llama_index.llama_pack import download_llama_pack from llama_index import VectorStoreIndex # 下载并安装基准数据集的依赖项 rag_dataset, documents = download_llama_dataset( "PaulGrahamEssayDataset", "./data" ) # 构建基本 RAG 系统 index = VectorStoreIndex.from_documents(documents=documents) query_engine = VectorStoreIndex.as_query_engine() # 使用 RagEvaluatorPack 进行评估 RagEvaluatorPack = download_llama_pack( "RagEvaluatorPack", "./rag_evaluator_pack" ) rag_evaluator_pack = RagEvaluatorPack( rag_dataset=rag_dataset, query_engine=query_engine ) benchmark_df = rag_evaluate_pack.run() # 也支持异步 arun()
Llama-datasets 也可以直接使用 llamaindex-cli 下载,该工具随 llama-index python 包一起安装:
llamaindex-cli download-llamadataset PaulGrahamEssayDataset --download-dir ./data
从 llamaindex-cli 下载后,您可以检查数据集及其源文件(存储在 /source_files 目录中),然后将它们加载到 Python 中:
from llama_index import SimpleDirectoryReader from llama_index.llama_dataset import LabelledRagDataset rag_dataset = LabelledRagDataset.from_json("./data/rag_dataset.json") documents = SimpleDirectoryReader( input_dir="./data/source_files" ).load_data()
添加加载器/工具/llama-pack 只需 fork 此仓库并提交拉取请求。当发布新的 llama-hub 版本时,Llama Hub 网站将自动更新。但是,在提交 PR 时,请记住以下准则。
创建一个新的 Python 虚拟环境。以下命令在 .venv 中创建一个环境并激活它:
python -m venv .venv source .venv/bin/activate
如果您使用的是 Windows,请使用以下命令激活虚拟环境:
.venv\scripts\activate
安装 poetry:
pip install poetry
安装所需的依赖项(这也会安装 llama_index):
poetry install
这将在您的 venv 中创建 llama-hub 的可编辑安装。
对于加载器,在 llama_hub 中创建一个新目录;对于工具,在 llama_hub/tools 中创建目录;对于 llama-packs,在 llama_hub/llama_packs 中创建目录。它可以嵌套在另一个目录中,但请为其命名一个唯一的名称,因为目录名将成为您的加载器的标识符(例如 google_docs)。在新目录中,创建一个 __init__.py 文件,使用 __all__ 指定模块的公共接口,创建一个 base.py 文件,其中包含您的加载器实现,如果需要,创建一个 requirements.txt 文件列出加载器的包依赖项。当使用您的加载器时,这些包将自动安装,所以您不需要再担心这个问题!
如果您愿意,可以通过在 llama_hub 目录中运行以下脚本来创建新目录和文件。只需记得将依赖项放入 requirements.txt 文件中。
./add_loader.sh [新目录名称]
在新目录中,创建一个 README.md,模仿现有的 README。它应该包含您的加载器或工具的功能摘要、输入以及如何在 LlamaIndex 和 LangChain 的上下文中使用它。
最后,将您的加载器添加到 llama_hub/library.json 文件中(或 tools/ 或 llama-packs/ 下的等效 library.json),以便其他人可以使用。如当前文件所示,添加加载器或工具的类名,以及其 ID、作者等。Llama Hub 网站和 LlamaIndex 中的下载功能会引用此文件。
对主分支创建一个 PR。我们通常会在一天内审核 PR。为了帮助加快流程,在 PR 中或直接在 README 中提供截图可能会有所帮助!展示您的数据加载器或工具的运行情况!
添加 llama-dataset 的过程与添加工具/加载器/llama-pack 类似,也需要 fork 本仓库并提交 Pull Request。但对于 llama-dataset,只有其元数据会被检入本仓库。实际的数据集及其源文件会被检入另一个 Github 仓库,即 llama-datasets 仓库。除了 fork 和克隆本仓库外,你还需要 fork 和克隆那个仓库。
请确保在克隆 llama-datasets 仓库时,在执行 git clone 命令之前设置环境变量 GIT_LFS_SKIP_SMUDGE:
# 对于 bash GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:<你的GitHub用户名>/llama-datasets.git # 使用 ssh GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/<你的GitHub用户名>/llama-datasets.git # 使用 https # 对于 Windows,需要两个命令 set GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:<你的GitHub用户名>/llama-datasets.git # 使用 ssh set GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/<你的GitHub用户名>/llama-datasets.git # 使用 https
添加 llama-dataset 的高级步骤如下:
LabelledRagDataset(llama-hub 上提供的第一个 llama-dataset 类)LabelledRagDataset 上生成基准结果card.json 和 README.md)LabelledRagDataset 和源文件为协助提交过程,我们准备了一个提交模板笔记本,引导你完成上述步骤。我们强烈建议你使用这个模板笔记本。
(注:你可以使用上述过程提交我们支持的其他类型的 llama-datasets,如 LabelledEvaluatorDataset。)
python3.9 -m venv .venv source .venv/bin/activate pip3 install -r test_requirements.txt poetry run make test
如果你想跟踪最新版本更新或查看每个版本添加了哪些加载器,请查看我们的完整更新日志!
download_loader 中有一个名为 loader_hub_url 的参数,默认指向本仓库的主分支。你可以将其设置为你的分支或 fork 来测试新加载器。
如果你有数据加载器 PR,默认情况下请尝试向 LlamaHub 创建!在某些情况下我们会做出例外(例如,如果我们认为该数据加载器应该是 LlamaIndex 仓库的核心)。
对于所有其他与 LlamaIndex 相关的 PR,请直接向 LlamaIndex 仓库 创建。
我们刚开始为贡献者提供徽章。目前,我们主要关注早期采用者和官方合作伙伴,但我们正逐步开放徽章考虑给所有提交。如果你有兴趣被考虑,请查看以下标准,如果一切符合,可以通过社区 Discord 联系我们。
我们仍在完善标准,但以下是我们考虑的一些方面:
质量
可用性
安全性
社区参与度和反馈
注意:
欢迎加入社区 Discord 或标记官方 Twitter 账号!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现 的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模 型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号