@@ -764,7 +764,7 @@ def check_project(self, project, database):
764
764
765
765
self .check_project_models_versions (project , database )
766
766
767
- kb = self .check_project_kb (project , model , database )
767
+ kb = self .check_project_kb (project , database )
768
768
769
769
self .check_project_jobs (project , model , database , kb )
770
770
@@ -1132,12 +1132,21 @@ def check_project_jobs(self, project, model, database, kb, mock_post):
1132
1132
@patch ('requests.Session.post' )
1133
1133
@patch ('requests.Session.delete' )
1134
1134
@patch ('requests.Session.get' )
1135
- def check_project_kb (self , project , model , database , mock_get , mock_del , mock_post , mock_put ):
1135
+ def check_project_kb (self , project , database , mock_get , mock_del , mock_post , mock_put ):
1136
1136
1137
1137
response_mock (mock_post , pd .DataFrame ([{
1138
1138
'NAME' : 'my_kb' ,
1139
1139
'PROJECT' : 'mindsdb' ,
1140
- 'MODEL' : 'openai_emb' ,
1140
+ 'EMBEDDING_MODEL' : {
1141
+ 'PROVIDER' : 'openai' ,
1142
+ 'MODEL_NAME' : 'openai_emb' ,
1143
+ 'API_KEY' : 'sk-...'
1144
+ },
1145
+ 'RERANKING_MODEL' : {
1146
+ 'PROVIDER' : 'openai' ,
1147
+ 'MODEL_NAME' : 'openai_rerank' ,
1148
+ 'API_KEY' : 'sk-...'
1149
+ },
1141
1150
'STORAGE' : 'pvec.tbl1' ,
1142
1151
'PARAMS' : {"id_column" : "num" },
1143
1152
}]))
@@ -1146,7 +1155,16 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1146
1155
'id' : 1 ,
1147
1156
'name' : 'my_kb' ,
1148
1157
'project_id' : 1 ,
1149
- 'embedding_model' : 'openai_emb' ,
1158
+ 'embedding_model' : {
1159
+ 'provider' : 'openai' ,
1160
+ 'model_name' : 'openai_emb' ,
1161
+ 'api_key' : 'sk-...'
1162
+ },
1163
+ 'reranking_model' : {
1164
+ 'provider' : 'openai' ,
1165
+ 'model_name' : 'openai_rerank' ,
1166
+ 'api_key' : 'sk-...'
1167
+ },
1150
1168
'vector_database' : 'pvec' ,
1151
1169
'vector_database_table' : 'tbl1' ,
1152
1170
'updated_at' : '2024-10-04 10:55:25.350799' ,
@@ -1165,8 +1183,8 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1165
1183
1166
1184
assert kb .name == 'my_kb'
1167
1185
1168
- assert isinstance ( kb .model , Model )
1169
- assert kb .model . name == 'openai_emb '
1186
+ assert kb .embedding_model [ 'model_name' ] == 'openai_emb'
1187
+ assert kb .reranking_model [ 'model_name' ] == 'openai_rerank '
1170
1188
1171
1189
assert isinstance (kb .storage , Table )
1172
1190
assert kb .storage .name == 'tbl1'
@@ -1178,7 +1196,8 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1178
1196
str (kb )
1179
1197
assert kb .name == 'my_kb'
1180
1198
assert kb .storage .db .name == 'pvec'
1181
- assert kb .model .name == 'openai_emb'
1199
+ assert kb .embedding_model ['model_name' ] == 'openai_emb'
1200
+ assert kb .reranking_model ['model_name' ] == 'openai_rerank'
1182
1201
1183
1202
# --- insert ---
1184
1203
@@ -1221,15 +1240,33 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1221
1240
# create 1
1222
1241
project .knowledge_bases .create (
1223
1242
name = 'kb2' ,
1224
- model = model ,
1243
+ embedding_model = {
1244
+ 'provider' : 'openai' ,
1245
+ 'model_name' : 'openai_emb' ,
1246
+ 'api_key' : 'sk-...'
1247
+ },
1248
+ reranking_model = {
1249
+ 'provider' : 'openai' ,
1250
+ 'model_name' : 'openai_rerank' ,
1251
+ 'api_key' : 'sk-...'
1252
+ },
1225
1253
metadata_columns = ['date' , 'author' ],
1226
1254
params = {'k' : 'v' }
1227
1255
)
1228
1256
args , kwargs = mock_post .call_args
1229
1257
assert args [0 ] == f'{ DEFAULT_CLOUD_API_URL } /api/projects/{ project .name } /knowledge_bases'
1230
1258
assert kwargs == {'json' : {'knowledge_base' : {
1231
1259
'name' : 'kb2' ,
1232
- 'model' : model .name ,
1260
+ 'embedding_model' : {
1261
+ 'provider' : 'openai' ,
1262
+ 'model_name' : 'openai_emb' ,
1263
+ 'api_key' : 'sk-...'
1264
+ },
1265
+ 'reranking_model' : {
1266
+ 'provider' : 'openai' ,
1267
+ 'model_name' : 'openai_rerank' ,
1268
+ 'api_key' : 'sk-...'
1269
+ },
1233
1270
'params' : {
1234
1271
'k' : 'v' ,
1235
1272
'metadata_columns' : ['date' , 'author' ]
@@ -1248,7 +1285,8 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1248
1285
assert args [0 ] == f'{ DEFAULT_CLOUD_API_URL } /api/projects/{ project .name } /knowledge_bases'
1249
1286
assert kwargs == {'json' : {'knowledge_base' : {
1250
1287
'name' : 'kb2' ,
1251
- 'model' : None ,
1288
+ 'embedding_model' : None ,
1289
+ 'reranking_model' : None ,
1252
1290
'params' : {
1253
1291
'content_columns' : ['review' ],
1254
1292
'id_column' : 'num'
0 commit comments