Skip to content

Repository files navigation

CardSage API

CardSage API é uma API desenvolvida em Python com Flask. Sua principal função é servir como backend para uma extensão do Chrome chamada CardSage, mas também pode ser utilizada em outras plataformas, como aplicações móveis e desktop, graças à sua flexibilidade.

A CardSage API conecta-se a diversos serviços para realizar suas operações. Utiliza um banco de dados não-relacional MongoDB para armazenamento e se comunica com a API da OpenAI para realizar análises detalhadas e processamento de requisições. Além disso, oferece serviços de extração de texto a partir de páginas web fornecidas via URL.

A ideia central é que, ao submeter uma URL, a API extrai o texto da página, gera um resumo em duas linhas (com no máximo 240 caracteres), cria um título, uma descrição e três tags associadas ao conteúdo da página. Estas tags são então organizadas em uma estrutura hierárquica com tags raízes predefinidas e tags cards geradas pela interação com o ChatGPT da OpenAI, formando uma árvore binária de dois níveis.

Sumário

Instalação

Pré-requisitos

  • Python 3.8+
  • MongoDB

Passos para instalação

  1. Clone o repositório:
     git clone https://github.com/seu-usuario/cardsage-api.git
     cd cardsage-api
  1. Crie um ambiente virtual:
    python3.9 -m venv cardsage
    source cardsage/bin/activate  # Linux/Mac
    cardsage\Scripts\activate  # Windows
  1. Instale as dependências:
    pip install -r requirements.txt
  1. Configure as variáveis de ambiente no arquivo .env:
    DBHOST=""
    DATABASE=""
    COLLECTION=""
    JWT_SECRET_KEY=""
    SECRET_KEY=""
    JWT_ACCESS_TOKEN_EXPIRES=""
    REDIS_URL=""
    TAGLIST="TECNOLOGIA,INOVAÇÃO,CURIOSIDADES,ELETRÔNICOS,LANÇAMENTO,APLICATIVOS,NOTÍCIAS,IA,PROGRAMAÇÃO,PET,DECORAÇÃO,ANIMES,MOBILIÁRIO,VIAGEM,FILMES,FESTAS,EDUCAÇÃO,JOGOS,MÚSICA,CULINÁRIA,OUTROS"
  1. Execute a aplicação:
    python3 run.py
    python3 queue_worker.py (Em outro terminal — consome a fila de processamento de itens)

Uso

Esta API é projetada para ser utilizada por uma extensão de navegador chamada CardSage Extension. Ela oferece três rotas principais para salvar, listar e excluir itens no banco de dados.

Rotas da API

Salvar Item

  • Rota: /api/save-item
  • Método: POST
  • Descrição: Recebe uma URL, extrai o texto do HTML dessa URL, envia os textos para a API da OpenAI para análise e armazena as informações no MongoDB em uma estrutura hierárquica.
  • Parâmetros: url (string): URL do site a ser analisado.

Exemplo de solicitação:

    curl -X POST http://localhost:5000/api/save-item \
    -H "Content-Type: application/json" \
    -d '{"url": "https://exemplo.com"}'

Listar Itens

  • Rota: /api/list-items
  • Método: GET
  • Descrição: Retorna uma lista com todos os itens salvos na estrutura hierárquica no MongoDB.

Exemplo de solicitação:

    curl -X GET http://localhost:5000/api/list-items

Excluir Item

  • Rota: /api/delete-items/id
  • Método: DELETE
  • Descrição: Exclui um item específico do banco de dados pelo seu ID. Parâmetros: id (string): ID do objeto a ser excluído.

Exemplo de solicitação:

    curl -X DELETE http://localhost:5000/api/delete-item/id-do-objeto

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.

Licença

Este projeto está licenciado sob a MIT License.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages