1- import logging
21from typing import List
32
43from fastapi import APIRouter , Depends
1211 EmbeddingModelCreate ,
1312)
1413from app .api .deps import CurrentSuperuserDep , SessionDep
15- from app .exceptions import EmbeddingModelNotFound , InternalServerError
16- from app .repositories .embedding_model import embed_model_repo
14+ from app .repositories .embedding_model import embedding_model_repo
1715from app .rag .embeddings .provider import (
1816 EmbeddingProviderOption ,
1917 embedding_provider_options ,
2018)
2119from app .rag .embeddings .resolver import resolve_embed_model
20+ from app .logger import logger
2221
2322router = APIRouter ()
24- logger = logging .getLogger (__name__ )
2523
2624
27- @router .get ("/admin/embedding-models/provider /options" )
25+ @router .get ("/admin/embedding-models/providers /options" )
2826def list_embedding_model_provider_options (
2927 user : CurrentSuperuserDep ,
3028) -> List [EmbeddingProviderOption ]:
3129 return embedding_provider_options
3230
3331
34- @router .get ("/admin/embedding-models/options" , deprecated = True )
35- def get_embedding_model_options (
36- user : CurrentSuperuserDep ,
37- ) -> List [EmbeddingProviderOption ]:
38- return embedding_provider_options
39-
40-
41- @router .post ("/admin/embedding-models" )
42- def create_embedding_model (
43- session : SessionDep ,
44- user : CurrentSuperuserDep ,
45- create : EmbeddingModelCreate ,
46- ) -> EmbeddingModelDetail :
47- try :
48- return embed_model_repo .create (session , create )
49- except Exception as e :
50- logger .exception (e )
51- raise InternalServerError ()
32+ @router .get ("/admin/embedding-models" )
33+ def list_embedding_models (
34+ db_session : SessionDep , user : CurrentSuperuserDep , params : Params = Depends ()
35+ ) -> Page [EmbeddingModelItem ]:
36+ return embedding_model_repo .paginate (db_session , params )
5237
5338
5439@router .post ("/admin/embedding-models/test" )
@@ -72,60 +57,50 @@ def test_embedding_model(
7257 success = True
7358 error = ""
7459 except Exception as e :
60+ logger .info (f"Failed to test embedding model: { e } " )
7561 success = False
7662 error = str (e )
7763 return EmbeddingModelTestResult (success = success , error = error )
7864
7965
80- @router .get ("/admin/embedding-models" )
81- def list_embedding_models (
82- session : SessionDep , user : CurrentSuperuserDep , params : Params = Depends ()
83- ) -> Page [EmbeddingModelItem ]:
84- return embed_model_repo .paginate (session , params )
66+ @router .post ("/admin/embedding-models" )
67+ def create_embedding_model (
68+ db_session : SessionDep ,
69+ user : CurrentSuperuserDep ,
70+ create : EmbeddingModelCreate ,
71+ ) -> EmbeddingModelDetail :
72+ return embedding_model_repo .create (db_session , create )
8573
8674
8775@router .get ("/admin/embedding-models/{model_id}" )
8876def get_embedding_model_detail (
89- session : SessionDep , user : CurrentSuperuserDep , model_id : int
77+ db_session : SessionDep , user : CurrentSuperuserDep , model_id : int
9078) -> EmbeddingModelDetail :
91- try :
92- return embed_model_repo .must_get (session , model_id )
93- except EmbeddingModelNotFound as e :
94- raise e
95- except Exception as e :
96- logger .exception (e )
97- raise InternalServerError ()
79+ return embedding_model_repo .must_get (db_session , model_id )
9880
9981
10082@router .put ("/admin/embedding-models/{model_id}" )
10183def update_embedding_model (
102- session : SessionDep ,
84+ db_session : SessionDep ,
10385 user : CurrentSuperuserDep ,
10486 model_id : int ,
10587 update : EmbeddingModelUpdate ,
10688) -> EmbeddingModelDetail :
107- try :
108- embed_model = embed_model_repo .must_get (session , model_id )
109- embed_model_repo .update (session , embed_model , update )
110- return embed_model
111- except EmbeddingModelNotFound as e :
112- raise e
113- except Exception as e :
114- logger .exception (e )
115- raise InternalServerError ()
89+ embed_model = embedding_model_repo .must_get (db_session , model_id )
90+ return embedding_model_repo .update (db_session , embed_model , update )
91+
92+
93+ @router .delete ("/admin/embedding-models/{model_id}" )
94+ def delete_embedding_model (
95+ db_session : SessionDep , user : CurrentSuperuserDep , model_id : int
96+ ) -> None :
97+ embedding_model = embedding_model_repo .must_get (db_session , model_id )
98+ embedding_model_repo .delete (db_session , embedding_model )
11699
117100
118101@router .put ("/admin/embedding-models/{model_id}/set_default" )
119102def set_default_embedding_model (
120- session : SessionDep , user : CurrentSuperuserDep , model_id : int
103+ db_session : SessionDep , user : CurrentSuperuserDep , model_id : int
121104) -> EmbeddingModelDetail :
122- try :
123- embed_model = embed_model_repo .must_get (session , model_id )
124- embed_model_repo .set_default_model (session , model_id )
125- session .refresh (embed_model )
126- return embed_model
127- except EmbeddingModelNotFound as e :
128- raise e
129- except Exception as e :
130- logger .exception (e )
131- raise InternalServerError ()
105+ embed_model = embedding_model_repo .must_get (db_session , model_id )
106+ return embedding_model_repo .set_default (db_session , embed_model )
0 commit comments