跳至内容

使用LLMs#

概念#

选择合适的大型语言模型(LLM)是您基于数据构建任何LLM应用时需要考虑的首要步骤之一。

LLMs是LlamaIndex的核心组件。它们可以作为独立模块使用,也可以集成到其他核心LlamaIndex模块(如索引、检索器、查询引擎)中。在响应合成阶段(例如检索后)总是会使用它们。根据所使用的索引类型,LLMs在索引构建、插入和查询遍历过程中也可能被使用。

LlamaIndex提供了一个统一的接口来定义LLM模块,无论是来自OpenAI、Hugging Face还是LangChain,这样您就不必自己编写定义LLM接口的样板代码。该接口包含以下内容(更多细节如下):

  • 支持文本补全聊天端点(详情见下文)
  • 支持流式非流式端点
  • 支持同步异步端点

使用模式#

以下代码片段展示了如何开始使用LLMs。

如果尚未安装,请安装您的LLM:

pip install llama-index-llms-openai

然后:

from llama_index.core import Settings
from llama_index.llms.openai import OpenAI

# changing the global default
Settings.llm = OpenAI()

# local usage
resp = OpenAI().complete("Paul Graham is ")
print(resp)

# per-query/chat engine
query_engine = index.as_query_engine(..., llm=llm)
chat_engine = index.as_chat_engine(..., llm=llm)

了解更多详情,请参阅独立使用自定义使用

关于标记化的说明#

默认情况下,LlamaIndex使用全局分词器进行所有令牌计数。默认采用tiktoken的cl100k分词器,该分词器与默认LLM模型gpt-3.5-turbo相匹配。

如果更换了LLM,可能需要更新此分词器以确保准确的令牌计数、分块和提示。

分词器的唯一要求是它是一个可调用函数,接收一个字符串并返回一个列表。

你可以像这样设置一个全局的分词器:

from llama_index.core import Settings

# tiktoken
import tiktoken

Settings.tokenizer = tiktoken.encoding_for_model("gpt-3.5-turbo").encode

# huggingface
from transformers import AutoTokenizer

Settings.tokenizer = AutoTokenizer.from_pretrained(
    "HuggingFaceH4/zephyr-7b-beta"
)

模块#

我们支持与OpenAI、HuggingFace、Anthropic等平台的集成。

查看完整的模块列表

延伸阅读#