[docs]classSupabaseVectorTranslator(Visitor):"""Translate Langchain filters to Supabase PostgREST filters."""allowed_operators=[Operator.AND,Operator.OR]"""Subset of allowed logical operators."""allowed_comparators=[Comparator.EQ,Comparator.NE,Comparator.GT,Comparator.GTE,Comparator.LT,Comparator.LTE,Comparator.LIKE,]"""Subset of allowed logical comparators."""metadata_column:str="metadata"def_map_comparator(self,comparator:Comparator)->str:""" Maps Langchain comparator to PostgREST comparator: https://postgrest.org/en/stable/references/api/tables_views.html#operators """postgrest_comparator={Comparator.EQ:"eq",Comparator.NE:"neq",Comparator.GT:"gt",Comparator.GTE:"gte",Comparator.LT:"lt",Comparator.LTE:"lte",Comparator.LIKE:"like",}.get(comparator)ifpostgrest_comparatorisNone:raiseException(f"Comparator '{comparator}' is not currently ""supported in Supabase Vector")returnpostgrest_comparatordef_get_json_operator(self,value:Any)->str:ifisinstance(value,str):return"->>"else:return"->"