Chatbot com LLM Local (LM Studio, LangChain, Python)
📝 Descrição do Projeto
Este projeto apresenta um chatbot simples construído em Python utilizando a biblioteca LangChain para orquestração da conversa. A particularidade e grande vantagem deste chatbot é que ele se comunica com um Large Language Model (LLM) que roda localmente na sua máquina, sem a necessidade de uma conexão com a internet para inferência (após o download inicial do modelo).
A mágica de rodar o LLM localmente é possível graças ao LM Studio, uma ferramenta intuitiva que permite baixar e servir modelos de linguagem de código aberto (como o Gemma-2-2B-IT, que estamos utilizando aqui) diretamente no seu computador, emulando uma API compatível com a OpenAI.
O objetivo principal deste projeto é demonstrar a capacidade de:
Configurar um ambiente de desenvolvimento para IA localmente.
Integrar ferramentas como LM Studio e LangChain.
Construir uma aplicação de chatbot interativa via terminal.
Explorar o poder dos LLMs que podem ser executados em hardware comum.
✨ Funcionalidades
Interação de chatbot via terminal.
Utilização de um LLM rodando localmente (Gemma-2-2B-IT, configurado via LM Studio).
Configuração de ambiente virtual Python para isolamento de dependências.
Função de teste para verificar a comunicação com o servidor LLM do LM Studio.
🛠️ Tecnologias Utilizadas
Python 3.9+
LM Studio: Ferramenta para baixar e rodar LLMs localmente.
LangChain: Framework para desenvolvimento de aplicações com LLMs.
langchain-openai: Integração do LangChain com APIs compatíveis com OpenAI (usada para se conectar ao LM Studio).
python-dotenv: Para gerenciar variáveis de ambiente (URL do servidor LLM).
🚀 Configuração do Ambiente e Execução
Siga os passos abaixo para colocar o chatbot para rodar na sua máquina Windows 11.
Na barra lateral esquerda, clique na aba "Search" (ícone de lupa).
No campo de busca, digite gemma-2-2b-it e pressione Enter.
Procure por uma versão GGUF do modelo (ex: gemma-2-2b-it-q4_k_m.gguf). Modelos com Q4_K_M ou Q5_K_M oferecem um bom equilíbrio entre desempenho e consumo de RAM.
Clique no botão "Download" ao lado da versão escolhida. Aguarde o download ser concluído (pode levar um tempo dependendo da sua conexão).
3. Iniciando o Servidor Local do LLM no LM Studio
Com o modelo baixado:
No LM Studio, vá para a aba "Local Inference Server" (ícone de duas setas, uma para cima e uma para baixo).
No painel esquerdo, certifique-se de que o modelo gemma-2-2b-it está selecionado no dropdown.
Verifique se a porta padrão (1234) está configurada. Anote a porta se for diferente.
Clique no botão "Start Server".
Você verá uma mensagem como "Serving on http://localhost:1234" se o servidor iniciar corretamente.
Deixe o LM Studio rodando em segundo plano enquanto você configura o Python.
4. Configuração do Ambiente Python
Clone este repositório para a sua máquina:
git clone https://github.com/SeuUsuario/NomeDoSeuRepositorio.git
cd NomeDoSeuRepositorio
(Substitua SeuUsuario/NomeDoSeuRepositorio.git pelo caminho real do seu repositório).
Crie um ambiente virtual (no diretório raiz do projeto):
python -m venv .venv
Ative o ambiente virtual (no Windows):
.venv\Scripts\activate
Você verá (.venv) no início da linha de comando, indicando que o ambiente está ativado.
Criação do arquivo requirements.txt
Crie um arquivo chamado requirements.txt na raiz do seu projeto com o seguinte conteúdo:
Com o ambiente virtual ativado, instale as bibliotecas necessárias:
pip install -r requirements.txt
7. Criação do arquivo .env
Crie um arquivo chamado .env na raiz do seu projeto (no mesmo nível do main.py).
Adicione a seguinte linha ao arquivo .env, ajustando a porta se for diferente da padrão1234:
LM_STUDIO_BASE_URL=http://localhost:1234/v1
8. Execução do Chatbot
Com o LM Studio servindo o modelo e o ambiente Python configurado:
No seu terminal, certifique-se de que você está na pasta raiz do projeto e que o ambiente virtual está ativado.
Execute o script principal:
python main.py
Interação
O chatbot primeiro tentará conectar-se ao LLM. Se a conexão for bem-sucedida, ele iniciará o loop de conversa.
Digite suas perguntas e pressione Enter.
Para sair, digite sair e pressione Enter.
📁 Estrutura do Projeto
.├── .env # Variáveis de ambiente (URL do servidor LLM)├── main.py # Script principal do chatbot├── requirements.txt # Lista de dependências Python└── README.md # Este arquivo