LlamaIndex 推出 Llama Packs 预打包模块库
Introducing Llama Packs
LlamaIndex 推出 Llama Packs,一个社区驱动的预打包模块库,用于快速启动 LLM 应用,已在 LlamaHub 上线 16+ 个与 Streamlit、Snowflake、Arize、Weaviate、Voyage AI 等伙伴合作的模板。
官方介绍了 Llama Packs 的下载方式和可查看、可修改源码的设计,读者可以据此判断它能否简化自己的 LLM 应用起步流程。
今天我们很高兴推出 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(
"<pack_name>", "<pack_directory>"
)Llama Packs 可以跨越不同抽象层级——有些是完整的预打包模板(完整的 Streamlit / Gradio 应用),有些则将几个较小的模块组合在一起(例如我们的 SubQuestionQueryEngine 与 Weaviate)。它们都可以在 LlamaHub 中找到 👇。你可以通过从下拉菜单中选择“Llama Packs”来按包筛选。

我们很高兴与以下公司/贡献者合作发布,包含 16+ 个模板。我们在下面重点介绍一些示例:
- Streamlit / Snowflake(Caroline F.):Streamlit Chatbot
- Arize(Mikyo K.、Xander S.):Arize Phoenix
- ActiveLoop / DeepLake(Mikayel H.、Adhilkhan S.):DeepMemory Pack、Multi-modal Retrieval
- Weaviate(Erika C.):Sub Question Query Engine、Retry Query Engine
- Voyage AI(Hong L.):Voyage AI Pack
- TruEra(Josh R.):TruLens Eval Pack(这是三合一包)
- Timescale(Matvey A.):Timescale Vector AutoRetrieval
- Wenqi G.:LLaVa Completion Pack
这篇博客文章没有足够空间介绍每个模板,我们将在接下来几天对每个包进行专题介绍。
特别感谢 LlamaIndex 团队的 Logan Markewich 和 Andrei Fajardo 让 Llama Packs 得以启动并运行。
示例演练
展示 LlamaPack 功能的最佳方式是提供一个示例。我们将通过一个简单的 Llama Pack 来演示,它为用户提供了使用 Voyage AI 嵌入的 RAG 管道设置。

首先,我们在一组文档上下载并初始化 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]) -> 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) -> Dict[str, Any]:
"""Get modules."""
return {"llm": self.llm, "index": self.index}
def run(self, query_str: str, **kwargs: Any) -> 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