1- from requests .exceptions import HTTPError
21from typing import Iterable , List , Union
32from urllib .parse import urlparse
43from uuid import uuid4
54import datetime
6- import json
5+
6+ from requests .exceptions import HTTPError
77
88from mindsdb_sdk .knowledge_bases import KnowledgeBase
99from mindsdb_sdk .models import Model
10- from mindsdb_sdk .skills import Skill
1110from mindsdb_sdk .utils .objects_collection import CollectionBase
1211
1312
@@ -82,24 +81,20 @@ def __init__(
8281 created_at : datetime .datetime ,
8382 updated_at : datetime .datetime ,
8483 model : Union [Model , str , dict ] = None ,
85- skills : List [Skill ] = [],
8684 provider : str = None ,
8785 data : dict = {},
8886 prompt_template : str = None ,
8987 params : dict = {},
90- skills_extra_parameters : dict = {},
9188 collection : CollectionBase = None
9289 ):
9390 self .name = name
9491 self .created_at = created_at
9592 self .updated_at = updated_at
9693 self .model = model
97- self .skills = skills
9894 self .provider = provider
9995 self .data = data
10096 self .prompt_template = prompt_template
10197 self .params = params
102- self .skills_extra_parameters = skills_extra_parameters
10398 self .collection = collection
10499
105100 def completion (self , messages : List [dict ]) -> AgentCompletion :
@@ -178,7 +173,7 @@ def add_database(self, database: str, tables: List[str], description: str):
178173
179174 :param database: Name of the database to be added.
180175 :param tables: List of tables to be added.
181- :param description: Description of the database tables. Used by the agent to know when to use SQL skill .
176+ :param description: Description of the database tables. Used by the agent to know when to query the database .
182177 """
183178 self .collection .add_database (self .name , database , tables , description )
184179
@@ -196,35 +191,25 @@ def __eq__(self, other):
196191 return False
197192 if self .prompt_template != other .prompt_template :
198193 return False
199- if self .skills != other .skills :
200- return False
201194 if self .params != other .params :
202195 return False
203- if self .skills_extra_parameters != other .skills_extra_parameters :
204- return False
205196 if self .created_at != other .created_at :
206197 return False
207198 return self .updated_at == other .updated_at
208199
209200 @classmethod
210201 def from_json (cls , json : dict , collection : CollectionBase ):
211- skills = []
212- if json .get ('skills' ):
213- skills = [Skill .from_json (skill ) for skill in json ['skills' ]]
214-
215202 model = json .get ('model' ) or json .get ('model_name' )
216203
217204 return cls (
218205 json ['name' ],
219206 json ['created_at' ],
220207 json ['updated_at' ],
221208 model ,
222- skills ,
223209 json .get ('provider' ),
224210 json .get ('data' , {}),
225211 json .get ('prompt_template' ),
226212 json .get ('params' , {}),
227- json .get ('skills_extra_parameters' , {}),
228213 collection
229214 )
230215
@@ -238,7 +223,6 @@ def __init__(self, project, api):
238223
239224 self .knowledge_bases = project .knowledge_bases
240225 self .models = project .models
241- self .skills = project .skills
242226
243227 self .databases = project .server .databases
244228 self .ml_engines = project .server .ml_engines
@@ -477,7 +461,6 @@ def create(
477461 name : str ,
478462 model : Union [Model , str , dict ] = None ,
479463 provider : str = None ,
480- skills : List [Union [Skill , str ]] = None ,
481464 data : dict = None ,
482465 prompt_template : str = None ,
483466 params : dict = None ,
@@ -488,26 +471,12 @@ def create(
488471
489472 :param name: Name of the agent to be created
490473 :param model: Model to be used by the agent. This can be a Model object, a string with model name, or a dictionary with model parameters.
491- :param skills: List of skills to be used by the agent. Currently only 'sql' is supported.
492474 :param provider: Provider of the model, e.g. 'mindsdb', 'openai', etc.
493475 :param data: Data to be used by the agent. This is usually a dictionary with 'tables' and/or 'knowledge_base' keys.
494476 :param params: Parameters for the agent
495477
496478 :return: created agent object
497479 """
498- skills = skills or []
499- skill_names = []
500- for skill in skills :
501- if isinstance (skill , str ):
502- # Check if skill exists.
503- # TODO what this line does?
504- _ = self .skills .get (skill )
505- skill_names .append (skill )
506- continue
507- # Create the skill if it doesn't exist.
508- _ = self .skills .create (skill .name , skill .type , skill .params )
509- skill_names .append (skill .name )
510-
511480 if params is None :
512481 params = {}
513482 params .update (kwargs )
@@ -526,7 +495,6 @@ def create(
526495 name ,
527496 model_name ,
528497 provider ,
529- skill_names ,
530498 data ,
531499 model ,
532500 prompt_template ,
@@ -543,29 +511,6 @@ def update(self, name: str, updated_agent: Agent):
543511
544512 :return: updated agent object
545513 """
546- updated_skills = set ()
547- for skill in updated_agent .skills :
548- if isinstance (skill , str ):
549- # Skill must exist.
550- _ = self .skills .get (skill )
551- updated_skills .add (skill )
552- continue
553- try :
554- # Create the skill if it doesn't exist.
555- _ = self .skills .get (skill .name )
556- except HTTPError as e :
557- if e .response .status_code != 404 :
558- raise e
559- # Doesn't exist
560- _ = self .skills .create (skill .name , skill .type , skill .params )
561- updated_skills .add (skill .name )
562-
563- existing_agent = self .api .agent (self .project .name , name )
564-
565- existing_skills = set ([s ['name' ] for s in existing_agent .get ('skills' , [])])
566- skills_to_add = updated_skills .difference (existing_skills )
567- skills_to_remove = existing_skills .difference (updated_skills )
568-
569514 updated_model_name = None
570515 updated_provider = updated_agent .provider
571516 updated_model = None
@@ -583,8 +528,6 @@ def update(self, name: str, updated_agent: Agent):
583528 updated_agent .name ,
584529 updated_provider ,
585530 updated_model_name ,
586- list (skills_to_add ),
587- list (skills_to_remove ),
588531 updated_agent .data ,
589532 updated_model ,
590533 updated_agent .prompt_template ,
0 commit comments