@@ -1664,6 +1664,82 @@ def test_add_webpage(self, mock_post, mock_put, mock_get):
16641664 }
16651665 assert agent_update_json == expected_agent_json
16661666
1667+ @patch ('requests.Session.get' )
1668+ @patch ('requests.Session.put' )
1669+ @patch ('requests.Session.post' )
1670+ def test_add_dataframe (self , mock_post , mock_put , mock_get ):
1671+ server = mindsdb_sdk .connect ()
1672+ responses_mock (mock_get , [
1673+ # Existing agent get.
1674+ {
1675+ 'name' : 'test_agent' ,
1676+ 'model_name' : 'test_model' ,
1677+ 'skills' : [],
1678+ 'params' : {},
1679+ 'created_at' : None ,
1680+ 'updated_at' : None ,
1681+ 'provider' : 'mindsdb'
1682+ },
1683+ # get KB
1684+ {
1685+ 'id' : 1 ,
1686+ 'name' : 'my_kb' ,
1687+ 'project_id' : 1 ,
1688+ 'embedding_model' : 'openai_emb' ,
1689+ 'vector_database' : 'pvec' ,
1690+ 'vector_database_table' : 'tbl1' ,
1691+ 'updated_at' : '2024-10-04 10:55:25.350799' ,
1692+ 'created_at' : '2024-10-04 10:55:25.350790' ,
1693+ 'params' : {}
1694+ },
1695+ # Skills get in Agent update to check if it exists.
1696+ {'name' :'new_skill' , 'type' :'retrieval' , 'params' :{'source' :'test_agent_docs_mdb_ai_kb' }},
1697+ # Existing agent get in Agent update.
1698+ {
1699+ 'name' :'test_agent' ,
1700+ 'model_name' :'test_model' ,
1701+ 'skills' :[],
1702+ 'params' :{},
1703+ 'created_at' :None ,
1704+ 'updated_at' :None ,
1705+ 'provider' :'mindsdb' # Added provider field
1706+ },
1707+ ])
1708+ responses_mock (mock_post , [
1709+ # Skill creation.
1710+ {'name' :'new_skill' , 'type' :'retrieval' , 'params' :{'source' :'test_agent_docs_mdb_ai_kb' }}
1711+ ])
1712+ responses_mock (mock_put , [
1713+ # KB update.
1714+ {'name' :'test_agent_docs_mdb_ai_kb' },
1715+ # Agent update with new skill.
1716+ {
1717+ 'name' :'test_agent' ,
1718+ 'model_name' :'test_model' ,
1719+ 'skills' :[{'name' :'new_skill' , 'type' :'retrieval' , 'params' :{'source' :'test_agent_docs_mdb_ai_kb' }}],
1720+ 'params' :{},
1721+ 'created_at' :None ,
1722+ 'updated_at' :None ,
1723+ 'provider' :'mindsdb' # Added provider field
1724+ },
1725+ ])
1726+ server .agents .test_agent .add_dataframe (pd .DataFrame ([{'content' : 'doc' }]), 'Documentation for MindsDB' , 'existing_kb' )
1727+
1728+ # Check Agent was updated with a new skill.
1729+ agent_update_json = mock_put .call_args [- 1 ]['json' ]
1730+ expected_agent_json = {
1731+ 'agent' :{
1732+ 'name' :'test_agent' ,
1733+ 'model_name' :'test_model' ,
1734+ # Skill name is a generated UUID.
1735+ 'skills_to_add' :[agent_update_json ['agent' ]['skills_to_add' ][0 ]],
1736+ 'skills_to_remove' :[],
1737+ 'params' :{},
1738+ 'provider' : 'mindsdb'
1739+ }
1740+ }
1741+ assert agent_update_json == expected_agent_json
1742+
16671743 @patch ('requests.Session.get' )
16681744 @patch ('requests.Session.put' )
16691745 @patch ('requests.Session.post' )
0 commit comments