@@ -1130,7 +1130,9 @@ def check_project_jobs(self, project, model, database, kb, mock_post):
11301130
11311131 @patch ('requests.Session.put' )
11321132 @patch ('requests.Session.post' )
1133- def check_project_kb (self , project , model , database , mock_post , mock_put ):
1133+ @patch ('requests.Session.delete' )
1134+ @patch ('requests.Session.get' )
1135+ def check_project_kb (self , project , model , database , mock_get , mock_del , mock_post , mock_put ):
11341136
11351137 response_mock (mock_post , pd .DataFrame ([{
11361138 'NAME' : 'my_kb' ,
@@ -1140,10 +1142,24 @@ def check_project_kb(self, project, model, database, mock_post, mock_put):
11401142 'PARAMS' : {"id_column" : "num" },
11411143 }]))
11421144
1145+ example_kb = {
1146+ 'id' : 1 ,
1147+ 'name' : 'my_kb' ,
1148+ 'project_id' : 1 ,
1149+ 'embedding_model' : 'openai_emb' ,
1150+ 'vector_database' : 'pvec' ,
1151+ 'vector_database_table' : 'tbl1' ,
1152+ 'updated_at' : '2024-10-04 10:55:25.350799' ,
1153+ 'created_at' : '2024-10-04 10:55:25.350790' ,
1154+ 'params' : {}
1155+ }
1156+
1157+ mock_get ().json .return_value = [example_kb ]
1158+
11431159 kbs = project .knowledge_bases .list ()
11441160
1145- # TODO add filter by project
1146- check_sql_call ( mock_post , "select * from information_schema. knowledge_bases" )
1161+ args , kwargs = mock_get . call_args
1162+ assert args [ 0 ] == f' { DEFAULT_CLOUD_API_URL } /api/projects/ { project . name } / knowledge_bases'
11471163
11481164 kb = kbs [0 ]
11491165
@@ -1156,6 +1172,7 @@ def check_project_kb(self, project, model, database, mock_post, mock_put):
11561172 assert kb .storage .name == 'tbl1'
11571173 assert kb .storage .db .name == 'pvec'
11581174
1175+ mock_get ().json .return_value = example_kb
11591176 kb = project .knowledge_bases .my_kb
11601177
11611178 str (kb )
@@ -1208,18 +1225,16 @@ def check_project_kb(self, project, model, database, mock_post, mock_put):
12081225 metadata_columns = ['date' , 'author' ],
12091226 params = {'k' : 'v' }
12101227 )
1211-
1212- model_name = f'{ model .project .name } .{ model .name } '
1213- check_sql_call (
1214- mock_post ,
1215- f'''
1216- CREATE KNOWLEDGE_BASE { project .name } .kb2
1217- USING model={ model_name } ,
1218- metadata_columns=['date', 'author'],
1219- k='v'
1220- ''' ,
1221- call_stack_num = - 2
1222- )
1228+ args , kwargs = mock_post .call_args
1229+ assert args [0 ] == f'{ DEFAULT_CLOUD_API_URL } /api/projects/{ project .name } /knowledge_bases'
1230+ assert kwargs == {'json' : {'knowledge_base' : {
1231+ 'name' : 'kb2' ,
1232+ 'model' : model .name ,
1233+ 'params' : {
1234+ 'k' : 'v' ,
1235+ 'metadata_columns' : ['date' , 'author' ]
1236+ }
1237+ }}}
12231238
12241239 # create 2
12251240 kb = project .knowledge_bases .create (
@@ -1229,25 +1244,26 @@ def check_project_kb(self, project, model, database, mock_post, mock_put):
12291244 id_column = 'num'
12301245 )
12311246
1232- table_name = f'{ database .name } .tbl1'
1233- check_sql_call (
1234- mock_post ,
1235- f'''
1236- CREATE KNOWLEDGE_BASE { project .name } .kb2
1237- USING storage={ table_name } ,
1238- content_columns=['review'],
1239- id_column='num'
1240- ''' ,
1241- call_stack_num = - 2
1242- )
1247+ args , kwargs = mock_post .call_args
1248+ assert args [0 ] == f'{ DEFAULT_CLOUD_API_URL } /api/projects/{ project .name } /knowledge_bases'
1249+ assert kwargs == {'json' : {'knowledge_base' : {
1250+ 'name' : 'kb2' ,
1251+ 'model' : None ,
1252+ 'params' : {
1253+ 'content_columns' : ['review' ],
1254+ 'id_column' : 'num'
1255+ },
1256+ 'storage' : {
1257+ 'database' : database .name ,
1258+ 'table' : 'tbl1'
1259+ },
1260+ }}}
12431261
12441262 # drop
12451263 project .knowledge_bases .drop ('kb2' )
12461264
1247- check_sql_call (
1248- mock_post ,
1249- f"DROP KNOWLEDGE_BASE { project .name } .kb2"
1250- )
1265+ args , kwargs = mock_del .call_args
1266+ assert args [0 ] == f'{ DEFAULT_CLOUD_API_URL } /api/projects/{ project .name } /knowledge_bases/kb2'
12511267
12521268 return kb
12531269
@@ -1501,6 +1517,18 @@ def test_add_file(self, mock_post, mock_put, mock_get):
15011517 'updated_at' : None ,
15021518 'provider' : 'mindsdb'
15031519 },
1520+ # get KB
1521+ {
1522+ 'id' : 1 ,
1523+ 'name' : 'my_kb' ,
1524+ 'project_id' : 1 ,
1525+ 'embedding_model' : 'openai_emb' ,
1526+ 'vector_database' : 'pvec' ,
1527+ 'vector_database_table' : 'tbl1' ,
1528+ 'updated_at' : '2024-10-04 10:55:25.350799' ,
1529+ 'created_at' : '2024-10-04 10:55:25.350790' ,
1530+ 'params' : {}
1531+ },
15041532 # Skills get in Agent update to check if it exists.
15051533 {'name' : 'new_skill' , 'type' : 'retrieval' , 'params' : {'source' : 'test_agent_tokaido_rules_kb' }},
15061534 # Existing agent get in Agent update.
@@ -1515,10 +1543,6 @@ def test_add_file(self, mock_post, mock_put, mock_get):
15151543 },
15161544 ])
15171545 responses_mock (mock_post , [
1518- # KB get (POST /sql).
1519- pd .DataFrame ([
1520- {'name' : 'test_agent_tokaido_rules_kb' , 'storage' : None , 'model' : None },
1521- ]),
15221546 # Skill creation.
15231547 {'name' : 'new_skill' , 'type' : 'retrieval' , 'params' : {'source' : 'test_agent_tokaido_rules_kb' }}
15241548 ])
@@ -1568,6 +1592,18 @@ def test_add_webpage(self, mock_post, mock_put, mock_get):
15681592 'updated_at' :None ,
15691593 'provider' :'mindsdb'
15701594 },
1595+ # get KB
1596+ {
1597+ 'id' : 1 ,
1598+ 'name' : 'my_kb' ,
1599+ 'project_id' : 1 ,
1600+ 'embedding_model' : 'openai_emb' ,
1601+ 'vector_database' : 'pvec' ,
1602+ 'vector_database_table' : 'tbl1' ,
1603+ 'updated_at' : '2024-10-04 10:55:25.350799' ,
1604+ 'created_at' : '2024-10-04 10:55:25.350790' ,
1605+ 'params' : {}
1606+ },
15711607 # Skills get in Agent update to check if it exists.
15721608 {'name' :'new_skill' , 'type' :'retrieval' , 'params' :{'source' :'test_agent_docs_mdb_ai_kb' }},
15731609 # Existing agent get in Agent update.
@@ -1582,10 +1618,6 @@ def test_add_webpage(self, mock_post, mock_put, mock_get):
15821618 },
15831619 ])
15841620 responses_mock (mock_post , [
1585- # KB get (POST /sql).
1586- pd .DataFrame ([
1587- {'name' :'test_agent_docs_mdb_ai_kb' , 'storage' :None , 'model' :None },
1588- ]),
15891621 # Skill creation.
15901622 {'name' :'new_skill' , 'type' :'retrieval' , 'params' :{'source' :'test_agent_docs_mdb_ai_kb' }}
15911623 ])
0 commit comments