50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
from typing import ClassVar, Optional
|
|
|
|
from open_notebook.database.repository import repo_query
|
|
from open_notebook.domain.base import ObjectModel, RecordModel
|
|
|
|
|
|
class Model(ObjectModel):
|
|
table_name: ClassVar[str] = "model"
|
|
name: str
|
|
provider: str
|
|
type: str
|
|
|
|
@classmethod
|
|
def get_models_by_type(cls, model_type):
|
|
models = repo_query(
|
|
"SELECT * FROM model WHERE type=$model_type;", {"model_type": model_type}
|
|
)
|
|
return [Model(**model) for model in models]
|
|
|
|
|
|
# todo: future: colocar um cache aqui
|
|
class DefaultModels(RecordModel):
|
|
record_id: ClassVar[str] = "open_notebook:default_models"
|
|
|
|
default_chat_model: Optional[str] = None
|
|
default_transformation_model: Optional[str] = None
|
|
large_context_model: Optional[str] = None
|
|
default_text_to_speech_model: Optional[str] = None
|
|
default_speech_to_text_model: Optional[str] = None
|
|
# default_vision_model: Optional[str] = None
|
|
default_embedding_model: Optional[str] = None
|
|
|
|
|
|
# def load_default_models():
|
|
# default_models = DefaultModels.load()
|
|
# embedding_model = (
|
|
# get_model(default_models.default_embedding_model, model_type="embedding")
|
|
# if default_models.default_embedding_model
|
|
# else None
|
|
# )
|
|
|
|
# speech_to_text_model = (
|
|
# get_model(
|
|
# default_models.default_speech_to_text_model, model_type="speech_to_text"
|
|
# )
|
|
# if default_models.default_speech_to_text_model
|
|
# else None
|
|
# )
|
|
|
|
# return default_models, embedding_model, speech_to_text_model
|