autogen_ext.models.ollama#
- pydantic model BaseOllamaClientConfigurationConfigModel[源代码]#
-
Show JSON schema
{ "title": "BaseOllamaClientConfigurationConfigModel", "type": "object", "properties": { "model": { "title": "Model", "type": "string" }, "host": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Host" }, "response_format": { "default": null, "title": "Response Format" }, "follow_redirects": { "default": true, "title": "Follow Redirects", "type": "boolean" }, "timeout": { "default": null, "title": "Timeout" }, "headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Headers" }, "model_capabilities": { "anyOf": [ { "$ref": "#/$defs/ModelCapabilities" }, { "type": "null" } ], "default": null }, "model_info": { "anyOf": [ { "$ref": "#/$defs/ModelInfo" }, { "type": "null" } ], "default": null }, "options": { "anyOf": [ { "type": "object" }, { "$ref": "#/$defs/Options" }, { "type": "null" } ], "default": null, "title": "Options" } }, "$defs": { "ModelCapabilities": { "deprecated": true, "properties": { "vision": { "title": "Vision", "type": "boolean" }, "function_calling": { "title": "Function Calling", "type": "boolean" }, "json_output": { "title": "Json Output", "type": "boolean" } }, "required": [ "vision", "function_calling", "json_output" ], "title": "ModelCapabilities", "type": "object" }, "ModelInfo": { "description": "ModelInfo is a dictionary that contains information about a model's properties.\nIt is expected to be used in the model_info property of a model client.\n\nWe are expecting this to grow over time as we add more features.", "properties": { "vision": { "title": "Vision", "type": "boolean" }, "function_calling": { "title": "Function Calling", "type": "boolean" }, "json_output": { "title": "Json Output", "type": "boolean" }, "family": { "anyOf": [ { "enum": [ "gpt-4o", "o1", "o3", "gpt-4", "gpt-35", "r1", "gemini-1.5-flash", "gemini-1.5-pro", "gemini-2.0-flash", "claude-3-haiku", "claude-3-sonnet", "claude-3-opus", "claude-3.5-haiku", "claude-3.5-sonnet", "unknown" ], "type": "string" }, { "type": "string" } ], "title": "Family" } }, "required": [ "vision", "function_calling", "json_output", "family" ], "title": "ModelInfo", "type": "object" }, "Options": { "properties": { "numa": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Numa" }, "num_ctx": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Ctx" }, "num_batch": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Batch" }, "num_gpu": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Gpu" }, "main_gpu": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Main Gpu" }, "low_vram": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Low Vram" }, "f16_kv": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "F16 Kv" }, "logits_all": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Logits All" }, "vocab_only": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Vocab Only" }, "use_mmap": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Use Mmap" }, "use_mlock": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Use Mlock" }, "embedding_only": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Embedding Only" }, "num_thread": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Thread" }, "num_keep": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Keep" }, "seed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Seed" }, "num_predict": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Predict" }, "top_k": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Top K" }, "top_p": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Top P" }, "tfs_z": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Tfs Z" }, "typical_p": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Typical P" }, "repeat_last_n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Repeat Last N" }, "temperature": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Temperature" }, "repeat_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Repeat Penalty" }, "presence_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Presence Penalty" }, "frequency_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Frequency Penalty" }, "mirostat": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Mirostat" }, "mirostat_tau": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Mirostat Tau" }, "mirostat_eta": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Mirostat Eta" }, "penalize_newline": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Penalize Newline" }, "stop": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Stop" } }, "title": "Options", "type": "object" } }, "required": [ "model" ] }
- Fields:
follow_redirects (bool)
headers (Mapping[str, str] | None)
model_capabilities (autogen_core.models._model_client.ModelCapabilities | None)
model_info (autogen_core.models._model_client.ModelInfo | None)
options (Mapping[str, Any] | ollama._types.Options | None)
timeout (Any)
- field model_capabilities: ModelCapabilities | 无 = None#
- pydantic model CreateArgumentsConfigModel[源代码]#
基础:
BaseModel
显示JSON模式
{ "title": "CreateArgumentsConfigModel", "type": "object", "properties": { "model": { "title": "Model", "type": "string" }, "host": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Host" }, "response_format": { "default": null, "title": "Response Format" } }, "required": [ "model" ] }
- Fields:
host (str | None)
model (str)
response_format (Any)
- class OllamaChatCompletionClient(**kwargs: Unpack)[源代码]#
基类:
BaseOllamaChatCompletionClient
,Component
[BaseOllamaClientConfigurationConfigModel
]适用于Ollama托管模型的聊天完成客户端。
必须安装Ollama并拉取相应的模型。
- Parameters:
注意
截至2025年1月21日,只有下载量超过20万的模型,以及phi4和deepseek-r1具有预定义的模型信息。查看此文件获取完整列表。一个模型的条目包括该模型的所有参数变体。
要使用此客户端,您必须安装ollama扩展:
pip install "autogen-ext[ollama]"
以下代码片段展示了如何使用客户端与Ollama模型:
from autogen_ext.models.ollama import OllamaChatCompletionClient from autogen_core.models import UserMessage ollama_client = OllamaChatCompletionClient( model="llama3", ) result = await ollama_client.create([UserMessage(content="What is the capital of France?", source="user")]) # type: ignore print(result)
要从配置中加载客户端,可以使用 load_component 方法:
from autogen_core.models import ChatCompletionClient config = { "provider": "OllamaChatCompletionClient", "config": {"model": "llama3"}, } client = ChatCompletionClient.load_component(config)
要输出结构化数据,你可以使用response_format参数:
from autogen_ext.models.ollama import OllamaChatCompletionClient from autogen_core.models import UserMessage from pydantic import BaseModel class StructuredOutput(BaseModel): first_name: str last_name: str ollama_client = OllamaChatCompletionClient( model="llama3", response_format=StructuredOutput, ) result = await ollama_client.create([UserMessage(content="Who was the first man on the moon?", source="user")]) # type: ignore print(result)
注意
在ollama中工具使用比在其OpenAI对应物中更为严格。虽然OpenAI接受[str, Any]的映射,Ollama需要[str, Property]的映射,其中Property是一个包含
type
和description
字段的类型化对象。因此,在工具模式中,只有type
和description
这两个键会从属性块中转换。要查看所有可用的配置选项的完整列表,请参阅
OllamaClientConfigurationConfigModel
类。- classmethod _from_config(config: BaseOllamaClientConfigurationConfigModel) 自我 [源代码]#
从配置对象创建组件的新实例。
- Parameters:
config (T) – 配置对象。
- Returns:
Self – 组件的新实例。
- _to_config() BaseOllamaClientConfigurationConfigModel [源代码]#
导出配置,该配置将用于创建一个与此实例配置相匹配的组件新实例。
- Returns:
T – 组件的配置。
- component_config_schema#
- component_provider_override: ClassVar[str | 无] = 'autogen_ext.models.ollama.OllamaChatCompletionClient'#
覆盖组件的提供商字符串。这应用于防止内部模块名称成为模块名称的一部分。
- component_type: ClassVar[ComponentType] = 'model'#
组件的逻辑类型。