Spaces:
Runtime error
Runtime error
ParaAIV3.1
Browse files- core/base_specialist.py +3 -3
- core/context_builder.py +1 -1
- core/specialist_wrapper.py +2 -2
- core/validator.py +1 -1
core/base_specialist.py
CHANGED
|
@@ -27,7 +27,7 @@ class BaseSpecialist(ABC):
|
|
| 27 |
1. NUNCA pedir mais de 10 campos por especialista
|
| 28 |
2. SEMPRE exibir JSON parcial no prompt (context injection)
|
| 29 |
3. SEMPRE validar output com jsonschema
|
| 30 |
-
4. SEMPRE logar input + output (
|
| 31 |
5. NUNCA usar placeholders ou dados simulados
|
| 32 |
"""
|
| 33 |
|
|
@@ -119,8 +119,8 @@ class BaseSpecialist(ABC):
|
|
| 119 |
# 1. Construir prompt com context injection
|
| 120 |
prompt = self._build_prompt(input_data, context)
|
| 121 |
|
| 122 |
-
# 2. Log do prompt (
|
| 123 |
-
logger.
|
| 124 |
|
| 125 |
# 3. Chamar LLM
|
| 126 |
response = await self._call_llm(prompt)
|
|
|
|
| 27 |
1. NUNCA pedir mais de 10 campos por especialista
|
| 28 |
2. SEMPRE exibir JSON parcial no prompt (context injection)
|
| 29 |
3. SEMPRE validar output com jsonschema
|
| 30 |
+
4. SEMPRE logar input + output (info)
|
| 31 |
5. NUNCA usar placeholders ou dados simulados
|
| 32 |
"""
|
| 33 |
|
|
|
|
| 119 |
# 1. Construir prompt com context injection
|
| 120 |
prompt = self._build_prompt(input_data, context)
|
| 121 |
|
| 122 |
+
# 2. Log do prompt (info)
|
| 123 |
+
logger.info(f" 📝 Prompt ({len(prompt)} chars): {prompt[:200]}...")
|
| 124 |
|
| 125 |
# 3. Chamar LLM
|
| 126 |
response = await self._call_llm(prompt)
|
core/context_builder.py
CHANGED
|
@@ -65,7 +65,7 @@ class ContextBuilder:
|
|
| 65 |
if field in current_result:
|
| 66 |
context[field] = current_result[field]
|
| 67 |
|
| 68 |
-
logger.
|
| 69 |
|
| 70 |
return context if context else None
|
| 71 |
|
|
|
|
| 65 |
if field in current_result:
|
| 66 |
context[field] = current_result[field]
|
| 67 |
|
| 68 |
+
logger.info(f"📦 Contexto para Especialista {specialist_id}: {list(context.keys())}")
|
| 69 |
|
| 70 |
return context if context else None
|
| 71 |
|
core/specialist_wrapper.py
CHANGED
|
@@ -48,7 +48,7 @@ class SpecialistWrapper:
|
|
| 48 |
Returns:
|
| 49 |
Resultado do processador V13.1
|
| 50 |
"""
|
| 51 |
-
logger.
|
| 52 |
|
| 53 |
# ADAPTAÇÃO: V13.1 espera apenas acordao_data como argumento posicional
|
| 54 |
try:
|
|
@@ -57,7 +57,7 @@ class SpecialistWrapper:
|
|
| 57 |
|
| 58 |
# Processar resultado
|
| 59 |
if result:
|
| 60 |
-
logger.
|
| 61 |
return result
|
| 62 |
else:
|
| 63 |
logger.warning(f"⚠️ {self.name} retornou None")
|
|
|
|
| 48 |
Returns:
|
| 49 |
Resultado do processador V13.1
|
| 50 |
"""
|
| 51 |
+
logger.info(f"🔄 Wrapper adaptando chamada para {self.name}")
|
| 52 |
|
| 53 |
# ADAPTAÇÃO: V13.1 espera apenas acordao_data como argumento posicional
|
| 54 |
try:
|
|
|
|
| 57 |
|
| 58 |
# Processar resultado
|
| 59 |
if result:
|
| 60 |
+
logger.info(f"✅ {self.name} retornou resultado")
|
| 61 |
return result
|
| 62 |
else:
|
| 63 |
logger.warning(f"⚠️ {self.name} retornou None")
|
core/validator.py
CHANGED
|
@@ -108,7 +108,7 @@ class SchemaValidator:
|
|
| 108 |
partial_schema = json.load(f)
|
| 109 |
|
| 110 |
validate(instance=data, schema=partial_schema)
|
| 111 |
-
logger.
|
| 112 |
return True, []
|
| 113 |
|
| 114 |
except FileNotFoundError:
|
|
|
|
| 108 |
partial_schema = json.load(f)
|
| 109 |
|
| 110 |
validate(instance=data, schema=partial_schema)
|
| 111 |
+
logger.info(f"✅ Validação parcial ({partial_schema_path}): SUCESSO")
|
| 112 |
return True, []
|
| 113 |
|
| 114 |
except FileNotFoundError:
|