# coding: utf-8

"""
    Mixpeek API

    This is the Mixpeek API, providing access to various endpoints for data processing and retrieval.

    The version of the OpenAPI document: 1.3.0
    Contact: info@mixpeek.com
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self


class OpenAIModel(str, Enum):
    """
    OpenAI model identifiers for LLM generation.  Models listed in order of capability and cost (highest to lowest). All models support vision (images) except O3-mini.  Values:     GPT_4O: Latest GPT-4 Omni model (2024-08-06)         - Use for: Production, highest quality generation         - Context: 128K tokens         - Vision: Yes         - Cost: $2.50/1M input, $10/1M output         - Performance: 200-500ms per request         - When to use: Need best quality, willing to pay premium      GPT_41: GPT-4.1 (2025-04-14)         - Use for: Future-proofed pipelines         - Context: 128K tokens         - Vision: Yes         - Cost: TBD (expected similar to GPT-4o)         - When to use: Want latest model features      GPT_4O_MINI: Smaller, faster GPT-4 Omni (2024-07-18)         - Use for: High-volume, cost-sensitive workloads         - Context: 128K tokens         - Vision: Yes         - Cost: $0.15/1M input, $0.60/1M output         - Performance: 100-200ms per request         - When to use: Good balance of quality and cost      GPT_41_MINI: Smaller GPT-4.1 (2025-04-14)         - Use for: Future cost-optimized pipelines         - Context: 128K tokens         - Vision: Yes         - Cost: TBD (expected similar to GPT-4o-mini)         - When to use: Want latest features at lower cost      O3_MINI: Reasoning-optimized model (2025-01-31)         - Use for: Complex reasoning, math, code         - Context: 200K tokens         - Vision: No         - Cost: TBD         - When to use: Need advanced reasoning capabilities  Examples:     - Use GPT_4O for caption generation with images (best quality)     - Use GPT_4O_MINI for high-volume video scene summarization (cost-effective)     - Use O3_MINI for complex entity extraction requiring reasoning
    """

    """
    allowed enum values
    """
    GPT_MINUS_4O_MINUS_2024_MINUS_08_MINUS_06 = 'gpt-4o-2024-08-06'
    GPT_MINUS_4O_MINUS_MINI_MINUS_2024_MINUS_07_MINUS_18 = 'gpt-4o-mini-2024-07-18'
    GPT_MINUS_4_DOT_1_MINUS_2025_MINUS_04_MINUS_14 = 'gpt-4.1-2025-04-14'
    GPT_MINUS_4_DOT_1_MINUS_MINI_MINUS_2025_MINUS_04_MINUS_14 = 'gpt-4.1-mini-2025-04-14'
    O3_MINUS_MINI_MINUS_2025_MINUS_01_MINUS_31 = 'o3-mini-2025-01-31'

    @classmethod
    def from_json(cls, json_str: str) -> Self:
        """Create an instance of OpenAIModel from a JSON string"""
        return cls(json.loads(json_str))


