@@ -368,29 +368,35 @@ def orgs_delete(self, org_identifier: str):
368368 #
369369 # /metadata/tag endpoints
370370 #
371- def tags_search (self , tag_identifier : Optional [str ] = None , color : Optional [str ] = None ):
371+ def tags_search (self , tag_identifier : Optional [str ] = None , name_pattern : Optional [str ] = None ,
372+ color : Optional [str ] = None ):
372373 endpoint = 'tags/search'
373374 request = {}
374375 if tag_identifier is not None :
375376 request ['tag_identifier' ] = tag_identifier
376377 if color is not None :
377378 request ['color' ] = color
379+ if name_pattern is not None :
380+ request ['name_pattern' ] = name_pattern
381+
378382 return self .post_request (endpoint = endpoint , request = request )
379383
380- def tags_create (self , name : str , color : str ):
384+ def tags_create (self , name : str , color : Optional [ str ] = None ):
381385 endpoint = 'tags/create'
382386 request = {
383- 'name' : name ,
384- 'color' : color
387+ 'name' : name
385388 }
389+ if color is not None :
390+ request ['color' ] = color
386391 return self .post_request (endpoint = endpoint , request = request )
387392
388- def tags_update (self , tag_identifier : str , name : str , color : str ):
393+ def tags_update (self , tag_identifier : str , name : str , color : Optional [ str ] = None ):
389394 endpoint = 'tags/{}/update' .format (tag_identifier )
390395 request = {
391- 'name' : name ,
392- 'color' : color
396+ 'name' : name
393397 }
398+ if color is not None :
399+ request ['color' ] = color
394400 return self .post_request (endpoint = endpoint , request = request )
395401
396402 def tags_delete (self , tag_identifier : str ):
@@ -733,4 +739,44 @@ def dbt_dbt_connection_update(self, dbt_connection_identifier: str, request: Dic
733739 endpoint = 'dbt/{}' .format (dbt_connection_identifier )
734740 return self .post_request (endpoint = endpoint , request = request )
735741
742+ #
743+ # /ai/ endpoints
744+ #
745+
746+ def ai_conversation_create (self , metadata_identifier : str ,
747+ tokens : Optional [List [str ]] = None ):
748+ endpoint = 'ai/conversation/create'
749+
750+ request = {
751+ "metadata_identifier" : metadata_identifier
752+ }
753+
754+ if tokens is not None :
755+ tokens_string = ""
756+ for token in tokens :
757+ tokens_string += "[{}]," .format (token .lower ())
758+ tokens_string = tokens_string [0 :- 1 ]
759+ request ["tokens" ] = tokens_string
760+
761+ return self .post_request (endpoint = endpoint , request = request )
762+
763+ def ai_conversation_converse (self , conversation_identifier : str , metadata_identifier : str , message : str ):
764+ endpoint = 'ai/conversation/{}/converse' .format (conversation_identifier )
765+
766+ request = {
767+ "metadata_identifier" : metadata_identifier ,
768+ "message" : message
769+ }
770+
771+ return self .post_request (endpoint = endpoint , request = request )
772+
773+ def ai_answer_create (self , metadata_identifier : str , query : str ):
774+ endpoint = 'ai/answer/create'
775+
776+ request = {
777+ "metadata_identifier" : metadata_identifier ,
778+ "query" : query
779+ }
780+
781+ return self .post_request (endpoint = endpoint , request = request )
736782
0 commit comments