跳到正文
原文
LlamaIndex:产品、工程与评测·· 2 小时前精选AI 评分68

LlamaIndex 推出 Llama Packs 预打包模块库

Introducing Llama Packs

AI 导读

LlamaIndex 推出 Llama Packs,一个社区驱动的预打包模块库,用于快速启动 LLM 应用,已在 LlamaHub 上线 16+ 个与 Streamlit、Snowflake、Arize、Weaviate、Voyage AI 等伙伴合作的模板。

推荐理由

官方介绍了 Llama Packs 的下载方式和可查看、可修改源码的设计,读者可以据此判断它能否简化自己的 LLM 应用起步流程。

正文 · AI 翻译

今天我们很高兴推出 Llama Packs 🦙📦—— 一个由社区驱动的预打包模块中心,你可以用它们来快速启动你的 LLM 应用。你可以将它们导入,用于各种用例,从构建 Streamlit 应用,到在 Weaviate 上构建高级检索,再到进行结构化数据提取的简历解析器。同样重要的是,你可以按照自己的喜好查看和自定义它们。

立即探索我们的免费和付费方案。

它们已在 LlamaHub 上提供:我们已与发布合作伙伴一起推出了 16+ 个模板,而且我们还会添加更多!

(在美国的朋友们,感恩节快乐 🦃)

背景

构建 LLM 应用时有太多选择,以至于针对特定用例开始构建可能会让人望而却步。即使是 RAG,用户也需要做出以下决定:

  • 我应该使用哪个 LLM?哪个嵌入模型?
  • 哪个向量数据库?
  • 分块/解析策略
  • 检索算法
  • 包裹在周边应用中

每个用例都需要不同的参数,而作为核心 LLM 框架的 LlamaIndex 提供了一整套不预设观点的模块,让用户可以组合出一个应用。

但我们需要一种方式,让用户能更轻松地针对自己的用例开始上手。而这正是 Llama Packs 的用武之地。

概览

Llama Packs 可以从两个方面来描述:

  • 一方面,它们是预打包的模块,可以用参数初始化,并开箱即用地运行,以实现给定的用例(无论是完整的 RAG 流水线、应用模板,还是更多)。你还可以导入子模块(例如 LLM、查询引擎)来直接使用。
  • 另一方面,LlamaPacks 是模板,你可以查看、修改并使用它们。

它们可以通过我们的 llama_index Python 库或 CLI 下载,只需一行代码:

CLI:

llamaindex-cli download-llamapack <pack_name> --download-dir <pack_directory>

Python

from llama_index.llama_pack import download_llama_pack


VoyageQueryEnginePack = download_llama_pack(
  "&lt;pack_name&gt;", "&lt;pack_directory&gt;"
)

Llama Packs 可以跨越不同抽象层级——有些是完整的预打包模板(完整的 Streamlit / Gradio 应用),有些则将几个较小的模块组合在一起(例如我们的 SubQuestionQueryEngine 与 Weaviate)。它们都可以在 LlamaHub 中找到 👇。你可以通过从下拉菜单中选择“Llama Packs”来按包筛选。

LlamaHub 上的 Llama Packs

我们很高兴与以下公司/贡献者合作发布,包含 16+ 个模板。我们在下面重点介绍一些示例:

这篇博客文章没有足够空间介绍每个模板,我们将在接下来几天对每个包进行专题介绍。

特别感谢 LlamaIndex 团队的 Logan Markewich 和 Andrei Fajardo 让 Llama Packs 得以启动并运行。

示例演练

展示 LlamaPack 功能的最佳方式是提供一个示例。我们将通过一个简单的 Llama Pack 来演示,它为用户提供了使用 Voyage AI 嵌入的 RAG 管道设置。

Voyage AI Pack。每个 Pack 都有详细的 README,说明如何使用/模块。

首先,我们在一组文档上下载并初始化 Pack:

from llama_index.llama_pack import download_llama_pack


VoyageQueryEnginePack = download_llama_pack("VoyageQueryEnginePack", "./voyage_pack")

voyage_pack = VoyageQueryEnginePack(documents)

每个 Llama Pack 都实现了一个 get_modules() 函数,允许你检查/使用模块。

modules = voyage_pack.get_modules()
display(modules)

# get LLM, vector index
llm = modules["llm"]
vector_index = modules["index"]

Llama Pack 可以以开箱即用的方式运行。通过调用 run,我们将执行 RAG 管道并获得响应。在这种情况下,你无需担心内部细节。


response = voyage_pack.run("What did the author do growing up?", similarity_top_k=2)
print(str(response))
The author spent his time outside of school mainly writing and programming. He wrote short stories and attempted to write programs on an IBM 1401. Later, he started programming on a TRS-80, creating simple games and a word processor. He also painted still lives while studying at the Accademia.

第二件重要的事情是,你可以完全访问 Llama Pack 的代码。这允许你自定义 Llama Pack、删除代码,或者仅将其用作构建自己应用的参考。让我们看看在 voyage_pack/base.py 中下载的 pack,并将 OpenAI LLM 替换为 Anthropic:

from llama_index.llms import Anthropic
...

class VoyageQueryEnginePack(BaseLlamaPack):
    def __init__(self, documents: List[Document]) -&gt; None:
        llm = Anthropic()
        embed_model = VoyageEmbedding(
            model_name="voyage-01", voyage_api_key=os.environ["VOYAGE_API_KEY"]
        )
        service_context = ServiceContext.from_defaults(llm=llm, embed_model=embed_model)
        self.llm = llm
        self.index = VectorStoreIndex.from_documents(
            documents, service_context=service_context
        )

    def get_modules(self) -&gt; Dict[str, Any]:
        """Get modules."""
        return {"llm": self.llm, "index": self.index}

    def run(self, query_str: str, **kwargs: Any) -&gt; Any:
        """Run the pipeline."""
        query_engine = self.index.as_query_engine(**kwargs)
        return query_engine.query(query_str)

你可以直接重新导入模块并再次运行:

from voyage_pack.base import VoyageQueryEnginePack

voyage_pack = VoyageQueryEnginePack(documents)
response = voyage_pack.run("What did the author do during his time in RISD?")
print(str(response))

结论

试试看,并告诉我们你的想法!

贡献

还没在这里?我们非常乐意展示你!如果你有任何使用 LlamaIndex 的模板,添加它几乎就像将现有代码复制/粘贴到 BaseLlamaPack 子类中一样简单。查看此文件夹以获取完整的示例集:https://github.com/run-llama/llama-hub/tree/main/llama_hub/llama_packs

资源

所有 Llama Packs 都可以在 LlamaHub 上找到:https://llamahub.ai/

完整的 notebook 演练在这里:https://github.com/run-llama/llama_index/blob/main/docs/examples/llama_hub/llama_packs_example.ipynb

来源:LlamaIndex:产品、工程与评测 · llamaindex.ai