[!注意] 此仓库已被归档并设为只读。 随着 LlamaIndex v0.10 的发布,我们将弃用这个
llama_hub
仓库 - 所有集成(数据加载器、工具)和包现已移至核心llama-index
Python 仓库。 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 账号!
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、 素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号