From fd42bceb7ad097e814d086844956160d653f10f4 Mon Sep 17 00:00:00 2001 From: hoshikawa2 Date: Sat, 2 May 2026 14:06:25 -0300 Subject: [PATCH] Funcional --- final_nemo_package_ready.zip | Bin 130868 -> 178791 bytes final_pkg/company_nemo_guardrails/actions.py | 17 +- .../company_nemo_guardrails/config/config.yml | 8 +- .../config/rails/input.co | 2 +- .../config/rails/output.co | 2 +- .../deterministic_rails.py | 9 +- final_pkg/company_nemo_guardrails/factory.py | 2 +- final_pkg/examples/app_nemo.py | 43 +++- final_pkg/examples/test.py | 201 ++++++++++++++++++ 9 files changed, 258 insertions(+), 26 deletions(-) create mode 100644 final_pkg/examples/test.py diff --git a/final_nemo_package_ready.zip b/final_nemo_package_ready.zip index d0e945752c094698356df541ac3d6ea6f28ae305..65f81a5c074a4b5e7278d37116dcbd6781962198 100644 GIT binary patch delta 65652 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 I?fBvTAK0Pqc>n+a diff --git a/final_pkg/company_nemo_guardrails/actions.py b/final_pkg/company_nemo_guardrails/actions.py index e7f3eed..11cabd3 100644 --- a/final_pkg/company_nemo_guardrails/actions.py +++ b/final_pkg/company_nemo_guardrails/actions.py @@ -79,15 +79,10 @@ async def detectar_out_of_scope_action(context: Optional[dict] = None, **kwargs) # ------------------------- @action(is_system_action=True) -async def validar_alcada_action(context: Optional[dict] = None, **kwargs): +async def validar_alcada_action(ajuste_valor, limite, context: Optional[dict] = None, **kwargs): print("🔥 ADJ") - payload = get_payload(context) - ctx = payload.get("context", {}) - - valor = ctx.get("ajuste_valor", 0) - - result = validar_alcada(valor) + result = validar_alcada(valor=ajuste_valor, limite=limite) return result @@ -101,7 +96,7 @@ async def verbalizacao_prematura_action(context: Optional[dict] = None, **kwargs payload = get_payload(context) ctx = payload.get("context", {}) - resposta = ctx.get("resposta_llm", "") + resposta = ctx.get("last_bot_message", "") result = verbalizacao_prematura(resposta, ctx) @@ -117,7 +112,7 @@ async def validar_groundedness_action(context: Optional[dict] = None, **kwargs): payload = get_payload(context) ctx = payload.get("context", {}) - resposta = ctx.get("resposta_llm", "") + resposta = ctx.get("last_bot_message", "") result = validar_groundedness(resposta, ctx) @@ -136,14 +131,14 @@ async def supervisor_vas_avulso_action(context: Optional[dict] = None, **kwargs) return result @action(is_system_action=True) -async def enforce_compliance_anatel_action(context=None, **kwargs): +async def enforce_compliance_anatel_action(requer_protocolo, context=None, **kwargs): print("🔥 CMP") text = context.get("text") or context.get("user_message", "") payload = get_payload(context) ctx = payload.get("context", {}) - result = enforce_compliance_anatel(text, ctx) + result = enforce_compliance_anatel(requer_protocolo, text, ctx) return result diff --git a/final_pkg/company_nemo_guardrails/config/config.yml b/final_pkg/company_nemo_guardrails/config/config.yml index 7a21a9f..8ba1075 100644 --- a/final_pkg/company_nemo_guardrails/config/config.yml +++ b/final_pkg/company_nemo_guardrails/config/config.yml @@ -1,21 +1,21 @@ models: - type: main engine: openai - model: gpt-5 + model: openai.gpt-4.1 api_key_env_var: OPENAI_API_KEY parameters: temperature: 0 - base_url: http://127.0.0.1:8051/v1 + base_url: https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/v1 max_tokens: 50 # 🔥 evita respostas longas do LLM # 🔥 usado apenas se você chamar explicitamente no flow - type: self_check_input engine: openai - model: openai.gpt-oss-120b + model: openai.gpt-4.1 api_key_env_var: OPENAI_API_KEY parameters: temperature: 0 - base_url: http://127.0.0.1:8051/v1 + base_url: https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/v1 rails: diff --git a/final_pkg/company_nemo_guardrails/config/rails/input.co b/final_pkg/company_nemo_guardrails/config/rails/input.co index 3803157..5fc76d5 100644 --- a/final_pkg/company_nemo_guardrails/config/rails/input.co +++ b/final_pkg/company_nemo_guardrails/config/rails/input.co @@ -9,7 +9,7 @@ define flow check_input_terms $ok_oos = execute detectar_out_of_scope_action # 💰 Regras de negócio - $ok_adj = execute validar_alcada_action + $ok_adj = execute validar_alcada_action(ajuste_valor=$ajuste_valor,limite=$limite) # 🧠 Contexto $ok_hist = execute validar_consistencia_historica_action diff --git a/final_pkg/company_nemo_guardrails/config/rails/output.co b/final_pkg/company_nemo_guardrails/config/rails/output.co index cceb0a2..6e01670 100644 --- a/final_pkg/company_nemo_guardrails/config/rails/output.co +++ b/final_pkg/company_nemo_guardrails/config/rails/output.co @@ -6,7 +6,7 @@ define flow check_output_terms $ok_sup = execute supervisor_vas_avulso_action # 📡 Compliance - $ok_cmp = execute enforce_compliance_anatel_action + $ok_cmp = execute enforce_compliance_anatel_action(requer_protocolo=$requer_protocolo) # 📊 Métricas $ok_tcr = execute calcular_tcr_action diff --git a/final_pkg/company_nemo_guardrails/deterministic_rails.py b/final_pkg/company_nemo_guardrails/deterministic_rails.py index cd00e1b..acb02a5 100644 --- a/final_pkg/company_nemo_guardrails/deterministic_rails.py +++ b/final_pkg/company_nemo_guardrails/deterministic_rails.py @@ -11,9 +11,10 @@ def mask_pii(text:str)->RailResult: text=re.sub(r'(?i)(senha\s*[:=]?\s*)\S+',r'\1[SENHA_MASCARADA]',text) return RailResult(True,'PII mascarada' if text!=original else 'Nenhuma PII detectada',text,'MSK','regex') -def enforce_compliance_anatel(text:str, context:dict)->RailResult: +def enforce_compliance_anatel(requer_protocolo, text:str, context:dict)->RailResult: with span('rail.CMP', mechanism='regex'): - requer=context.get('tipo_fluxo')=='ajuste' or context.get('requer_protocolo') is True + # requer=context.get('tipo_fluxo')=='ajuste' or context.get('requer_protocolo') is True + requer=requer_protocolo if not requer: return RailResult(True,'Compliance Anatel não aplicável',text,'CMP','regex') has_protocol=bool(re.search(r'(?i)\bprotocolo\b[:\s-]*\d{6,}',text)) if not has_protocol: return RailResult(False,'Resposta de ajuste sem número de protocolo',text,'CMP','regex') @@ -21,8 +22,8 @@ def enforce_compliance_anatel(text:str, context:dict)->RailResult: def validar_alcada(valor:float, limite:float=50.0)->RailResult: with span('rail.ADJ', mechanism='python'): - if valor>limite: return RailResult(False,f'Valor R$ {valor:.2f} excede alçada de R$ {limite:.2f}; escalar para ATH',code='ADJ',mechanism='python') - return RailResult(True,f'Valor R$ {valor:.2f} dentro da alçada',code='ADJ',mechanism='python') + if valor>limite: return RailResult(False,f'Valor R$ {valor} excede alçada de R$ {limite}; escalar para ATH',code='ADJ',mechanism='python') + return RailResult(True,f'Valor R$ {valor} dentro da alçada',code='ADJ',mechanism='python') def calcular_tcr(status:str)->RailResult: status=status.lower(); categoria='Indefinido' diff --git a/final_pkg/company_nemo_guardrails/factory.py b/final_pkg/company_nemo_guardrails/factory.py index e0be208..b186f9b 100644 --- a/final_pkg/company_nemo_guardrails/factory.py +++ b/final_pkg/company_nemo_guardrails/factory.py @@ -13,6 +13,6 @@ def create_rails(): rails = LLMRails(config) # 👇 opcional mas recomendado (garante registro) - rails.register_actions(actions) + rails.register_action(actions) return rails \ No newline at end of file diff --git a/final_pkg/examples/app_nemo.py b/final_pkg/examples/app_nemo.py index 872307a..3e38529 100644 --- a/final_pkg/examples/app_nemo.py +++ b/final_pkg/examples/app_nemo.py @@ -1,13 +1,48 @@ - from company_nemo_guardrails import create_rails def main(): + tests = [] + + messages = [ + { + "role": "context", + "content": {"ajuste_valor": 1000, "limite": 50} + }, + { + "role": "user", + "content": "quero um desconto de R$ 1000,00 no meu plano" + } + ] + + tests.append(messages) + + messages = [ + { + "role": "context", + "content": {"requer_protocolo": True} + }, + { + "role": "user", + "content": "quero cancelar o plano" + }, + { + "role": "assistant", + "content": "o plano foi cancelado sem protocolo" + } + ] + tests.append(messages) + rails = create_rails() + response = rails.generate( - messages=[{"role": "user", "content": "Meu CPF é 123.456.789-00"}], - options={"log": {"activated_rails": True}} + messages=messages, + options={ + "log": {"activated_rails": True} + } ) + print(response) + if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/final_pkg/examples/test.py b/final_pkg/examples/test.py new file mode 100644 index 0000000..e8d4780 --- /dev/null +++ b/final_pkg/examples/test.py @@ -0,0 +1,201 @@ +from company_nemo_guardrails import create_rails + + +def extrair_resultados(response): + resultados = [] + + if not response.log: + return resultados + + for rail in response.log.activated_rails: + for action in rail.executed_actions: + r = action.return_value + if r: + resultados.append({ + "action": action.action_name, + "code": r.code, + "allowed": r.allowed, + "reason": r.reason + }) + + return resultados + + +def print_result(test, response): + print("\n" + "="*80) + print(f"🧪 TESTE: {test['name']}") + + print("\n👤 INPUT:") + print(test["input"]) + + print("\n🤖 LLM OUTPUT (simulado):") + print(test["llm_output"]) + + resultados = extrair_resultados(response) + + print("\n📊 RAILS:") + for r in resultados: + status = "✅" if r["allowed"] else "❌" + print(f"{status} {r['code']} ({r['action']}) -> {r['reason']}") + + print("="*80) + + +def rodar_testes(): + rails = create_rails() + + tests = [] + + # ========================================================= + # 💰 1. ALCADA (ADJ) + # ========================================================= + + # acima da alçada + tests.append([ + {"role": "context", "content": {"ajuste_valor": 1000, "limite": 50}}, + {"role": "user", "content": "quero um desconto de R$ 1000"} + ]) + + # dentro da alçada + tests.append([ + {"role": "context", "content": {"ajuste_valor": 20, "limite": 50}}, + {"role": "user", "content": "quero um desconto de R$ 20"} + ]) + + # ========================================================= + # 📞 2. COMPLIANCE ANATEL (CMP) + # ========================================================= + + # execução sem protocolo (DEVE FALHAR) + tests.append([ + {"role": "context", "content": {"requer_protocolo": True}}, + {"role": "user", "content": "quero cancelar o plano"}, + {"role": "assistant", "content": "seu plano foi cancelado"} + ]) + + # execução com protocolo (DEVE PASSAR) + tests.append([ + {"role": "context", "content": {"requer_protocolo": True}}, + {"role": "user", "content": "quero cancelar o plano"}, + {"role": "assistant", "content": "seu plano foi cancelado. protocolo 123456"} + ]) + + # negativa (DEVE PASSAR) + tests.append([ + {"role": "context", "content": {"requer_protocolo": True}}, + {"role": "user", "content": "quero cancelar o plano"}, + {"role": "assistant", "content": "não posso cancelar seu plano, entre em contato com suporte"} + ]) + + # orientação (DEVE PASSAR) + tests.append([ + {"role": "context", "content": {"requer_protocolo": True}}, + {"role": "user", "content": "quero cancelar o plano"}, + {"role": "assistant", "content": "você pode solicitar o cancelamento pelo app"} + ]) + + # ========================================================= + # ⚠️ 3. VERBALIZAÇÃO PREMATURA (REVPREC) + # ========================================================= + + tests.append([ + {"role": "context", "content": {}}, + {"role": "user", "content": "quero desconto"}, + {"role": "assistant", "content": "já apliquei o desconto na sua fatura"} + ]) + + # ========================================================= + # 🧠 4. GROUNDEDNESS (GND) + # ========================================================= + + # sem dados + tests.append([ + {"role": "context", "content": {"has_invoice_data": False}}, + {"role": "user", "content": "qual o valor da minha fatura"}, + {"role": "assistant", "content": "sua fatura é R$ 200"} + ]) + + # com dados (controle) + tests.append([ + {"role": "context", "content": {"has_invoice_data": True}}, + {"role": "user", "content": "qual o valor da minha fatura"}, + {"role": "assistant", "content": "sua fatura é R$ 200"} + ]) + + # ========================================================= + # 🔁 5. LOOP + # ========================================================= + + tests.append([ + {"role": "context", "content": {}}, + {"role": "user", "content": "quero desconto"}, + {"role": "user", "content": "quero desconto"}, + {"role": "user", "content": "quero desconto"} + ]) + + # ========================================================= + # 🤬 6. TOXICIDADE + # ========================================================= + + tests.append([ + {"role": "context", "content": {}}, + {"role": "user", "content": "você é um idiota"} + ]) + + # ========================================================= + # 📉 7. SEMÂNTICA (SEMAC) + # ========================================================= + + tests.append([ + {"role": "context", "content": {}}, + {"role": "user", "content": "quero cancelar o plano"}, + {"role": "assistant", "content": "você solicitou upgrade de plano"} + ]) + + # ========================================================= + # 🧠 8. HISTÓRICO (HIST) + # ========================================================= + + tests.append([ + {"role": "context", "content": {"contestacao_anterior": "procedente_confirmada"}}, + {"role": "user", "content": "quero contestar novamente a cobrança"} + ]) + + # ========================================================= + # 🤖 9. FALLBACK + # ========================================================= + + tests.append([ + {"role": "context", "content": {}}, + {"role": "user", "content": "asdfghjkl"}, + {"role": "assistant", "content": "não posso ajudar com isso"} + ]) + + # ========================================================= + # 📊 10. TCR / MÉTRICAS + # ========================================================= + + tests.append([ + {"role": "context", "content": {}}, + {"role": "user", "content": "quero cancelar o plano"}, + {"role": "assistant", "content": "cancelamento realizado com sucesso"} + ]) + + + for i, messages in enumerate(tests): + print(f"\n=== TESTE {i+1} ===") + print("MESSAGES:", messages) + response = rails.generate( + messages=messages, + options={"log": {"activated_rails": True}} + ) + + for rail in response.log.activated_rails: + for action in rail.executed_actions: + r = action.return_value + if r: + print(f"{r.code} -> {r.allowed} | {r.reason}") + + +if __name__ == "__main__": + rodar_testes() \ No newline at end of file