bugfix: oci_openai provider

This commit is contained in:
2026-08-27 20:34:15 -03:00
parent fc64c6ddd7
commit 0ecff719b7
329 changed files with 864 additions and 144 deletions

View File

@@ -189,12 +189,26 @@ def _invoice_subject_catalog(args: dict[str, Any]) -> list[dict[str, Any]]:
def _recover_explicit_contestation_subject(args: dict[str, Any]) -> dict[str, Any] | None:
"""Recupera item explicitamente citado no texto original da contestação.
Na confirmação a mensagem corrente pode ser apenas ``sim``. O ``motivo``/
``descricao`` preserva a fala que abriu a transação e é uma fonte mais forte
que um ``subject`` residual. Só corrige quando há exatamente um nome canônico
da fatura explicitamente presente; não faz fuzzy matching.
Na confirmação a mensagem corrente pode ser apenas ``sim``. A fala que abriu
a transação pode chegar por campos diferentes conforme o runtime/provedor
(por exemplo ``query``, ``operator_instructions``, ``message``, ``text``,
``motivo`` ou ``descricao``). Essas fontes textuais são mais fortes que um
``subject`` residual. Só corrige quando há exatamente um nome canônico da
fatura explicitamente presente; não faz fuzzy matching.
"""
original = " ".join(str(args.get(k) or "") for k in ("motivo", "descricao")).strip()
text_source_fields = (
"query",
"operator_instructions",
"message",
"text",
"motivo",
"descricao",
)
original = " ".join(
str(args.get(k) or "").strip()
for k in text_source_fields
if args.get(k)
).strip()
if not original:
return None
norm_original = f" {_norm_invoice_name(original)} "