Skip to content

使用LLM#

Tip

欲了解我们支持的LLM列表以及它们功能的比较,请查看我们的LLM模块指南

构建基于LLM的应用程序的第一步之一是选择要使用的LLM;如果需要,您也可以同时使用多个LLM。

LLM在管道的多个不同阶段使用:

  • 索引阶段,您可以使用LLM来确定数据的相关性(是否需要对其进行索引),或者您可以使用LLM来总结原始数据,然后对摘要进行索引。
  • 查询阶段,LLM可以以两种方式使用:
  • 检索(从索引中获取数据)期间,LLM可以获得一个选项数组(例如多个不同的索引),并决定在哪里找到您正在寻找的信息。在此阶段,代理型LLM还可以使用工具来查询不同的数据源。
  • 响应合成(将检索到的数据转换为答案)期间,LLM可以将多个子查询的答案合并为一个连贯的答案,或者它可以转换数据,例如从非结构化文本转换为JSON或其他编程输出格式。

LlamaIndex提供了一个统一的接口,可以让您将选择的任何LLM传递到管道的任何阶段。它可以像这样简单:

from llama_index.llms.openai import OpenAI

response = OpenAI().complete("Paul Graham is ")
print(response)

通常,您会实例化一个LLM并将其传递给Settings,然后将其传递给管道的其他阶段,就像这个例子中一样:

from llama_index.llms.openai import OpenAI
from llama_index.core import Settings
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

Settings.llm = OpenAI(temperature=0.2, model="gpt-4")

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(
    documents,
)

在这种情况下,您已经实例化了OpenAI,并定制了它以使用gpt-4模型,而不是默认的gpt-3.5-turbo,还修改了temperature。现在,VectorStoreIndex将使用gpt-4来回答查询时的问题。

Tip

Settings是一组配置数据,您可以将其传递给LlamaIndex的不同部分。您可以了解更多关于Settings的信息以及如何自定义它。

可用的LLM#

我们支持与OpenAI、Hugging Face、PaLM等集成。请查看我们的LLM模块指南获取完整列表,包括如何运行本地模型。

Tip

您可以在隐私页面上找到有关隐私和LLM的一般说明。

使用本地LLM#

LlamaIndex不仅支持托管的LLM API;您还可以运行本地模型,例如在本地运行Llama2

例如,如果您已安装并运行了Ollama

from llama_index.llms.ollama import Ollama
from llama_index.core import Settings

Settings.llm = Ollama(model="llama2", request_timeout=60.0)

有关更多详细信息,请参阅自定义LLM的使用说明

提示#

默认情况下,LlamaIndex附带了一组经过良好测试的内置提示,用于处理使特定LLM正确处理和格式化数据的棘手工作。这是使用LlamaIndex的最大好处之一。如果需要,您可以自定义提示