diff --git a/.env.example b/.env.example index 5e005b1..aade61c 100644 --- a/.env.example +++ b/.env.example @@ -1,42 +1,172 @@ -# Backoffice convertido 100% para execução dentro do Agent Framework -# Nunca versionar .env com credenciais reais. +############################################################################### +# AI AGENT PLATFORM - CONFIGURAÇÃO ÚNICA +# Este arquivo é lido por Pydantic Settings no framework e no backend template. +############################################################################### +APP_NAME=ai-agent-template APP_ENV=local LOG_LEVEL=INFO -CORS_ORIGINS=* +API_HOST=0.0.0.0 +API_PORT=8000 +CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173 + +############################################################################### +# LLM - OCI Generative AI como provider principal +############################################################################### +# Opções: mock, oci_openai, oci_sdk, openai_compatible +LLM_PROVIDER=oci_openai +LLM_TEMPERATURE=0.2 +LLM_MAX_TOKENS=2048 +LLM_TIMEOUT_SECONDS=120 + +# OCI OpenAI-compatible endpoint +OCI_GENAI_BASE_URL=https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1 +OCI_GENAI_MODEL=openai.gpt-4.1 +OCI_GENAI_API_KEY=sk-ph3FgX6ph3FgX6ph3FgX6ph3FgX6ph3FgX6ph3FgX6ph3FgX6 +OCI_GENAI_PROJECT_OCID= + +# OCI SDK / signer / profiles +OCI_CONFIG_FILE=~/.oci/config +OCI_PROFILE=LATINOAMERICA-Chicago +OCI_COMPARTMENT_ID=ocid1.compartment.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +OCI_REGION=us-chicago-1 + +############################################################################### +# Persistência +############################################################################### +# Opções: memory, autonomous, mongodb +SESSION_REPOSITORY_PROVIDER=autonomous +MEMORY_REPOSITORY_PROVIDER=autonomous +CHECKPOINT_REPOSITORY_PROVIDER=autonomous + +# Autonomous Database +ADB_USER=admin +ADB_PASSWORD=wer4werwer +ADB_DSN=oradb23ai_high +ADB_WALLET_LOCATION=/DEFAULT/Wallet_ORADB23ai +ADB_WALLET_PASSWORD= wer4werwer +ADB_TABLE_PREFIX=AGENTFW + +# MongoDB - também pode representar Autonomous usando API compatível com Mongo, se habilitada no ambiente +MONGODB_URI=mongodb://mongo:mongopassword@localhost:27017 +MONGODB_DATABASE=agent_platform + +# Redis +REDIS_URL=redis://localhost:6379/0 +ENABLE_REDIS_CACHE=false + +############################################################################### +# RAG / Vector / Graph +############################################################################### +VECTOR_STORE_PROVIDER=memory +GRAPH_STORE_PROVIDER=memory +RAG_TOP_K=5 +EMBEDDING_PROVIDER=mock +OCI_EMBEDDING_MODEL=cohere.embed-multilingual-v3.0 + +############################################################################### +# Observabilidade +############################################################################### +ENABLE_LANGFUSE=true +LANGFUSE_PUBLIC_KEY=pk-lf-bd9b0c7e-2b8b-4e5b-a382-284a9b4413b3 +LANGFUSE_SECRET_KEY=sk-lf-5f5cc18d-0bb5-424e-b5d0-cb3664d58c20 +LANGFUSE_HOST=http://localhost:3005 +ENABLE_OTEL=false +OTEL_EXPORTER_OTLP_ENDPOINT= +OTEL_SERVICE_NAME=ai-agent-template + +############################################################################### +# Analytics / Observer corporativo +############################################################################### +# Quando true, AgentObserver publica eventos IC.*, NOC.* e GRL.* nos providers abaixo. +ENABLE_ANALYTICS=false +# Providers aceitos: oci_streaming,pubsub,noop +ANALYTICS_PROVIDERS=oci_streaming +# Compatibilidade FIRST/TIM: pode informar AGENT_PUBSUB_TOPIC diretamente. +AGENT_PUBSUB_TOPIC= +GCP_PUBSUB_TOPIC_PATH= +GCP_PROJECT_ID= +GCP_PUBSUB_TOPIC= +GCP_PUBSUB_TIMEOUT_SECONDS=30 +# Credencial GCP segue padrão Google: +# GOOGLE_APPLICATION_CREDENTIALS=/secrets/gcp-service-account.json + +############################################################################### +# OCI Streaming +############################################################################### +ENABLE_OCI_STREAMING=false +OCI_STREAM_ENDPOINT= +OCI_STREAM_OCID= +OCI_STREAM_PARTITION_KEY=agent-events + +############################################################################### +# Guardrails, Judges, Supervisor +############################################################################### +ENABLE_INPUT_GUARDRAILS=true +ENABLE_OUTPUT_GUARDRAILS=true +ENABLE_JUDGES=true +ENABLE_SUPERVISOR=true +ENABLE_OUTPUT_SUPERVISOR=true +ENABLE_PARALLEL_GUARDRAILS=true +GUARDRAILS_FAIL_FAST=true +OUTPUT_SUPERVISOR_MAX_RETRIES=3 +GUARDRAILS_CONFIG_PATH=./config/guardrails.yaml +JUDGES_CONFIG_PATH=./config/judges.yaml +PROMPT_POLICY_PATH=./config/prompt_policy.yaml + +############################################################################### +# Gateway de canais +############################################################################### +DEFAULT_CHANNEL=web +ENABLE_VOICE_ADAPTER=true +ENABLE_WHATSAPP_ADAPTER=true +ENABLE_TEXT_ADAPTER=true + +################################################# +# ENTERPRISE ROUTING +################################################# +# Arquivo YAML com intents, keywords, políticas de estado e fallback. +ROUTING_CONFIG_PATH=./config/routing.yaml +# true = usa LLM para classificar quando keywords/estado não resolverem. +# Em produção, costuma ser útil; em desenvolvimento, false evita custo e latência. +ENABLE_LLM_ROUTER=true + +############################################################################### +# MCP / Tools +############################################################################### +ENABLE_MCP_TOOLS=true +MCP_SERVERS_CONFIG_PATH=./config/mcp_servers.yaml +TOOLS_CONFIG_PATH=./config/tools.yaml +MCP_TOOL_TIMEOUT_SECONDS=30 + +# router = EnterpriseRouter seleciona um agente; supervisor = pode acionar múltiplos agentes +ROUTING_MODE=router + +# Usage/cost accounting +USAGE_REPOSITORY_PROVIDER=autonomous +IDENTITY_CONFIG_PATH=./config/identity.yaml +MCP_PARAMETER_MAPPING_PATH=./config/mcp_parameter_mapping.yaml + +############################################################################### +# BACKOFFICE CONVERTIDO - CHAVES ADICIONADAS A PARTIR DO .env.example +# Valores existentes no .env original foram preservados. Revise placeholders. +############################################################################### # Framework DEFAULT_AGENT_ID=backoffice_anatel -ROUTING_MODE=router ENABLE_SSE=true -ENABLE_PARALLEL_GUARDRAILS=true -GUARDRAILS_FAIL_FAST=true - -# Repositórios locais por padrão -SESSION_REPOSITORY_PROVIDER=sqlite -MEMORY_REPOSITORY_PROVIDER=sqlite -CHECKPOINT_REPOSITORY_PROVIDER=sqlite -USAGE_REPOSITORY_PROVIDER=sqlite SQLITE_DB_PATH=.local/backoffice_framework.db - -# LLM -LLM_PROVIDER=oci_openai LLM_MODEL=cohere.command-r-08-2024 # OCI OpenAI-compatible endpoint/credentials. Preencha conforme seu Agent Framework. -# OCI_OPENAI_BASE_URL=https://inference.generativeai..oci.oraclecloud.com/20231130/actions/chat -# OCI_OPENAI_API_KEY= +OCI_OPENAI_BASE_URL=https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/chat +OCI_OPENAI_API_KEY=sk-ph3FgX6iP3fxAQCXb9IpPIDTadkeeYAWntUWhzcWysIM6zsS # OPENAI_API_KEY= -# OCI_CONFIG_PROFILE=DEFAULT -# OCI_REGION=sa-saopaulo-1 -# OCI_COMPARTMENT_ID= +OCI_CONFIG_PROFILE=LATINOAMERICA-Chicago +# OCI_REGION=us-chicago-1 +# OCI_COMPARTMENT_ID=ocid1.compartment.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # MCP MCP_ENABLED=true -MCP_SERVERS_CONFIG_PATH=config/mcp_servers.yaml -MCP_PARAMETER_MAPPING_PATH=config/mcp_parameter_mapping.yaml - -# Original develop / TIM integrations -ENABLE_OCI_STREAMING=false DEBUG=true # IMDB_API_HOST= # SIEBEL_API_HOST= @@ -51,7 +181,6 @@ DEBUG=true # OCI_RESPONSE_STREAM_OCID= # OCI_CONSUMER_GROUP_NAME= - # MCP Server local do backoffice # O backend principal chama esse endpoint pelo MCPToolRouter do framework. BACKOFFICE_MCP_BASE_URL=http://localhost:8010 @@ -60,39 +189,52 @@ BACKOFFICE_MCP_BACKEND_TYPE=tim_clients BACKOFFICE_MCP_FAIL_OPEN_ON_BACKEND_ERROR=true # TIM/develop original - preencha no .env real, nunca versionar segredos. -PMID_API_HOST=https://pmidfqa.internal.timbrasil.com.br/access/v1/info -PMID_API_BASIC_TOKEN= +PMID_API_HOST=http://localhost:8011/access/v1/info +PMID_API_BASIC_TOKEN=Basic dGlteDpAckp1SkpAcFJPUiM= PMID_API_TIMEOUT=10 PMID_API_CLIENT_ID=AIAGENTCR - -SIEBEL_API_HOST=https://pmidfqa.internal.timbrasil.com.br/customers/v1/backOfficeSRopening +SIEBEL_API_HOST=http://localhost:8011 +SIEBEL_API_ROUTE=/customers/v1/backOfficeSRopening SIEBEL_API_TIMEOUT=10 -SIEBEL_API_USERNAME= -SIEBEL_API_PASSWORD= +SIEBEL_API_USERNAME=aiagentcr +SIEBEL_API_PASSWORD=AiAgentCR#FQA# SIEBEL_API_CLIENT_ID=AIAGENTCR -SIEBEL_STATUS_API_HOST=https://pmidfqa.internal.timbrasil.com.br +SIEBEL_STATUS_API_HOST=https://locahost:8011 SIEBEL_STATUS_API_ROUTE=/interactions/v1/statusServiceRequest -SIEBEL_PREPAGO_STATUS_API_HOST=https://pmidfqa.internal.timbrasil.com.br +SIEBEL_PREPAGO_STATUS_API_HOST=https://localhost:8011 SIEBEL_PREPAGO_STATUS_API_ROUTE=/customers/v1/serviceRequest VERIFY_SSL=false SPEECH_PREDICTION_BASE_URL=https://apigatewayfqa1.tim.com.br -SPEECH_PREDICTION_CLIENT_ID= -SPEECH_PREDICTION_CLIENT_SECRET= -SPEECH_HISTORY_BASE_URL= -SPEECH_HISTORY_AUDIENCE= -GOOGLE_APPLICATION_CREDENTIALS=/path/to/gcp-credentials-local.json +SPEECH_PREDICTION_CLIENT_ID=TzlzCbMGNKpGXl7oUDAlE66eL3ZGmWBtuHMjgsClMoDNdmLz +SPEECH_PREDICTION_CLIENT_SECRET=ZIgIIxsn3CG7ra9HiOLSLygRzcgcivIMsoo4kwqLo9MtQBtNnmUadNpUx81ABkEm +SPEECH_HISTORY_BASE_URL=https://run-external-speech-analytics-audio-toxico-49911170294.us-east1.run.app +SPEECH_HISTORY_AUDIENCE=https://run-external-speech-analytics-audio-toxico-49911170294.us-east1.run.app +GOOGLE_APPLICATION_CREDENTIALS=/Users/cristianohoshikawa/Dropbox/ORACLE/TIM/compass/lab_backoffice/config/gcp-credentials-local.json SPEECH_TIMEOUT=30 SPEECH_SIMILARITY_THRESHOLD=70 -TAIS_DB_USER= -TAIS_DB_PASSWORD= -TAIS_DB_DSN= +TAIS_DB_USER=admin +TAIS_DB_PASSWORD=rw454tg454 +TAIS_DB_DSN=" (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.sa-saopaulo-1.oraclecloud.com))(connect_data=(service_name=jy2otyfomimhaoc_oradb23ai_high.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)))" TAIS_DB_TIMEOUT=30 -TAIS_GENAI_ENDPOINT=https://inference.generativeai.sa-saopaulo-1.oci.oraclecloud.com -TAIS_GENAI_COMPARTMENT_ID= +TAIS_GENAI_ENDPOINT=https://inference.generativeai.us-chicago-1.oci.oraclecloud.com +TAIS_GENAI_COMPARTMENT_ID=ocid1.compartment.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa TAIS_GENAI_EMBED_MODEL_ID=cohere.embed-multilingual-v3.0 TAIS_TABLE_CHUNKS=CHUNKS_CHAR_COHERE_3 TAIS_TOP_K=3 +# LLM CLASSIFICATION +CLASSIFICATION_LLM_MODEL=openai.gpt-4.1 +CLASSIFICATION_LLM_TEMPERATURE=0.3 +CLASSIFICATION_LLM_MAX_TOKENS=2000 +CLASSIFICATION_LLM_TOP_P=0.9 +CLASSIFICATION_LLM_TOP_K=250 + +CLASSIFICATION_LARGE_LLM_MODEL=openai.gpt-4.1 +CLASSIFICATION_LARGE_LLM_TEMPERATURE=0.3 +CLASSIFICATION_LARGE_LLM_MAX_TOKENS=4000 +CLASSIFICATION_LARGE_LLM_TOP_P=0.9 +CLASSIFICATION_LARGE_LLM_TOP_K=250 + USE_FULL_ANATEL_DICT=true diff --git a/.env.backoffice_mcp.example b/mcp_servers/.env.backoffice_mcp.example similarity index 100% rename from .env.backoffice_mcp.example rename to mcp_servers/.env.backoffice_mcp.example