Skip to content

About

Pipeline de dados e análise inteligente de licitações públicas com busca híbrida e IA.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Sistema Inteligente para Descoberta de Oportunidades em Licitações Públicas

FastAPI | Next.js | Groq | PostgreSQL | Docker

Plataforma para coleta, enriquecimento semântico e matching entre empresas e licitações públicas.

🔒 Nota de Portfólio: Código privado devido a diretrizes de propriedade intelectual e viabilidade comercial. Este repositório documenta a arquitetura, decisões de engenharia e os desafios técnicos no desenvolvimento para fins de portfólio.


📝 Contexto

O Portal Nacional de Contratações Públicas (PNCP) centraliza dados de licitações públicas brasileiras, porém identificar oportunidades realmente relevantes ainda é um processo trabalhoso para muitas empresas.

Entre os principais desafios estão:

  • 📦 Grande volume de licitações publicadas diariamente
  • 🔍 Descrições heterogêneas e pouco padronizadas
  • 🌐 Dados distribuídos em múltiplos endpoints
  • ⚠️ Instabilidade operacional da API pública (timeouts e indisponibilidades)
  • 🤝 Dificuldade em conectar o perfil comercial das empresas às oportunidades disponíveis

Este projeto consiste no desenvolvimento de uma plataforma para descoberta de oportunidades em licitações públicas, composta por um pipeline de coleta de dados, enriquecimento semântico com LLM, API REST e mecanismos de matching entre empresas e licitações.


🏗️ Arquitetura atual do Sistema

graph TD

    subgraph W[Workers]
        B[Collector Worker]
        D[Items Worker]
        E[Analysis Worker]
        H[Cleanup Worker]
    end

    subgraph APP[Aplicação]
        I[FastAPI]
        J([Frontend Next.js])
    end

    A([API Pública do PNCP])
    C[(PostgreSQL)]
    F([Groq API<br/>LLM])
    K{{Redis<br/>Celery + Cache}}

    A --> B
    B -->|licitações| C

    A --> D
    D -->|itens| C

    C <--> E
    E -->|licitações| F
    F -->|análises| E

    C --> H
    H --> C

    C --> I
    I --> C

    K -.-> B
    K -.-> D
    K -.-> E
    K -.-> H
    I <--> K

    I -->|REST API| J
    J -->|perfil comercial| I
Loading

🛠️ Stack

Backend

  • Python
  • FastAPI
  • SQLAlchemy
  • PostgreSQL

IA

  • Groq API
  • GPT-OSS

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS

Infraestrutura

  • Docker
  • Redis
  • Celery

⚙️ Funcionalidades Atuais

  • Coleta periódica de licitações do PNCP
  • Enriquecimento de dados utilizando LLM
  • Geração automática de:
    • descrição normalizada
    • palavras-chave
    • setores relacionados
  • Mecanismo de matching entre empresas e licitações
  • Cadastro de perfil comercial da empresa
  • Recomendações personalizadas de licitações
  • Pesquisa e filtragem de oportunidades
  • Visualização detalhada de licitações e itens
  • Cache de resultados com Redis

🛡️ Desafios Técnicos

1. Instabilidade da API do PNCP

  • Problema: Lentidão, timeouts e falhas em requisições consecutivas.
  • Solução: Implementação de timeouts, retries controlados, delays entre chamadas e coleta periódica.

2. Dados heterogêneos e pouco estruturados

  • Problema: As descrições das licitações variam significativamente em qualidade e nível de detalhe, podendo conter desde poucas palavras até longos textos administrativos, dificultando a identificação do objeto comercial da contratação.
  • Solução: Utilização de LLM para normalizar as descrições, extrair palavras-chave relevantes e identificar os setores relacionados à contratação.

3. Licitações multidisciplinares

  • Problema: Uma mesma licitação pode reunir produtos e serviços de diferentes áreas de atuação, tornando inadequada uma classificação única.
  • Solução: Modelagem baseada em múltiplos setores relacionados, permitindo representar licitações que abrangem diferentes segmentos e melhorar estratégias de matching.

4. Limitações dos modelos de linguagem

  • Problema: Modelos menores apresentaram baixa capacidade para interpretar corretamente descrições heterogêneas e identificar o contexto comercial das licitações.
  • Solução: Comparação entre modelos executados localmente e modelos hospedados, resultando na adoção da API da Groq como estratégia para equilibrar qualidade das análises, latência operacional, custos e simplicidade da infraestrutura.

🖥️ Interface

Oportunidades

Detalhes da oportunidade


🚀 Próximos Passos

  • Autenticação e gerenciamento de usuários e empresas
  • Sistema de notificações de novas oportunidades
  • Dashboard de recomendações
  • Upload e gerenciamento de documentos
  • Deploy e configuração do ambiente de produção
  • Expansão do algoritmo de matching

About

Pipeline de dados e análise inteligente de licitações públicas com busca híbrida e IA.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors