Skip to content

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.

License

Notifications You must be signed in to change notification settings

Jorgeluisreis/AskConsole

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AskConsole Logo

GitHub last commit GitHub issues GitHub pull requests GitHub repo size License

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

Arquitetura

📐 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.

Conversa interativa

  • Salvar Conversas - Guarda o histórico das conversas para consultas futuras.

Conversas salvas

  • Continuar Conversas - Retoma conversas de onde pararam.

Continuar Conversas

  • Importar Chave API - Necessário para autenticação e uso da aplicação.

Importar Chave API

📥 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

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages