"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .generativemodels import GenerativeModels
from .namingmethod import NamingMethod
from mixpeek.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class AutomaticNamingTypedDict(TypedDict):
    enabled: NotRequired[bool]
    r"""Automatically assign cluster labels to documents"""
    generative_model: NotRequired[GenerativeModels]
    method: NotRequired[NamingMethod]
    num_nearest_points: NotRequired[int]
    r"""Features used to generate name"""


class AutomaticNaming(BaseModel):
    enabled: Optional[bool] = True
    r"""Automatically assign cluster labels to documents"""

    generative_model: Optional[GenerativeModels] = None

    method: Optional[NamingMethod] = None

    num_nearest_points: Optional[int] = 3
    r"""Features used to generate name"""
