# generated by datamodel-codegen:
#   filename:  text_task_split_by_token_input.json

from __future__ import annotations

from dataclasses import dataclass
from enum import Enum
from typing import Optional


class Model(Enum):
    gpt_4 = 'gpt-4'
    gpt_3_5_turbo = 'gpt-3.5-turbo'
    text_davinci_003 = 'text-davinci-003'
    text_davinci_002 = 'text-davinci-002'
    text_davinci_001 = 'text-davinci-001'
    text_curie_001 = 'text-curie-001'
    text_babbage_001 = 'text-babbage-001'
    text_ada_001 = 'text-ada-001'
    davinci = 'davinci'
    curie = 'curie'
    babbage = 'babbage'
    ada = 'ada'
    code_davinci_002 = 'code-davinci-002'
    code_davinci_001 = 'code-davinci-001'
    code_cushman_002 = 'code-cushman-002'
    code_cushman_001 = 'code-cushman-001'
    davinci_codex = 'davinci-codex'
    cushman_codex = 'cushman-codex'
    text_davinci_edit_001 = 'text-davinci-edit-001'
    code_davinci_edit_001 = 'code-davinci-edit-001'
    text_embedding_ada_002 = 'text-embedding-ada-002'
    text_similarity_davinci_001 = 'text-similarity-davinci-001'
    text_similarity_curie_001 = 'text-similarity-curie-001'
    text_similarity_babbage_001 = 'text-similarity-babbage-001'
    text_similarity_ada_001 = 'text-similarity-ada-001'
    text_search_davinci_doc_001 = 'text-search-davinci-doc-001'
    text_search_curie_doc_001 = 'text-search-curie-doc-001'
    text_search_babbage_doc_001 = 'text-search-babbage-doc-001'
    text_search_ada_doc_001 = 'text-search-ada-doc-001'
    code_search_babbage_code_001 = 'code-search-babbage-code-001'
    code_search_ada_code_001 = 'code-search-ada-code-001'
    gpt2 = 'gpt2'


@dataclass
class Input:
    model: Model
    text: str
    chunk_token_size: Optional[int] = 500
