Skip to content

Foundation Models API

OGXFoundationModel

OGXFoundationModel(
    client: OgxClient,
    model_id: str,
    params: dict[str, Any] | OGXModelParameters | None = None,
    system_message_text: str | None = None,
    user_message_text: str | None = None,
    context_template_text: str | None = None,
    language: Language | None = None,
)

Bases: BaseFoundationModel[OgxClient, dict[str, Any] | OGXModelParameters | None]

Integration point to use any model via OGX API / client

Source code in ai4rag/rag/foundation_models/ogx.py
def __init__(
    self,
    client: OgxClient,
    model_id: str,
    params: dict[str, Any] | OGXModelParameters | None = None,
    system_message_text: str | None = None,
    user_message_text: str | None = None,
    context_template_text: str | None = None,
    language: Language | None = None,
):
    super().__init__(
        client=client,
        model_id=model_id,
        params=params,
        system_message_text=system_message_text,
        user_message_text=user_message_text,
        context_template_text=context_template_text,
        language=language,
    )

Attributes

params property writable

params: OGXModelParameters

Get models params.

Methods:

chat

chat(messages: list[MessageTyped], **kwargs) -> list[MessageTyped]

Chat completion for communication with selected foundation model.

On APITimeoutError, retries once with a 20-minute timeout and no client-level retries to accommodate slow (CPU-deployed) models.

Parameters:

  • messages (list[MessageTyped]) –

    Messages to be included in the chat completion.

Returns:

  • list[MessageTyped]

    Chat response choices from the model.

Source code in ai4rag/rag/foundation_models/ogx.py
def chat(self, messages: list[MessageTyped], **kwargs) -> list[MessageTyped]:
    """Chat completion for communication with selected foundation model.

    On ``APITimeoutError``, retries once with a 20-minute timeout
    and no client-level retries to accommodate slow (CPU-deployed)
    models.

    Parameters
    ----------
    messages : list[MessageTyped]
        Messages to be included in the chat completion.

    Returns
    -------
    list[MessageTyped]
        Chat response choices from the model.
    """
    chat_params = {
        "max_completion_tokens": self.params.max_completion_tokens,
        "temperature": self.params.temperature,
    } | kwargs

    try:
        return self.client.chat.completions.create(model=self.model_id, messages=messages, **chat_params).choices
    except APITimeoutError:
        logger.warning(
            "Chat request timed out. Retrying with %.0fs timeout (no retries).",
            _FALLBACK_TIMEOUT,
        )

        no_retries_client = self.client.with_options(timeout=_FALLBACK_TIMEOUT, max_retries=0)
        return no_retries_client.chat.completions.create(
            model=self.model_id, messages=messages, **chat_params
        ).choices