@@ -775,7 +775,7 @@ def check_project(self, project, database):
775
775
776
776
self .check_project_models_versions (project , database )
777
777
778
- kb = self .check_project_kb (project , model , database )
778
+ kb = self .check_project_kb (project , database )
779
779
780
780
self .check_project_jobs (project , model , database , kb )
781
781
@@ -1143,12 +1143,21 @@ def check_project_jobs(self, project, model, database, kb, mock_post):
1143
1143
@patch ('requests.Session.post' )
1144
1144
@patch ('requests.Session.delete' )
1145
1145
@patch ('requests.Session.get' )
1146
- def check_project_kb (self , project , model , database , mock_get , mock_del , mock_post , mock_put ):
1146
+ def check_project_kb (self , project , database , mock_get , mock_del , mock_post , mock_put ):
1147
1147
1148
1148
response_mock (mock_post , pd .DataFrame ([{
1149
1149
'NAME' : 'my_kb' ,
1150
1150
'PROJECT' : 'mindsdb' ,
1151
- 'MODEL' : 'openai_emb' ,
1151
+ 'EMBEDDING_MODEL' : {
1152
+ 'PROVIDER' : 'openai' ,
1153
+ 'MODEL_NAME' : 'openai_emb' ,
1154
+ 'API_KEY' : 'sk-...'
1155
+ },
1156
+ 'RERANKING_MODEL' : {
1157
+ 'PROVIDER' : 'openai' ,
1158
+ 'MODEL_NAME' : 'openai_rerank' ,
1159
+ 'API_KEY' : 'sk-...'
1160
+ },
1152
1161
'STORAGE' : 'pvec.tbl1' ,
1153
1162
'PARAMS' : {"id_column" : "num" },
1154
1163
}]))
@@ -1157,7 +1166,16 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1157
1166
'id' : 1 ,
1158
1167
'name' : 'my_kb' ,
1159
1168
'project_id' : 1 ,
1160
- 'embedding_model' : 'openai_emb' ,
1169
+ 'embedding_model' : {
1170
+ 'provider' : 'openai' ,
1171
+ 'model_name' : 'openai_emb' ,
1172
+ 'api_key' : 'sk-...'
1173
+ },
1174
+ 'reranking_model' : {
1175
+ 'provider' : 'openai' ,
1176
+ 'model_name' : 'openai_rerank' ,
1177
+ 'api_key' : 'sk-...'
1178
+ },
1161
1179
'vector_database' : 'pvec' ,
1162
1180
'vector_database_table' : 'tbl1' ,
1163
1181
'updated_at' : '2024-10-04 10:55:25.350799' ,
@@ -1176,8 +1194,8 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1176
1194
1177
1195
assert kb .name == 'my_kb'
1178
1196
1179
- assert isinstance ( kb .model , Model )
1180
- assert kb .model . name == 'openai_emb '
1197
+ assert kb .embedding_model [ 'model_name' ] == 'openai_emb'
1198
+ assert kb .reranking_model [ 'model_name' ] == 'openai_rerank '
1181
1199
1182
1200
assert isinstance (kb .storage , Table )
1183
1201
assert kb .storage .name == 'tbl1'
@@ -1189,7 +1207,8 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1189
1207
str (kb )
1190
1208
assert kb .name == 'my_kb'
1191
1209
assert kb .storage .db .name == 'pvec'
1192
- assert kb .model .name == 'openai_emb'
1210
+ assert kb .embedding_model ['model_name' ] == 'openai_emb'
1211
+ assert kb .reranking_model ['model_name' ] == 'openai_rerank'
1193
1212
1194
1213
# --- insert ---
1195
1214
@@ -1232,18 +1251,36 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1232
1251
# create 1
1233
1252
project .knowledge_bases .create (
1234
1253
name = 'kb2' ,
1235
- model = model ,
1254
+ embedding_model = {
1255
+ 'provider' : 'openai' ,
1256
+ 'model_name' : 'openai_emb' ,
1257
+ 'api_key' : 'sk-...'
1258
+ },
1259
+ reranking_model = {
1260
+ 'provider' : 'openai' ,
1261
+ 'model_name' : 'openai_rerank' ,
1262
+ 'api_key' : 'sk-...'
1263
+ },
1236
1264
metadata_columns = ['date' , 'author' ],
1237
1265
params = {'k' : 'v' }
1238
1266
)
1239
1267
args , kwargs = mock_post .call_args
1240
1268
assert args [0 ] == f'{ DEFAULT_CLOUD_API_URL } /api/projects/{ project .name } /knowledge_bases'
1241
1269
assert kwargs == {'json' : {'knowledge_base' : {
1242
1270
'name' : 'kb2' ,
1243
- 'model' : model .name ,
1271
+ 'embedding_model' : {
1272
+ 'provider' : 'openai' ,
1273
+ 'model_name' : 'openai_emb' ,
1274
+ 'api_key' : 'sk-...'
1275
+ },
1276
+ 'reranking_model' : {
1277
+ 'provider' : 'openai' ,
1278
+ 'model_name' : 'openai_rerank' ,
1279
+ 'api_key' : 'sk-...'
1280
+ },
1281
+ 'metadata_columns' : ['date' , 'author' ],
1244
1282
'params' : {
1245
1283
'k' : 'v' ,
1246
- 'metadata_columns' : ['date' , 'author' ]
1247
1284
}
1248
1285
}}}
1249
1286
@@ -1259,11 +1296,8 @@ def check_project_kb(self, project, model, database, mock_get, mock_del, mock_po
1259
1296
assert args [0 ] == f'{ DEFAULT_CLOUD_API_URL } /api/projects/{ project .name } /knowledge_bases'
1260
1297
assert kwargs == {'json' : {'knowledge_base' : {
1261
1298
'name' : 'kb2' ,
1262
- 'model' : None ,
1263
- 'params' : {
1264
- 'content_columns' : ['review' ],
1265
- 'id_column' : 'num'
1266
- },
1299
+ 'content_columns' : ['review' ],
1300
+ 'id_column' : 'num' ,
1267
1301
'storage' : {
1268
1302
'database' : database .name ,
1269
1303
'table' : 'tbl1'
0 commit comments