Os chatbots com IA se tornaram uma ferramenta essencial para empresas e organizações. Mas a maioria das soluções de chatbot depende de modelos baseados em nuvem que introduzem latência, limitações de API e, talvez o mais importante, preocupações com a privacidade. E se você pudesse executar um chatbot de IA inteiramente em sua máquina e ainda manter o histórico de conversas com uma plataforma de dados com todos os recursos?

Nesta postagem, vamos configurar um chatbot de IA auto-hospedado usando o Docker Model Runner, um novo recurso do Docker que permite executar modelos em contêineres localmente para inferência e muito mais, e o Couchbase Capella para armazenar, recuperar e pesquisar conversas. O resultado é um chatbot rápido, privado e flexível que você controla.

Pronto para começar? Vamos lá!

Configuração do Docker Model Runner

Primeiro, vamos garantir que sua versão do Docker Desktop e da CLI esteja atualizada para que você tenha o recurso Model Runner disponível. Para fazer isso, execute Status do modelo da janela de encaixe em seu terminal. Se for bem-sucedido, você verá uma mensagem de sucesso que diz O Docker Model Runner está em execução. Se não tiver, você precisará primeiro obter a versão mais recente do Docker e instalá-la. Depois de atualizar o Docker, você pode executar esse comando novamente e ele deverá funcionar.

Depois de fazer isso, você usará o Docker Model Runner para extrair a imagem do contêiner com o modelo Llama 3.2 e disponibilizá-la localmente:

docker model pull ai/llama3.3

Você pode verificar se o download do modelo Llama 3.2 foi bem-sucedido executando lista de modelos da plataforma e você verá o modelo disponível para uso:

{"object":"list","data":[{"id":"ai/llama3.3","object":"model","created":1741794281,"owned_by":"docker"}]}

Quer testá-lo? Abrir o modelo no modo interativo é muito fácil! Basta executar execução do modelo da plataforma ai/llama3.3 na linha de comando e você entrará no modo interativo:

Modo de bate-papo interativo iniciado. Digite '/bye' para sair.
>

Agora que você fez o download do Llama 3.2 e está pronto para usá-lo, é hora de criar um aplicativo de back-end simples que aproveite o modelo para um chatbot de IA auto-hospedado.

Criação do chatbot

O aplicativo que você criará realizará as seguintes tarefas:

    • Execute o Llama 3.2 localmente por meio do aplicativo execução do modelo da plataforma Comando da CLI
    • Enviar mensagens do usuário como prompts para o modelo
    • Armazenar o histórico de bate-papo no Couchbase Capella
    • Recuperar bate-papos anteriores

Seu aplicativo terá todos os recursos e estará pronto para ser usado imediatamente a partir do seu console como um robusto chatbot alimentado por IA. O código que criamos juntos aqui fornecerá a base para refatorá-lo de acordo com as necessidades que você tiver. Talvez você queira transformá-lo em um backend para um aplicativo da Web. Algumas modificações serão tudo o que é necessário para tornar isso possível.

O aplicativo requer algumas dependências, portanto, no diretório do projeto, execute npm install couchbase readline-sync. Usamos o SDK do Couchbase Node.js para interagir com nosso armazenamento de dados do Couchbase Capella, e usamos sincronização de linha de leitura para que o aplicativo interaja com o usuário a partir do terminal.

Certifique-se de ter configurado um bucket no Capella para armazenar os dados do bate-papo e de ter suas credenciais do Capella em mãos. Como sempre, não salve suas credenciais em nenhum controle de versão. Use variáveis de ambiente para o desenvolvimento local para manter suas credenciais seguras e não em mãos públicas. 

Estamos criando quatro funções em nosso aplicativo:

    • askAI para encapsular o processo de alimentação da mensagem ao nosso modelo de IA executado localmente
    • lojaChat para enviar o histórico do bate-papo para a Capella
    • fetchChatHistory para recuperar chats de bate-papo
    • principal para atuar como a interface principal do aplicativo

Vamos começar com o principal que envolverá todo o resto. Essa função criará um loop do qual o usuário poderá sair a qualquer momento, oferecendo uma experiência de bate-papo contínua:

Como você pode ver, introduzimos uma funcionalidade construída sobre o armazenamento de dados do Capella, ou seja, a capacidade de recuperar o histórico de bate-papo anterior dentro do próprio bate-papo. Isso pode ser útil para que um usuário recupere o contexto do bate-papo sempre que iniciar uma nova sessão.

Agora que temos o principal vamos criar as funções de suporte que ela invoca, começando com a função askAI função:

Em seguida, o lojaChat função:

Por fim, o fetchChatHistory função:

Quando terminar de usar as funções, certifique-se de adicionar exigir na parte superior do arquivo e para criar uma conexão com o cluster do Couchbase Capella:

Por fim, não se esqueça de adicionar uma linha no final do script que chame a função principal inserindo a função principal(); na última linha.

Quando terminar, você terá um chatbot de IA totalmente pronto, hospedado em sua própria máquina, mantendo sua privacidade e, ao mesmo tempo, aproveitando o Capella para armazenamento e recuperação.

Usando seu chatbot de IA auto-hospedado

Seu próprio chatbot está pronto para ser usado! Toda consulta que você enviar será processada apenas localmente em sua máquina usando o modelo Llama 3.2. Nada será enviado a nenhum provedor de IA remotamente.

Se você estiver pronto para experimentá-lo, execute o seguinte:

node index.js # ou o nome que você deu ao seu arquivo

Depois de executá-lo, você verá o seguinte:

Conectado ao Couchbase Capella

Chatbot de IA auto-hospedado (Llama 3.2 + Capella)

Digite sua mensagem abaixo. Digite "history" para ver os bate-papos anteriores ou "exit" para sair.

>

Vá em frente e comece a fazer perguntas e a interagir com ele. Aqui está um breve exemplo do que você pode esperar ver:

Ao usar a escalabilidade e a segurança do Couchbase Capella junto com a abordagem de privacidade do Docker Model Runner para executar modelos de IA localmente, você pode criar aplicativos dinâmicos de IA que priorizam a privacidade do usuário. A execução de modelos em sua própria máquina também oferece inferência mais rápida, controle total sobre a personalização de prompts, a capacidade de armazenar metadados adicionais e a flexibilidade para ajustar o comportamento do seu chatbot, tudo em seu próprio ambiente.

Essa combinação do Capella e do Docker Model Runner oferece velocidade, controle e a privacidade necessária para criar aplicativos de IA sem depender de APIs externas. Seja para criar um chatbot, analisar dados ou executar fluxos de trabalho com tecnologia de IA, essa configuração garante que tudo o que você criar será eficiente, dimensionável e totalmente sob seu controle.

A única pergunta é: o que você vai construir?



Autor

Postado por Ben Greenberg, desenvolvedor sênior evangelista

Deixar uma resposta