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元数据。 |
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
预测并调用工具。