autogen_ext.models.azure#

class AzureAIChatCompletionClient(**kwargs: Unpack)[source]#

Bases: ChatCompletionClient

Chat completion client for models hosted on Azure AI Foundry or GitHub Models. See here for more info.

Parameters:
  • endpoint (str) – The endpoint to use. Required.

  • credential (union, AzureKeyCredential, AsyncTokenCredential) – The credentials to use. Required

  • model_info (ModelInfo) – The model family and capabilities of the model. Required.

  • model (str) – The name of the model. Required if model is hosted on GitHub Models.

  • frequency_penalty – (optional,float)

  • presence_penalty – (optional,float)

  • temperature – (optional,float)

  • top_p – (optional,float)

  • max_tokens – (optional,int)

  • response_format – (optional, literal[“text”, “json_object”])

  • stop – (optional,List[str])

  • tools – (optional,List[ChatCompletionsToolDefinition])

  • tool_choice – (optional,Union[str, ChatCompletionsToolChoicePreset, ChatCompletionsNamedToolChoice]])

  • seed – (optional,int)

  • model_extras – (optional,Dict[str, Any])

To use this client, you must install the azure-ai-inference extension:

pip install "autogen-ext[azure]"

The following code snippet shows how to use the client:

import asyncio
from azure.core.credentials import AzureKeyCredential
from autogen_ext.models.azure import AzureAIChatCompletionClient
from autogen_core.models import UserMessage


async def main():
    client = AzureAIChatCompletionClient(
        endpoint="endpoint",
        credential=AzureKeyCredential("api_key"),
        model_info={
            "json_output": False,
            "function_calling": False,
            "vision": False,
            "family": "unknown",
        },
    )

    result = await client.create([UserMessage(content="What is the capital of France?", source="user")])
    print(result)


if __name__ == "__main__":
    asyncio.run(main())
actual_usage() RequestUsage[source]#
add_usage(usage: RequestUsage) None[source]#
property capabilities: ModelInfo#
async close() None[source]#
count_tokens(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = []) int[source]#
async create(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], json_output: bool | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) CreateResult[source]#
async create_stream(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = [], json_output: bool | None = None, extra_create_args: Mapping[str, Any] = {}, cancellation_token: CancellationToken | None = None) AsyncGenerator[str | CreateResult, None][source]#
property model_info: ModelInfo#
remaining_tokens(messages: Sequence[Annotated[SystemMessage | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[Tool | ToolSchema] = []) int[source]#
total_usage() RequestUsage[source]#
class AzureAIChatCompletionClientConfig[source]#

Bases: dict

credential: AzureKeyCredential | AsyncTokenCredential#
endpoint: str#
frequency_penalty: float | None#
max_tokens: int | None#
model: str | None#
model_extras: Dict[str, Any] | None#
model_info: ModelInfo#
presence_penalty: float | None#
response_format: Literal['text', 'json_object'] | None#
seed: int | None#
stop: List[str] | None#
temperature: float | None#
tool_choice: str | ChatCompletionsToolChoicePreset | ChatCompletionsNamedToolChoice | None#
tools: List[ChatCompletionsToolDefinition] | None#
top_p: float | None#