Skip to content

Index

LLM #

Bases: BaseLLM

LLM类是与语言模型交互的主要类。

属性: system_prompt(可选[str]): LLM调用的系统提示。 messages_to_prompt(Callable): 将消息列表转换为LLM提示的函数。 completion_to_prompt(Callable): 将完成转换为LLM提示的函数。 output_parser(可选[BaseOutputParser]): 输出解析器,用于以编程方式解析、验证和纠正错误。 pydantic_program_mode(PydanticProgramMode): 用于结构化预测的Pydantic程序模式。

metadata abstractmethod property #

metadata: LLMMetadata

LLM元数据。

Returns:

Type Description
LLMMetadata

LLMMetadata:包含有关LLM的各种信息的LLM元数据。

class_name classmethod #

class_name() -> str

获取类名,用作序列化中的唯一标识。

这提供了一个键,使得序列化对实际类名更改具有鲁棒性。

as_query_component #

as_query_component(
    partial: Optional[Dict[str, Any]] = None, **kwargs: Any
) -> QueryComponent

获取查询组件。

chat abstractmethod #

chat(
    messages: Sequence[ChatMessage], **kwargs: Any
) -> ChatResponse

LLM的聊天端点。

Parameters:

Name Type Description Default
messages Sequence[ChatMessage]

聊天消息的序列。

required
kwargs Any

传递给LLM的额外关键字参数。

{}

Returns:

Name Type Description
ChatResponse ChatResponse

来自LLM的聊天响应。

示例:

from llama_index.core.llms import ChatMessage

response = llm.chat([ChatMessage(role="user", content="Hello")])
print(response.content)

complete abstractmethod #

complete(
    prompt: str, formatted: bool = False, **kwargs: Any
) -> CompletionResponse

LLM的完成端点。

如果LLM是一个聊天模型,那么提示将被转换为单个user消息。

Parameters:

Name Type Description Default
prompt str

发送给LLM的提示。

required
formatted bool

提示是否已经为LLM格式化, 默认为False。

False
kwargs Any

传递给LLM的额外关键字参数。

{}

Returns:

Name Type Description
CompletionResponse CompletionResponse

来自LLM的完成响应。

示例
response = llm.complete("your prompt")
print(response.text)

stream_chat abstractmethod #

stream_chat(
    messages: Sequence[ChatMessage], **kwargs: Any
) -> ChatResponseGen

LLM的流式聊天端点。

Parameters:

Name Type Description Default
messages Sequence[ChatMessage]

聊天消息的序列。

required
kwargs Any

传递给LLM的额外关键字参数。

{}

产生: ChatResponse: 一个ChatResponse对象的生成器,每个对象包含响应的新令牌。

示例:

from llama_index.core.llms import ChatMessage

gen = llm.stream_chat([ChatMessage(role="user", content="Hello")])
for response in gen:
    print(response.delta, end="", flush=True)

stream_complete abstractmethod #

stream_complete(
    prompt: str, formatted: bool = False, **kwargs: Any
) -> CompletionResponseGen

LLM的流式完成端点。

如果LLM是一个聊天模型,那么提示将被转换为单个user消息。

Parameters:

Name Type Description Default
prompt str

发送给LLM的提示。

required
formatted bool

提示是否已经针对LLM进行了格式化,默认为False。

False
kwargs Any

传递给LLM的额外关键字参数。

{}

Returns:

Name Type Description
CompletionResponse CompletionResponseGen

一个CompletionResponse对象的生成器,每个对象包含响应的新标记。

示例
gen = llm.stream_complete("your prompt")
for response in gen:
    print(response.text, end="", flush=True)

achat abstractmethod async #

achat(
    messages: Sequence[ChatMessage], **kwargs: Any
) -> ChatResponse

LLM的异步聊天端点。

Parameters:

Name Type Description Default
messages Sequence[ChatMessage]

聊天消息的序列。

required
kwargs Any

传递给LLM的额外关键字参数。

{}

Returns:

Name Type Description
ChatResponse ChatResponse

来自LLM的聊天响应。

示例:

from llama_index.core.llms import ChatMessage

response = await llm.achat([ChatMessage(role="user", content="Hello")])
print(response.content)

acomplete abstractmethod async #

acomplete(
    prompt: str, formatted: bool = False, **kwargs: Any
) -> CompletionResponse

LLM的异步完成端点。

如果LLM是一个聊天模型,那么提示将被转换为单个user消息。

Parameters:

Name Type Description Default
prompt str

发送给LLM的提示。

required
formatted bool

提示是否已经为LLM格式化, 默认为False。

False
kwargs Any

传递给LLM的额外关键字参数。

{}

Returns:

Name Type Description
CompletionResponse CompletionResponse

来自LLM的完成响应。

示例
response = await llm.acomplete("your prompt")
print(response.text)

astream_chat abstractmethod async #

astream_chat(
    messages: Sequence[ChatMessage], **kwargs: Any
) -> ChatResponseAsyncGen

LLM的异步流式聊天端点。

产出: ChatResponse: ChatResponse对象的异步生成器,每个对象包含响应的新令牌。

示例:

from llama_index.core.llms import ChatMessage

gen = await llm.astream_chat([ChatMessage(role="user", content="Hello")])
async for response in gen:
    print(response.delta, end="", flush=True)

astream_complete abstractmethod async #

astream_complete(
    prompt: str, formatted: bool = False, **kwargs: Any
) -> CompletionResponseAsyncGen

异步流式完成LLM的端点。

如果LLM是一个聊天模型,那么提示将被转换成一个单独的“用户”消息。

Parameters:

Name Type Description Default
prompt str

发送给LLM的提示。

required
formatted bool

提示是否已经针对LLM进行了格式化,默认为False。

False
kwargs Any

传递给LLM的额外关键字参数。

{}

Returns:

Name Type Description
CompletionResponse CompletionResponseAsyncGen

一个CompletionResponse对象的异步生成器,每个对象包含响应的新标记。

示例
gen = await llm.astream_complete("your prompt")
async for response in gen:
    print(response.text, end="", flush=True)

structured_predict #

structured_predict(
    output_cls: BaseModel,
    prompt: PromptTemplate,
    **prompt_args: Any
) -> BaseModel

结构化预测。

Parameters:

Name Type Description Default
output_cls BaseModel

用于结构化预测的输出类。

required
prompt PromptTemplate

用于结构化预测的提示模板。

required
prompt_args Any

用于格式化提示的额外参数。

{}

Returns:

Name Type Description
BaseModel BaseModel

结构化预测的输出。

示例
from pydantic.v1 import BaseModel

class Test(BaseModel):
    \"\"\"我的测试类。\"\"\"
    name: str

from llama_index.core.prompts import PromptTemplate

prompt = PromptTemplate("请预测一个与{topic}相关的Test,并给它一个随机的名字。")
output = llm.structured_predict(Test, prompt, topic="cats")
print(output.name)

astructured_predict async #

astructured_predict(
    output_cls: BaseModel,
    prompt: PromptTemplate,
    **prompt_args: Any
) -> BaseModel

异步结构化预测。

Parameters:

Name Type Description Default
output_cls BaseModel

用于结构化预测的输出类。

required
prompt PromptTemplate

用于结构化预测的提示模板。

required
prompt_args Any

用于格式化提示的额外参数。

{}

Returns:

Name Type Description
BaseModel BaseModel

结构化预测的输出。

示例:

from pydantic.v1 import BaseModel

class Test(BaseModel):
    \"\"\"我的测试类。\"\"\"
    name: str

from llama_index.core.prompts import PromptTemplate

prompt = PromptTemplate("请预测一个与{topic}相关的随机名称的Test。")
output = await llm.astructured_predict(Test, prompt, topic="cats")
print(output.name)

predict #

predict(
    prompt: BasePromptTemplate, **prompt_args: Any
) -> str

为给定的提示进行预测。

Parameters:

Name Type Description Default
prompt BasePromptTemplate

用于预测的提示。

required
prompt_args Any

用于格式化提示的额外参数。

{}

Returns:

Name Type Description
str str

预测输出。

示例
from llama_index.core.prompts import PromptTemplate

prompt = PromptTemplate("请写一个与{topic}相关的随机名字。")
output = llm.predict(prompt, topic="cats")
print(output)

stream #

stream(
    prompt: BasePromptTemplate, **prompt_args: Any
) -> TokenGen

为给定提示进行流式预测。

Parameters:

Name Type Description Default
prompt BasePromptTemplate

用于预测的提示。

required
prompt_args Any

用于格式化提示的额外参数。

{}
产生

str: 每个流式标记。

示例
from llama_index.core.prompts import PromptTemplate

prompt = PromptTemplate("请写一个与{topic}相关的随机名字。")
gen = llm.stream_predict(prompt, topic="cats")
for token in gen:
    print(token, end="", flush=True)

apredict async #

apredict(
    prompt: BasePromptTemplate, **prompt_args: Any
) -> str

异步预测给定提示的结果。

Parameters:

Name Type Description Default
prompt BasePromptTemplate

用于预测的提示。

required
prompt_args Any

用于格式化提示的额外参数。

{}

Returns:

Name Type Description
str str

预测的输出结果。

示例
from llama_index.core.prompts import PromptTemplate

prompt = PromptTemplate("请写一个与{topic}相关的随机名字。")
output = await llm.apredict(prompt, topic="cats")
print(output)

astream async #

astream(
    prompt: BasePromptTemplate, **prompt_args: Any
) -> TokenAsyncGen

异步流预测给定提示的内容。

prompt(BasePromptTemplate): 用于预测的提示。 prompt_args(Any): 用于格式化提示的附加参数。

Returns:

Type Description
TokenAsyncGen

str:一个异步生成器,生成令牌的字符串。

示例:

from llama_index.core.prompts import PromptTemplate

prompt = PromptTemplate("Please write a random name related to {topic}.")
gen = await llm.astream_predict(prompt, topic="cats")
async for token in gen:
    print(token, end="", flush=True)

predict_and_call #

predict_and_call(
    tools: List[BaseTool],
    user_msg: Optional[Union[str, ChatMessage]] = None,
    chat_history: Optional[List[ChatMessage]] = None,
    verbose: bool = False,
    **kwargs: Any
) -> AgentChatResponse

预测并调用该工具。

默认情况下,使用ReAct代理进行工具调用(通过文本提示), 但调用LLMs的函数将以不同的方式实现这一点。

apredict_and_call async #

apredict_and_call(
    tools: List[BaseTool],
    user_msg: Optional[Union[str, ChatMessage]] = None,
    chat_history: Optional[List[ChatMessage]] = None,
    verbose: bool = False,
    **kwargs: Any
) -> AgentChatResponse

预测并调用工具。