Jack Gerrits 7b10f0ad1b
Improve docs for model clients, add missing docs (#4930)
* Improve docs for model clients

* formatting

* Fix usage

---------

Co-authored-by: peterychang <49209570+peterychang@users.noreply.github.com>
2025-01-08 09:12:48 -05:00

44 lines
1.9 KiB
Python

import logging
import os
from typing import Any, Iterable, Type
import yaml
from _types import AppConfig
from autogen_core import MessageSerializer, try_get_known_serializers_for_type
from autogen_ext.models.openai.config import AzureOpenAIClientConfiguration
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
def load_config(file_path: str = os.path.join(os.path.dirname(__file__), "config.yaml")) -> AppConfig:
model_client = {}
with open(file_path, "r") as file:
config_data = yaml.safe_load(file)
model_client = config_data["client_config"]
del config_data["client_config"]
app_config = AppConfig(**config_data)
# This was required as it couldn't automatically instantiate AzureOpenAIClientConfiguration
aad_params = {}
if len(model_client.get("api_key", "")) == 0:
aad_params["azure_ad_token_provider"] = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
app_config.client_config = AzureOpenAIClientConfiguration(**model_client, **aad_params) # type: ignore[typeddict-item]
return app_config
def get_serializers(types: Iterable[Type[Any]]) -> list[MessageSerializer[Any]]:
serializers = []
for type in types:
serializers.extend(try_get_known_serializers_for_type(type)) # type: ignore
return serializers # type: ignore [reportUnknownVariableType]
# TODO: This is a helper function to get rid of a lot of logs until we find exact loggers to properly set log levels ...
def set_all_log_levels(log_leve: int):
# Iterate through all existing loggers and set their levels
for _, logger in logging.root.manager.loggerDict.items():
if isinstance(logger, logging.Logger): # Ensure it's actually a Logger object
logger.setLevel(log_leve) # Adjust to DEBUG or another level as needed