# create a range from 10 to 20range_filter=rg.Filter([("metadata.count",">=",10),("metadata.count","<=",20)])# query records with metadata count greater than 10 and less than 20query=rg.Query(filters=range_filter,query="paris")# iterate over the resultsforrecordindataset.records(query=query):print(record)
classQuery:"""This class is used to map user queries to the internal query models"""def__init__(self,*,query:Union[str,None]=None,similar:Union[Similar,None]=None,filter:Union[Filter,Conditions,None]=None,):"""Create a query object for use in Argilla search requests.add() Parameters: query (Union[str, None], optional): The query string that will be used to search. similar (Union[Similar, None], optional): The similar object that will be used to search for similar records filter (Union[Filter, None], optional): The filter object that will be used to filter the search results. """ifisinstance(filter,tuple):filter=[filter]ifisinstance(filter,list):filter=Filter(conditions=filter)self.query=queryself.filter=filterself.similar=similardefhas_search(self)->bool:returnbool(self.queryorself.has_similar()orself.filter)defhas_similar(self)->bool:returnbool(self.similar)defapi_model(self)->SearchQueryModel:model=SearchQueryModel()ifself.queryorself.similar:query=QueryModel()ifself.queryisnotNone:query.text=TextQueryModel(q=self.query)ifself.similarisnotNone:query.vector=self.similar.api_model()model.query=queryifself.filterisnotNone:model.filters=self.filter.api_model()returnmodel
def__init__(self,*,query:Union[str,None]=None,similar:Union[Similar,None]=None,filter:Union[Filter,Conditions,None]=None,):"""Create a query object for use in Argilla search requests.add() Parameters: query (Union[str, None], optional): The query string that will be used to search. similar (Union[Similar, None], optional): The similar object that will be used to search for similar records filter (Union[Filter, None], optional): The filter object that will be used to filter the search results. """ifisinstance(filter,tuple):filter=[filter]ifisinstance(filter,list):filter=Filter(conditions=filter)self.query=queryself.filter=filterself.similar=similar
classFilter:"""This class is used to map user filters to the internal filter models"""def__init__(self,conditions:Union[Conditions,None]=None):""" Create a filter object for use in Argilla search requests. Parameters: conditions (Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None], optional): \ The conditions that will be used to filter the search results. \ The conditions should be a list of tuples where each tuple contains \ the field, operator, and value. For example `("label", "in", ["positive","happy"])`.\ """ifisinstance(conditions,tuple):conditions=[conditions]self.conditions=[Condition(condition)forconditioninconditions]defapi_model(self)->AndFilterModel:returnAndFilterModel.model_validate({"and":[condition.api_model()forconditioninself.conditions]})
def__init__(self,conditions:Union[Conditions,None]=None):""" Create a filter object for use in Argilla search requests. Parameters: conditions (Union[List[Tuple[str, str, Any]], Tuple[str, str, Any], None], optional): \ The conditions that will be used to filter the search results. \ The conditions should be a list of tuples where each tuple contains \ the field, operator, and value. For example `("label", "in", ["positive","happy"])`.\ """ifisinstance(conditions,tuple):conditions=[conditions]self.conditions=[Condition(condition)forconditioninconditions]
classSimilar:"""This class is used to map user similar queries to the internal query models"""def__init__(self,name:str,value:Union[Iterable[float],"Record"],most_similar:bool=True):""" Create a similar object for use in Argilla search requests. Parameters: name: The name of the vector field value: The vector value or the record to search for similar records most_similar: Whether to search for the most similar records or the least similar records """self.name=nameself.value=valueself.most_similar=most_similarifmost_similarisnotNoneelseTruedefapi_model(self)->VectorQueryModel:fromargilla.recordsimportRecordorder="most_similar"ifself.most_similarelse"least_similar"ifisinstance(self.value,Record):returnVectorQueryModel(name=self.name,record_id=self.value._server_id,order=order)returnVectorQueryModel(name=self.name,value=self.value,order=order)
def__init__(self,name:str,value:Union[Iterable[float],"Record"],most_similar:bool=True):""" Create a similar object for use in Argilla search requests. Parameters: name: The name of the vector field value: The vector value or the record to search for similar records most_similar: Whether to search for the most similar records or the least similar records """self.name=nameself.value=valueself.most_similar=most_similarifmost_similarisnotNoneelseTrue