# 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 LLMProvider(str, Enum):
    """
    Supported LLM providers for content generation.  Each provider has different strengths, pricing, and multimodal capabilities. Choose based on your use case, performance requirements, and budget.  Values:     OPENAI: OpenAI GPT models (GPT-4o, GPT-4.1, O3-mini)         - Best for: General purpose, vision tasks, structured outputs         - Multimodal: Text, images         - Performance: Fast (100-500ms), reliable         - Cost: Moderate to high ($0.15-$10 per 1M tokens)         - Use when: Need high-quality generation with vision support      GOOGLE: Google Gemini models (Gemini 1.5 Flash, Gemini 2.5 Flash)         - Best for: Fast generation, video understanding, cost-efficiency         - Multimodal: Text, images, video, audio, PDFs         - Performance: Very fast (50-200ms)         - Cost: Low to moderate ($0.075-$0.40 per 1M tokens)         - Use when: Need video/audio/PDF support or cost-efficiency      ANTHROPIC: Anthropic Claude models (Claude 3.5 Sonnet, Claude 3.5 Haiku)         - Best for: Long context, complex reasoning, safety         - Multimodal: Text, images         - Performance: Moderate (200-800ms)         - Cost: Moderate to high ($0.25-$15 per 1M tokens)         - Use when: Need long context or complex reasoning  Examples:     - Use OPENAI for production with structured JSON outputs     - Use GOOGLE for video summarization and cost-sensitive workloads     - Use ANTHROPIC for complex reasoning with long documents
    """

    """
    allowed enum values
    """
    OPENAI = 'openai'
    GOOGLE = 'google'
    ANTHROPIC = 'anthropic'

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


