Projeto Assistente de Busca de Veículos com MCP
Este projeto implementa um assistente de busca de veículos interativo no terminal. Ele demonstra o uso do Model Context Protocol (MCP) para orquestrar a comunicação entre um cliente, um modelo de linguagem (LLM, via Ollama) e um banco de dados SQLite.
Principais Funcionalidades:
- Busca de Veículos: Permite ao usuário procurar veículos no banco de dados com base em diversos critérios (marca, modelo, ano, preço, etc.) através de linguagem natural.
- Agente Interativo: Um agente virtual no terminal guia a conversa, interpretando as solicitações do usuário, fazendo perguntas para refinar a busca e apresentando os resultados de forma amigável.
- Integração com LLM: Utiliza um modelo de linguagem (Ollama) para entender a intenção do usuário e auxiliar na formulação das consultas.
- Integração com Banco de Dados: Acessa e consulta dados de veículos armazenados em um banco de dados SQLite.
- Protocolo MCP: Estrutura a comunicação e a interação entre os componentes (agente, cliente MCP, servidor MCP, LLM, banco de dados) utilizando o Model Context Protocol para a chamada de ferramentas (Tools).
Instalação:
- Pré-requisitos: Certifique-se de ter o Python 3.12 e o Docker instalados em seu sistema. É necessário ter o Ollama em execução, acessível pelo Docker Compose ou diretamente no host, com o modelo especificado na variável de ambiente disponível (ex: 'llama3.1:8b').
- Clonar o Repositório:
git clone https://github.com/VitorManoel0/VeiculosLLM.git cd VeiculosLLM - Configurar Variáveis de Ambiente: Crie um arquivo '.env' a partir do exemplo fornecido e configure as variáveis 'OLLAMA_MODEL' e 'OLLAMA_HOST' (o 'OLLAMA_HOST' padrão 'http://ollama:11434' funciona com o 'docker-compose.yml' incluído).
cp .env.sample .env # Edite o .env conforme necessário - Iniciar a Aplicação: Utilize o 'Makefile' para construir as imagens Docker e iniciar os serviços (incluindo o Ollama, se configurado no docker-compose, e a aplicação).
Se a aplicação já foi iniciada previamente e você apenas deseja re-executá-la (sem reconstruir imagens):make run-allmake run-app
Configuração do Servidor MCP para Clientes Externos:
Para um cliente MCP externo se conectar a esta implementação de servidor (quando executada em modo compatível com Stdio/in-process como feito aqui), o cliente precisaria executar o script principal da aplicação que instancia e roda o servidor MCP internamente. A configuração seria similar a iniciar a própria aplicação.
Exemplo de configuração em formato JSON para um cliente MCP (assumindo que o cliente está configurado para usar a command/args transport):
{ "name": "VeiculosMCP", "command": "make", "args": ["run-app"], "comment": "Inicia a aplicação VeiculosLLM que inclui o servidor MCP in-process." }
- 'name': Um nome identificador para esta conexão do servidor.
- 'command': O comando principal para iniciar o servidor. Neste caso, é o comando 'make' usado para executar a aplicação.
- 'args': Argumentos a serem passados para o comando. 'run-app' é o alvo no Makefile que executa a aplicação Python principal.
- 'comment': Descrição opcional para o usuário.
Observação: Esta configuração inicia a aplicação completa, incluindo a interface de terminal. Para um uso puramente de API MCP, a arquitetura poderia ser modificada para separar o servidor MCP em um processo independente.
Uso Básico:
- Após executar 'make run-all' ou 'make run-app', o banco de dados será populado e o agente virtual será iniciado no terminal.
- Digite suas perguntas ou critérios de busca por veículos (ex: "Procure por um carro hatch vermelho flex fabricado depois de 2020").
- O agente responderá, talvez pedindo mais informações, e eventualmente exibirá os resultados encontrados em formato de tabela.
- Digite "sair" ou "exit" para finalizar a aplicação.
- Para remover os contêineres Docker ao finalizar, use: 'docker-compose down -v'
信息
分类
AI与计算