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.
- Python 3.8+
- MongoDB
- Clone o repositório:
git clone https://github.com/seu-usuario/cardsage-api.git
cd cardsage-api- Crie um ambiente virtual:
python3.9 -m venv cardsage
source cardsage/bin/activate # Linux/Mac
cardsage\Scripts\activate # Windows- Instale as dependências:
pip install -r requirements.txt- 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"- Execute a aplicação:
python3 run.py
python3 queue_worker.py (Em outro terminal — consome a fila de processamento de itens)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.
- 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"}'- 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- 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-objetoContribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
Este projeto está licenciado sob a MIT License.