autogen_ext.models.ollama#

pydantic model BaseOllamaClientConfigurationConfigModel[源代码]#

基础:CreateArgumentsConfigModel

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 follow_redirects: bool = True#
field headers: 映射[str, str] | = None#
field model_capabilities: ModelCapabilities | = None#
field model_info: ModelInfo | = None#
field options: 映射[str, 任何] | Options | = None#
field timeout: 任何 = 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)

field host: str | = None#
field model: str [Required]#
field response_format: 任何 = None#
class OllamaChatCompletionClient(**kwargs: Unpack)[源代码]#

基类:BaseOllamaChatCompletionClient, Component[BaseOllamaClientConfigurationConfigModel]

适用于Ollama托管模型的聊天完成客户端。

必须安装Ollama并拉取相应的模型。

Parameters:
  • model (str) – 使用哪个Ollama模型。

  • host (可选, str) – 模型主机URL。

  • response_format (可选, pydantic.BaseModel) – 响应的格式。如果提供,响应将被解析成这种格式的json。

  • options (可选, 映射[str, Any] | Options) – 传递给Ollama客户端附加选项。

  • model_info (可选, ModelInfo) – 模型的能力。如果模型未列在ollama模型信息中,则必须提供。

注意

截至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是一个包含typedescription字段的类型化对象。因此,在工具模式中,只有typedescription这两个键会从属性块中转换。

要查看所有可用的配置选项的完整列表,请参阅OllamaClientConfigurationConfigModel类。

classmethod _from_config(config: BaseOllamaClientConfigurationConfigModel) 自我[源代码]#

从配置对象创建组件的新实例。

Parameters:

config (T) – 配置对象。

Returns:

Self – 组件的新实例。

_to_config() BaseOllamaClientConfigurationConfigModel[源代码]#

导出配置,该配置将用于创建一个与此实例配置相匹配的组件新实例。

Returns:

T – 组件的配置。

component_config_schema#

BaseOllamaClientConfigurationConfigModel 的别名

component_provider_override: ClassVar[str | ] = 'autogen_ext.models.ollama.OllamaChatCompletionClient'#

覆盖组件的提供商字符串。这应用于防止内部模块名称成为模块名称的一部分。

component_type: ClassVar[ComponentType] = 'model'#

组件的逻辑类型。