autogen_ext.models.llama_cpp#
- class LlamaCppChatCompletionClient(model_info: ModelInfo | None = None, **kwargs: Unpack)[source]#
-
LlamaCpp 模型的聊天完成客户端。 要使用此客户端,您必须安装 llama-cpp 额外依赖
pip install "autogen-ext[llama-cpp]"
此客户端允许您与 LlamaCpp 模型交互,可以通过指定本地模型路径或从 Hugging Face Hub 下载模型。
- 参数:
model_info (可选, ModelInfo) – 关于模型的信息。 默认为
DEFAULT_MODEL_INFO
.model_path (可选, str) – LlamaCpp 模型文件的路径。 如果未提供 repo_id 和 filename,则为必需。
repo_id (可选, str) – Hugging Face Hub 存储库 ID。 如果未提供 model_path,则为必需。
filename (可选, str) – Hugging Face Hub 存储库中模型的文件名。 如果未提供 model_path,则为必需。
n_gpu_layers (可选, int) – 要放在 GPU 上的层数。
n_ctx (可选, int) – 上下文大小。
n_batch (可选, int) – 批量大小。
verbose (可选, bool) – 是否打印详细输出。
**kwargs – 传递给 Llama 类的其他参数。
示例
以下代码段显示了如何将客户端与本地模型文件一起使用
import asyncio from autogen_core.models import UserMessage from autogen_ext.models.llama_cpp import LlamaCppChatCompletionClient async def main(): llama_client = LlamaCppChatCompletionClient(model_path="/path/to/your/model.gguf") result = await llama_client.create([UserMessage(content="What is the capital of France?", source="user")]) print(result) asyncio.run(main())
以下代码段显示了如何将客户端与来自 Hugging Face Hub 的模型一起使用
import asyncio from autogen_core.models import UserMessage from autogen_ext.models.llama_cpp import LlamaCppChatCompletionClient async def main(): llama_client = LlamaCppChatCompletionClient( repo_id="unsloth/phi-4-GGUF", filename="phi-4-Q2_K_L.gguf", n_gpu_layers=-1, seed=1337, n_ctx=5000 ) result = await llama_client.create([UserMessage(content="What is the capital of France?", source="user")]) print(result) asyncio.run(main())
- DEFAULT_MODEL_INFO: ModelInfo = {'family': 'unknown', 'function_calling': True, 'json_output': True, 'structured_output': True, 'vision': False}#
- async create(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], json_output: bool | type[BaseModel] | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) CreateResult [source]#
从模型创建一个单一的响应。
- 参数:
messages (Sequence[LLMMessage]) – 要发送给模型的消息。
tools (Sequence[Tool | ToolSchema], optional) – 要与模型一起使用的工具。 默认为 []。
json_output (Optional[bool | type[BaseModel]], optional) – 是否使用 JSON 模式、结构化输出,或两者都不使用。默认为 None。如果设置为 Pydantic BaseModel 类型,它将被用作结构化输出的输出类型。如果设置为布尔值,它将用于确定是否使用 JSON 模式。如果设置为 True,请确保指示模型在指令或提示中生成 JSON 输出。
extra_create_args (Mapping[str, Any], optional) – 传递给底层客户端的额外参数。默认为 {}。
cancellation_token (Optional[CancellationToken], optional) – 用于取消的令牌。默认为 None。
- 返回值:
CreateResult – 模型调用的结果。
- async create_stream(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], json_output: bool | type[BaseModel] | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) AsyncGenerator[str | CreateResult, None] [source]#
创建一个来自模型的字符串块流,以 CreateResult 结尾。
- 参数:
messages (Sequence[LLMMessage]) – 要发送给模型的消息。
tools (Sequence[Tool | ToolSchema], optional) – 要与模型一起使用的工具。 默认为 []。
json_output (Optional[bool | type[BaseModel]], optional) –
是否使用 JSON 模式、结构化输出,或者都不使用。 默认为 None。 如果设置为 Pydantic BaseModel 类型,它将用作结构化输出的输出类型。 如果设置为布尔值,它将用于确定是否使用 JSON 模式。 如果设置为 True,请确保指示模型在指令或提示中生成 JSON 输出。
extra_create_args (Mapping[str, Any], optional) – 传递给底层客户端的额外参数。默认为 {}。
cancellation_token (Optional[CancellationToken], optional) – 用于取消的令牌。默认为 None。
- 返回值:
AsyncGenerator[Union[str, CreateResult], None] – 一个生成器,产生字符串块,并以
CreateResult
结尾。
- actual_usage() RequestUsage [source]#
- count_tokens(messages: Sequence[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage], **kwargs: Any) int [source]#
- remaining_tokens(messages: Sequence[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage], **kwargs: Any) int [source]#
- total_usage() RequestUsage [source]#