AskConsole

AskConsole é uma aplicação que une a simplicidade do CLI com a complexidade de uma IA (LLM), trazendo a oportunidade ter conversas com o Gemini da Google.

MIT License

Stars
15

AskConsole

🚀 AskConsole é uma aplicação Java interativa que permite criar e gerenciar conversas com uma interface de linha de comando (CLI). Desenvolvido com o intuito de oferecer uma experiência robusta para interação e salvamento de conversas, o AskConsole é ideal para quem busca uma ferramenta prática e eficiente para comunicação textual em ambiente de console.

📚 Conceito

O AskConsole foi criado com o intuito de utilizar a estrutura simples do CLI com uma aplicação escalável, no caso, um ecossistema de consumo de uma LLM, sendo o Gemini do Google. Há diversos conceitos implícitos nesta aplicação, desde uma simples interação no chat até a possibilidade de continuar uma conversa de onde parou.

🛠️ Tecnologias Utilizadas

  • Java - Linguagem de programação utilizada
  • Jansi - Biblioteca para manipulação de cores no console
  • Google Cloud AI Platform - API utilizada para interação com modelos de IA
  • ConsoleClear - Biblioteca personalizada para limpar o console criada por mim
  • Jackson - Biblioteca para manipulação de JSON
  • JSON - Biblioteca para manipulação de JSON
  • Google Auth Library - Biblioteca para autenticação OAuth2

🏛️ Arquitetura da Aplicação

📐 Padrões e Metodologias Utilizadas

  • SOLID Principles:

    • Single Responsibility Principle (SRP)
    • Open/Closed Principle (OCP): O sistema está projetado para permitir a adição de novas funcionalidades sem modificar o código existente, utilizando extensões de classes e interfaces.
    • Liskov Substitution Principle (LSP): As subclasses podem substituir as classes base sem alterar o comportamento esperado do sistema, garantindo consistência nas implementações.
    • Interface Segregation Principle (ISP): Interfaces são projetadas para serem específicas e focadas, evitando interfaces grandes e abrangentes e permitindo que as classes implementem apenas os métodos necessários.
    • Dependency Inversion Principle (DIP): Dependências são abstraídas por meio de interfaces, em vez de depender diretamente de implementações concretas, facilitando a substituição e o teste das dependências.
  • Dependency Injection - Para promover a inversão de controle e facilitar a gestão de dependências, permitindo uma arquitetura mais modular e testável.

  • Asynchronous Programming - Utilizado para melhorar a performance e a escalabilidade da aplicação, especialmente em operações de rede e I/O.

  • Command Pattern - Utilizado para encapsular todas as informações necessárias para executar uma ação, permitindo o uso de comandos de forma desacoplada e flexível.

🌐 Funcionalidades

  • Criar Conversas Interativas - Permite iniciar e gerenciar conversas com uma interface de linha de comando.
  • Salvar Conversas - Guarda o histórico das conversas para consultas futuras.
  • Continuar Conversas - Retoma conversas de onde pararam.
  • Importar Chave API - Necessário para autenticação e uso da aplicação.

📥 Requisitos Mínimos

  • JRE 1.4.0 - Necessário para rodar a aplicação.
  • Internet - Necessário conexão com a internet.
  • Chave API - Obrigatória para autenticação e funcionamento da aplicação.

🛠️ Instalação

OBS: Clique aqui para adquirir a sua chave API de forma gratuita para usar a aplicação.

  • É altamente recomendado habilitar o encoding UTF-8 do seu computador. Caso não saiba, clique aqui.

Windows

  1. Faça o download da aplicação clicando aqui

  2. Descompacte o arquivo baixado usando o WinRAR ou 7-Zip.

  3. Mova a pasta descompactada para um local do seu computador.

Observação: Caso mova para a pasta "Arquivos de Programas", certifique-se de que as permissões de modificação da pasta estão adequadas.

  1. Ao abrir a aplicação pela primeira vez, será solicitado um arquivo .ini com a chave API. A estrutura do arquivo deve ser:
API=(Sua API Aqui)

Por exemplo:

API=AzKj231Azi8AqweKa

Linux

  1. Faça o download da aplicação clicando aqui

  2. Descompacte o arquivo baixado usando o unzip ou qualquer outra ferramenta de descompactação de sua preferência.

  3. Mova a pasta descompactada para um local de sua escolha no sistema.

  4. Torne o arquivo executável e execute a aplicação com os seguinte comando

chmod +x AskConsole.jar
  1. Execute a aplicação
java -jar AskConsole.jar
  1. Ao abrir a aplicação pela primeira vez, será solicitado um arquivo .ini com a chave API. A estrutura do arquivo deve ser:
API=(Sua API Aqui)

Por exemplo:

API=AzKj231Azi8AqweKa