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
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
|