🚀 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.
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.
- - Linguagem de programação utilizada
- - Biblioteca para manipulação de cores no console
- - API utilizada para interação com modelos de IA
- - Biblioteca personalizada para limpar o console criada por mim
- - Biblioteca para manipulação de JSON
- - Biblioteca para manipulação de JSON
- - Biblioteca para autenticação OAuth2
-
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.
- 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.
- 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.
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.
-
Faça o download da aplicação clicando aqui
-
Descompacte o arquivo baixado usando o WinRAR ou 7-Zip.
-
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.
- 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
-
Faça o download da aplicação clicando aqui
-
Descompacte o arquivo baixado usando o
unzip
ou qualquer outra ferramenta de descompactação de sua preferência. -
Mova a pasta descompactada para um local de sua escolha no sistema.
-
Torne o arquivo executável e execute a aplicação com os seguinte comando
chmod +x AskConsole.jar
- Execute a aplicação
java -jar AskConsole.jar
- 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