{"slug": "guard-rail-ai", "title": "Guard Rail AI", "summary": "A developer demonstrated a guardrail system for generative AI using C#/.NET 10, EF Core, SQLite, React 19 with TypeScript, and the Gemini 3.5-flash-lite LLM. The application filters user prompts and uses the LLM as a judge to block responses containing sensitive topics, replacing them with 'Content not allowed'. The project is public and serves as a didactic example of implementing content controls independent of the AI provider.", "body_md": "No projeto de hoje vou demonstrar o uso do Guard Rail no contexto de IA.\n\nO termo *guardrail* tem origem inglesa tendo surgido por volta de 1860, para designar trilhos adicionais instalados em ferrovias nas curvas mais acentuadas, afim de evitar o descarrilamento de trens.\n\nNo contexto da construção civil o conhecemos com *guarda corpo* em residências ou passarelas.\n\nNo contexto de IA o *guard-rail* (ou *guardrail*) pode funcionar como barreira à:\n\nInteligências artificiais generativas são *probabilísticas*.\n\nIsso significa que ela *calcula* a probabilidade de cada próximo *token* com base no contexto e vai construindo a resposta a partir dessa probabilidade.\n\nEntre a pergunta e a resposta existe um processo chamado *tokenização*, responsável por transformar texto puro em pequenas unidades chamadas tokens. Um token pode representar uma palavra inteira, partes de uma palavra, números ou símbolos.\n\nEm seguida esses tokens são convertidos em representações numéricas, usadas pelos modelos para compreender o contexto.\n\nCada novo token gerado é usado para calcular a probabilidade dos próximos tokens.\n\nIsso explica porque obtemos diferentes respostas para a mesma pergunta, por exemplo.\n\nA stack escolhida para este projeto é a seguinte:\n\n**Backend**: c# / .net10\n\n**ORM**: EF Core\n\n**Banco de dados**: SQLite\n\n**Frontend**: React 19 com TypeScript\n\n**LLM**: Gemini 3.5-flash-lite\n\nPara o backend c#/.net10 com EF orquestrando a persistência, é a escolha certa por fazerem parte do mesmo ecosistema.\n\nSQLite foi o escolhido da vez porque não tem dependência externa (ele é *self-contained*), leve e de fácil configuração.\n\nReactJS+Typescript pela proximidade com c# resultando em menor curva de aprendizado.\n\nGemini 3.5-flash-lite por ser gratuito e rápido, além de não ser necessário fazer nenhuma configuração adicional. Apenas com uma conta Google já é possível criar uma *apikey* válida para uso.\n\nA aplicação foi projetada para enviar à LLM o prompt digitado pelo usuário para processamento, retornando uma resposta.\n\nPodemos filtrar ou não o assunto para validar a aplicação do filtro.\n\nA inclusão deliberada de palavras para filtrar fará com que o *guardrail* entre em ação, realizando uma segunda chamada à LLM usando-a agora como juiz (conceito de *LLL-as-judge*).\n\nA escolha do modelo para ser gerador de conteúdo e juiz ao mesmo tempo foi proposital, por ser um projeto didático.\n\nRecomendo fortemente que projetos reais usem modelos diferentes para geração de conteúdo e juiz, afim de mitigar o risco de *falsos negativos*.\n\nPara fins de auditoria adicionei um histórico do que foi perguntado e se houve ou não bloqueio da resposta.\n\nPrompt sem filtro.\n\nPrompt com filtro\n\nHistórico de perguntas e resultado\n\nO repositório é público e está acessível neste endereço:\n\nA **didactic** project that demonstrates, in practice, how a **\"guard\"\n(guardrail)** layer can prevent information leakage or misuse of generative AI\ntools inside a company.\n\nThe user types a question and, optionally, provides sensitive topics\n(separated by `;`\n\n) that shouldn't appear in the answer. The question is sent\nto a free LLM (Gemini) **with no content filtering applied by the provider**\n— this \"raw\" behavior is deliberate, to highlight the risk of using an AI\ntool without controls. A separate layer of the application, the **guard**\nanalyzes the answer and, if it relates to any of the given topics, replaces\nthe content with `\"Conteúdo não permitido\"`\n\n(\"Content not allowed\").\n\nThe guard **is not an LLM feature** — it's an independent application layer\nexactly the pattern a company would apply on top of any third-party AI tool\nto enforce its own usage policies, without depending on…\n\n🤖 A geração de conteúdo ganhou novos contornos com o uso massivo da IA, que tornou possível produzir resultados em uma velocidade sem precedentes.\n\n⚠️ Entretanto, supervisionar tudo o que é produzido tornou-se uma tarefa hercúlea e, muitas vezes, impraticável.\n\n🔍 Nesse cenário, estabelecer mecanismos capazes de avaliar e filtrar as respostas antes que cheguem ao usuário tornou-se essencial.\n\n🛡️ Em essência, trata-se de garantir que a IA opere dentro de limites previamente estabelecidos, proporcionando maior segurança, controle e previsibilidade sobre o conteúdo gerado.\n\n🔒 Os modelos de IA geralmente possuem mecanismos de segurança próprios, capazes de identificar e restringir respostas a determinadas solicitações que envolvam conteúdos sensíveis ou que não sejam permitidos pelas políticas da plataforma ou pela legislação vigente em cada país.\n\nObrigado pela leitura.", "url": "https://wpnews.pro/news/guard-rail-ai", "canonical_source": "https://dev.to/marciopolicarpo/guard-rail-ai-3ka3", "published_at": "2026-08-31 01:57:16+00:00", "updated_at": "2026-08-31 02:21:19.311483+00:00", "lang": "en", "topics": ["artificial-intelligence", "generative-ai", "ai-safety", "ai-tools", "developer-tools"], "entities": ["Gemini", "C#", ".NET", "EF Core", "SQLite", "React", "TypeScript"], "alternates": {"html": "https://wpnews.pro/news/guard-rail-ai", "markdown": "https://wpnews.pro/news/guard-rail-ai.md", "text": "https://wpnews.pro/news/guard-rail-ai.txt", "jsonld": "https://wpnews.pro/news/guard-rail-ai.jsonld"}}