Skip to content

afnio.models

afnio.models.ChatCompletionModel

Bases: BaseModel

An abstraction for a language model that accepts a prompt composed of an array of messages containing instructions for the model. Each message can have a different role, influencing how the model interprets the input.

Source code in afnio/models/model.py
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
class ChatCompletionModel(BaseModel):
    """
    An abstraction for a language model that accepts a prompt composed of an array
    of messages containing instructions for the model. Each message can have a
    different role, influencing how the model interprets the input.
    """

    def __init__(self, provider: str = None, **kwargs):
        """Initializes the `ChatCompletionModel` instance.

        Args:
            provider: The name of the model provider (e.g., `"openai"`, `"anthropic"`).
            **kwargs: Recognized/expected keys are `usage` (a dictionary to track token
                usage and cost information) and any provider-specific configuration
                parameters.
        """
        super().__init__(provider=provider, **kwargs)

    # TODO: Add link to `API documentation` for kwargs of each supported model
    async def achat(self, messages: List[Dict[str, str]], **kwargs) -> str:
        """
        Asynchronous method to handle chat-based interactions with the model.

        Args:
            messages: A list of messages, where each message is represented as a
                dictionary with `"role"` (e.g., `"user"`, `"system"`) and `"content"`
                (the text of the message).
            **kwargs: Additional parameters to configure the model's behavior during
                chat completion. This may include options such as:

                - model (`str`): The model to use (e.g., `"gpt-4o"`).
                - temperature (`float`): Amount of randomness injected into
                    the response.
                - max_completion_tokens (`int`): Maximum number of tokens to generate.
                - etc.

                For a complete list of supported parameters for each model, refer to the
                respective API documentation.

        Returns:
            A string containing the model's response to the chat messages.
        """
        raise NotImplementedError

    def chat(self, messages: List[Dict[str, str]], **kwargs) -> str:
        """
        Synchronous method to handle chat-based interactions with the model.

        Args:
            messages: A list of messages, where each message is represented as a
                dictionary with `"role"` (e.g., `"user"`, `"system"`) and `"content"`
                (the text of the message).
            **kwargs: Additional parameters to configure the model's behavior during
                chat completion. This may include options such as:

                - model (`str`): The model to use (e.g., `"gpt-4o"`).
                - temperature (`float`): Amount of randomness injected into
                    the response.
                - max_completion_tokens (`int`): Maximum number of tokens to generate.
                - etc.

                For a complete list of supported parameters for each model, refer to the
                respective API documentation.

        Returns:
            A string containing the model's response to the chat messages.
        """
        raise NotImplementedError

__init__(provider=None, **kwargs)

Initializes the ChatCompletionModel instance.

Parameters:

Name Type Description Default
provider str

The name of the model provider (e.g., "openai", "anthropic").

None
**kwargs

Recognized/expected keys are usage (a dictionary to track token usage and cost information) and any provider-specific configuration parameters.

{}
Source code in afnio/models/model.py
271
272
273
274
275
276
277
278
279
280
def __init__(self, provider: str = None, **kwargs):
    """Initializes the `ChatCompletionModel` instance.

    Args:
        provider: The name of the model provider (e.g., `"openai"`, `"anthropic"`).
        **kwargs: Recognized/expected keys are `usage` (a dictionary to track token
            usage and cost information) and any provider-specific configuration
            parameters.
    """
    super().__init__(provider=provider, **kwargs)

achat(messages, **kwargs) async

Asynchronous method to handle chat-based interactions with the model.

Parameters:

Name Type Description Default
messages list[dict[str, str]]

A list of messages, where each message is represented as a dictionary with "role" (e.g., "user", "system") and "content" (the text of the message).

required
**kwargs

Additional parameters to configure the model's behavior during chat completion. This may include options such as:

  • model (str): The model to use (e.g., "gpt-4o").
  • temperature (float): Amount of randomness injected into the response.
  • max_completion_tokens (int): Maximum number of tokens to generate.
  • etc.

For a complete list of supported parameters for each model, refer to the respective API documentation.

{}

Returns:

Type Description
str

A string containing the model's response to the chat messages.

Source code in afnio/models/model.py
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
async def achat(self, messages: List[Dict[str, str]], **kwargs) -> str:
    """
    Asynchronous method to handle chat-based interactions with the model.

    Args:
        messages: A list of messages, where each message is represented as a
            dictionary with `"role"` (e.g., `"user"`, `"system"`) and `"content"`
            (the text of the message).
        **kwargs: Additional parameters to configure the model's behavior during
            chat completion. This may include options such as:

            - model (`str`): The model to use (e.g., `"gpt-4o"`).
            - temperature (`float`): Amount of randomness injected into
                the response.
            - max_completion_tokens (`int`): Maximum number of tokens to generate.
            - etc.

            For a complete list of supported parameters for each model, refer to the
            respective API documentation.

    Returns:
        A string containing the model's response to the chat messages.
    """
    raise NotImplementedError

chat(messages, **kwargs)

Synchronous method to handle chat-based interactions with the model.

Parameters:

Name Type Description Default
messages list[dict[str, str]]

A list of messages, where each message is represented as a dictionary with "role" (e.g., "user", "system") and "content" (the text of the message).

required
**kwargs

Additional parameters to configure the model's behavior during chat completion. This may include options such as:

  • model (str): The model to use (e.g., "gpt-4o").
  • temperature (float): Amount of randomness injected into the response.
  • max_completion_tokens (int): Maximum number of tokens to generate.
  • etc.

For a complete list of supported parameters for each model, refer to the respective API documentation.

{}

Returns:

Type Description
str

A string containing the model's response to the chat messages.

Source code in afnio/models/model.py
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
def chat(self, messages: List[Dict[str, str]], **kwargs) -> str:
    """
    Synchronous method to handle chat-based interactions with the model.

    Args:
        messages: A list of messages, where each message is represented as a
            dictionary with `"role"` (e.g., `"user"`, `"system"`) and `"content"`
            (the text of the message).
        **kwargs: Additional parameters to configure the model's behavior during
            chat completion. This may include options such as:

            - model (`str`): The model to use (e.g., `"gpt-4o"`).
            - temperature (`float`): Amount of randomness injected into
                the response.
            - max_completion_tokens (`int`): Maximum number of tokens to generate.
            - etc.

            For a complete list of supported parameters for each model, refer to the
            respective API documentation.

    Returns:
        A string containing the model's response to the chat messages.
    """
    raise NotImplementedError

afnio.models.EmbeddingModel

Bases: BaseModel

An abstraction for a model that generates embeddings for input texts.

Source code in afnio/models/model.py
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
class EmbeddingModel(BaseModel):
    """
    An abstraction for a model that generates embeddings for input texts.
    """

    def __init__(self, provider: str = None, **kwargs):
        """Initializes the `EmbeddingModel` instance.

        Args:
            provider: The name of the model provider (e.g., `"openai"`, `"anthropic"`).
            **kwargs: Recognized/expected keys are `usage` (a dictionary to track token
                usage and cost information) and any provider-specific configuration
                parameters.
        """
        super().__init__(provider=provider, **kwargs)

    async def aembed(self, input: List[str], **kwargs) -> List[List[float]]:
        """
        Asynchronous method to generate embeddings for the given input texts.

        Args:
            input: A list of input strings for which embeddings should be generated.
            **kwargs: Additional parameters to configure the model's behavior during
                chat completion. This may include options such as:

                - model (`str`): The model to use (e.g., `"gpt-4o"`).
                - temperature (`float`): Amount of randomness injected into
                    the response.
                - max_completion_tokens (`int`): Maximum number of tokens to generate.
                - etc.

                For a complete list of supported parameters for each model, refer to the
                respective API documentation.

        Returns:
            A list of embeddings, where each embedding is represented \
            as a list of floats corresponding to the input strings.
        """
        raise NotImplementedError

    def embed(self, input: List[str], **kwargs) -> List[List[float]]:
        """
        Synchronous method to generate embeddings for the given input texts.

        Args:
            input: A list of input strings for which embeddings should be generated.
            **kwargs: Additional parameters to configure the model's behavior during
                chat completion. This may include options such as:

                - model (`str`): The model to use (e.g., `"gpt-4o"`).
                - temperature (`float`): Amount of randomness injected into
                    the response.
                - max_completion_tokens (`int`): Maximum number of tokens to generate.
                - etc.

                For a complete list of supported parameters for each model, refer to the
                respective API documentation.

        Returns:
            A list of embeddings, where each embedding is represented \
            as a list of floats corresponding to the input strings.
        """
        raise NotImplementedError

__init__(provider=None, **kwargs)

Initializes the EmbeddingModel instance.

Parameters:

Name Type Description Default
provider str

The name of the model provider (e.g., "openai", "anthropic").

None
**kwargs

Recognized/expected keys are usage (a dictionary to track token usage and cost information) and any provider-specific configuration parameters.

{}
Source code in afnio/models/model.py
340
341
342
343
344
345
346
347
348
349
def __init__(self, provider: str = None, **kwargs):
    """Initializes the `EmbeddingModel` instance.

    Args:
        provider: The name of the model provider (e.g., `"openai"`, `"anthropic"`).
        **kwargs: Recognized/expected keys are `usage` (a dictionary to track token
            usage and cost information) and any provider-specific configuration
            parameters.
    """
    super().__init__(provider=provider, **kwargs)

aembed(input, **kwargs) async

Asynchronous method to generate embeddings for the given input texts.

Parameters:

Name Type Description Default
input list[str]

A list of input strings for which embeddings should be generated.

required
**kwargs

Additional parameters to configure the model's behavior during chat completion. This may include options such as:

  • model (str): The model to use (e.g., "gpt-4o").
  • temperature (float): Amount of randomness injected into the response.
  • max_completion_tokens (int): Maximum number of tokens to generate.
  • etc.

For a complete list of supported parameters for each model, refer to the respective API documentation.

{}

Returns:

Type Description
list[list[float]]

A list of embeddings, where each embedding is represented as a list of floats corresponding to the input strings.

Source code in afnio/models/model.py
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
async def aembed(self, input: List[str], **kwargs) -> List[List[float]]:
    """
    Asynchronous method to generate embeddings for the given input texts.

    Args:
        input: A list of input strings for which embeddings should be generated.
        **kwargs: Additional parameters to configure the model's behavior during
            chat completion. This may include options such as:

            - model (`str`): The model to use (e.g., `"gpt-4o"`).
            - temperature (`float`): Amount of randomness injected into
                the response.
            - max_completion_tokens (`int`): Maximum number of tokens to generate.
            - etc.

            For a complete list of supported parameters for each model, refer to the
            respective API documentation.

    Returns:
        A list of embeddings, where each embedding is represented \
        as a list of floats corresponding to the input strings.
    """
    raise NotImplementedError

embed(input, **kwargs)

Synchronous method to generate embeddings for the given input texts.

Parameters:

Name Type Description Default
input list[str]

A list of input strings for which embeddings should be generated.

required
**kwargs

Additional parameters to configure the model's behavior during chat completion. This may include options such as:

  • model (str): The model to use (e.g., "gpt-4o").
  • temperature (float): Amount of randomness injected into the response.
  • max_completion_tokens (int): Maximum number of tokens to generate.
  • etc.

For a complete list of supported parameters for each model, refer to the respective API documentation.

{}

Returns:

Type Description
list[list[float]]

A list of embeddings, where each embedding is represented as a list of floats corresponding to the input strings.

Source code in afnio/models/model.py
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
def embed(self, input: List[str], **kwargs) -> List[List[float]]:
    """
    Synchronous method to generate embeddings for the given input texts.

    Args:
        input: A list of input strings for which embeddings should be generated.
        **kwargs: Additional parameters to configure the model's behavior during
            chat completion. This may include options such as:

            - model (`str`): The model to use (e.g., `"gpt-4o"`).
            - temperature (`float`): Amount of randomness injected into
                the response.
            - max_completion_tokens (`int`): Maximum number of tokens to generate.
            - etc.

            For a complete list of supported parameters for each model, refer to the
            respective API documentation.

    Returns:
        A list of embeddings, where each embedding is represented \
        as a list of floats corresponding to the input strings.
    """
    raise NotImplementedError

afnio.models.TextCompletionModel

Bases: BaseModel

An abstraction for a language model that accepts a prompt composed of a single text input and generates a textual completion.

Source code in afnio/models/model.py
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
class TextCompletionModel(BaseModel):
    """
    An abstraction for a language model that accepts a prompt composed of a single
    text input and generates a textual completion.
    """

    def __init__(self, provider: str = None, **kwargs):
        """Initializes the `TextCompletionModel` instance.

        Args:
            provider: The name of the model provider (e.g., `"openai"`, `"anthropic"`).
            **kwargs: Recognized/expected keys are `usage` (a dictionary to track token
                usage and cost information) and any provider-specific configuration
                parameters.
        """
        super().__init__(provider=provider, **kwargs)

    async def acomplete(self, prompt: str, **kwargs) -> str:
        """
        Asynchronous method to generate a completion for the given prompt.

        Args:
            prompt: The input text for which the model should generate a completion.
            **kwargs: Additional parameters to configure the model's behavior during
                chat completion. This may include options such as:

                - model (`str`): The model to use (e.g., `"gpt-4o"`).
                - temperature (`float`): Amount of randomness injected into
                    the response.
                - max_completion_tokens (`int`): Maximum number of tokens to generate.
                - etc.

                For a complete list of supported parameters for each model, refer to the
                respective API documentation.

        Returns:
            A string containing the generated completion.
        """
        raise NotImplementedError

    def complete(self, prompt: str, **kwargs) -> str:
        """
        Synchronous method to generate a completion for the given prompt.

        Args:
            prompt: The input text for which the model should generate a completion.
            **kwargs: Additional parameters to configure the model's behavior during
                chat completion. This may include options such as:

                - model (`str`): The model to use (e.g., `"gpt-4o"`).
                - temperature (`float`): Amount of randomness injected into
                    the response.
                - max_completion_tokens (`int`): Maximum number of tokens to generate.
                - etc.

                For a complete list of supported parameters for each model, refer to the
                respective API documentation.

        Returns:
            A string containing the generated completion.
        """
        raise NotImplementedError

__init__(provider=None, **kwargs)

Initializes the TextCompletionModel instance.

Parameters:

Name Type Description Default
provider str

The name of the model provider (e.g., "openai", "anthropic").

None
**kwargs

Recognized/expected keys are usage (a dictionary to track token usage and cost information) and any provider-specific configuration parameters.

{}
Source code in afnio/models/model.py
205
206
207
208
209
210
211
212
213
214
def __init__(self, provider: str = None, **kwargs):
    """Initializes the `TextCompletionModel` instance.

    Args:
        provider: The name of the model provider (e.g., `"openai"`, `"anthropic"`).
        **kwargs: Recognized/expected keys are `usage` (a dictionary to track token
            usage and cost information) and any provider-specific configuration
            parameters.
    """
    super().__init__(provider=provider, **kwargs)

acomplete(prompt, **kwargs) async

Asynchronous method to generate a completion for the given prompt.

Parameters:

Name Type Description Default
prompt str

The input text for which the model should generate a completion.

required
**kwargs

Additional parameters to configure the model's behavior during chat completion. This may include options such as:

  • model (str): The model to use (e.g., "gpt-4o").
  • temperature (float): Amount of randomness injected into the response.
  • max_completion_tokens (int): Maximum number of tokens to generate.
  • etc.

For a complete list of supported parameters for each model, refer to the respective API documentation.

{}

Returns:

Type Description
str

A string containing the generated completion.

Source code in afnio/models/model.py
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
async def acomplete(self, prompt: str, **kwargs) -> str:
    """
    Asynchronous method to generate a completion for the given prompt.

    Args:
        prompt: The input text for which the model should generate a completion.
        **kwargs: Additional parameters to configure the model's behavior during
            chat completion. This may include options such as:

            - model (`str`): The model to use (e.g., `"gpt-4o"`).
            - temperature (`float`): Amount of randomness injected into
                the response.
            - max_completion_tokens (`int`): Maximum number of tokens to generate.
            - etc.

            For a complete list of supported parameters for each model, refer to the
            respective API documentation.

    Returns:
        A string containing the generated completion.
    """
    raise NotImplementedError

complete(prompt, **kwargs)

Synchronous method to generate a completion for the given prompt.

Parameters:

Name Type Description Default
prompt str

The input text for which the model should generate a completion.

required
**kwargs

Additional parameters to configure the model's behavior during chat completion. This may include options such as:

  • model (str): The model to use (e.g., "gpt-4o").
  • temperature (float): Amount of randomness injected into the response.
  • max_completion_tokens (int): Maximum number of tokens to generate.
  • etc.

For a complete list of supported parameters for each model, refer to the respective API documentation.

{}

Returns:

Type Description
str

A string containing the generated completion.

Source code in afnio/models/model.py
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
def complete(self, prompt: str, **kwargs) -> str:
    """
    Synchronous method to generate a completion for the given prompt.

    Args:
        prompt: The input text for which the model should generate a completion.
        **kwargs: Additional parameters to configure the model's behavior during
            chat completion. This may include options such as:

            - model (`str`): The model to use (e.g., `"gpt-4o"`).
            - temperature (`float`): Amount of randomness injected into
                the response.
            - max_completion_tokens (`int`): Maximum number of tokens to generate.
            - etc.

            For a complete list of supported parameters for each model, refer to the
            respective API documentation.

    Returns:
        A string containing the generated completion.
    """
    raise NotImplementedError