使用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的最大好处之一。如果需要,您可以自定义提示。