check_rpc_functions.py•2.56 kB
#!/usr/bin/env python3
"""
Script para verificar funciones RPC en Supabase
"""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent / 'src'))
from src.config import config
from supabase import create_client
def check_rpc_functions():
"""Verificar funciones RPC disponibles"""
print("🔍 Verificando funciones RPC en Supabase...")
print("="*60)
client = create_client(config.SUPABASE_URL, config.SUPABASE_SERVICE_ROLE_KEY)
# Lista de funciones RPC a verificar
functions_to_check = [
'match_documents',
'match_fiscai_documents',
'match_documents_by_classroom',
'find_similar_fiscal_cases'
]
existing_functions = []
missing_functions = []
for func in functions_to_check:
try:
# Crear un embedding de prueba pequeño (768 dimensiones)
test_embedding = [0.0] * 768
# Intentar llamar la función con parámetros mínimos
result = client.rpc(func, {
'query_embedding': test_embedding,
'match_threshold': 0.5,
'match_count': 1
}).execute()
print(f"✅ {func:30} - EXISTE")
existing_functions.append(func)
except Exception as e:
error_msg = str(e)
if 'Could not find the function' in error_msg or 'PGRST202' in error_msg:
print(f"❌ {func:30} - NO EXISTE")
missing_functions.append(func)
else:
# Puede ser error de parámetros pero la función existe
print(f"⚠️ {func:30} - EXISTE (error en params)")
existing_functions.append(func)
print(f" └─ Error: {error_msg[:80]}...")
print("\n" + "="*60)
print(f"📊 RESUMEN:")
print(f" Funciones existentes: {len(existing_functions)}")
print(f" Funciones faltantes: {len(missing_functions)}")
if existing_functions:
print(f"\n✅ Funciones RPC disponibles:")
for func in existing_functions:
print(f" - {func}")
if missing_functions:
print(f"\n❌ Funciones RPC no disponibles:")
for func in missing_functions:
print(f" - {func}")
return existing_functions
if __name__ == "__main__":
try:
existing = check_rpc_functions()
except Exception as e:
print(f"\n❌ ERROR: {e}")
import traceback
traceback.print_exc()