local llama.jpg
Cover image for joseph_appsmith

Joseph Petty Verified userVerified user

Sr. Developer Advocate

Appsmith

Local Llms: Connecting Appsmith to Llama3 On an M1 Macbook

Goal

  1. Run Llama3 locally and connect from a local Appsmith server on MacOS
  2. Create an AI powered chat app without sending traffic out of the local network

You can follow along on your local machine with an Appsmith Docker container, or use a cloud hosted instance and install Ollama on the same server. In either case, the AI generation will work without data leaving the local network! 

 

Prerequisites

  • A Self-hosted Appsmith instance (on your local machine, or cloud hosted)

  • Access to install Ollama on the same server

Overview

When it comes to integrating with AI in Appsmith, you have a lot of options! We have native integrations for OpenAI, Anthropic, and Gemini, as well as Appsmith AI, which leverages all three, depending on the task. Then there's the regular REST API connector for integrating with other AI services like HuggingFace, Cohere, etc. 

These are great options for most cases, but they all require sending your data off to a 3rd party and storing data on their server. Many organizations are unable to use these AI services because of privacy regulations and company policy. In cases like this, the best solution is to host the LLM on the same network as the Appsmith server, enabling you to leverage AI without the data leaving your own network. 

In this guide, you'll learn how to run Ollama and the Llama3.2 model locally, and connect from a local Appsmith server. No high end GPU or special hardware is required. I'll be using my M1 Macbook, which is able to run Llama3.2 easily and respond quickly. 

Let's get started! 🤖

  1. Appsmith Server

    For this guide, I'll be hosting Appsmith on my Mac using Docker. However, the same approach should work to connect to Ollama running on a Windows or Linux server. 

    Regardless of your OS, and server location (local or cloud), connecting from Appsmith to Ollama on the same machine is a similar process. 

    Note: This won't work with Appsmith's free cloud. You'll need your own server, where you can install Ollama on the same machine. See the Appsmith docs for details on self-hosting

  2. Llama vs Ollama

    Before we get into installing, let's get this Llama-terminology sorted out. 

    Llama is an LLM model developed by Meta for natural language understanding and generation. It's a series of models with different versions, just like ChatGPT3, 4, o1, etc. In this guide, we'll be using the Llama3.2 model, which is a 2GB download, and contains 3 Billion parameters! 

    Ollama is a tool that allows users to run and manage Llama-based AI models locally on their devices. It has installers for Mac, Windows and Linux, and handles downloading and running different models. 
     

    Install Ollama and Download Llama3.2

    1. Download the Ollama installer, unzip it, and move the Ollama.app file to the Applications folder
    2. Open Ollama and complete the installer by granting drive access
    3. Copy the terminal command shown in the installer and run it in the terminal

    The Llama3.2 model will start downloading. Once it's finished, Ollama will run the model automatically and start a chat right in the terminal! 

    install ollama

    You can also check that the server is running by going to: 

    http://localhost:11434/
    ollama is running

     

  3. Appsmith API

    Next, open a new Appsmith app and go to the Query tab. Add a new API, with the following configuration: 

    Name sendPrompt
    Method POST
    URL http://host.docker.internal:11434/api/generate
    Body type JSON
    Body { "model": "llama3.2", "prompt": "Tell me about Appsmith", "stream": false }
    Timeout (Settings Tab) 60,000 (one minute)

    Notes

    1. To connect outside of the Docker container to other local resources, use host.docker.internal, instead of localhost
    2. The streaming=false parameter tells the server to wait until the model is done generating a response before replying, instead of sending multiple partial responses.

    Run the API, and you should get back a response from the model. 

    Ollama API

     

  4. Adding a Chat UI

    Now we'll add an interface to chat with the model. Drag in an input widget, button, and a text widget, and lay them out like a chat app with the input at the bottom. It helps if you set the input to multi-line, and the text for displaying the reply to fixed height. 

    Set the text widget to display the response from the model using: 

    {{sendPrompt.data.response}}

    Then set the button's onClick event to trigger the sendPrompt API. 

    Lastly, go back to the API, and replace the hard coded message with the value from the input. 

    {{
    {
     "model": "llama3.2",
     "prompt": Input1.text,
     "stream": false
    }
    }}

    Time to test it out! 

    Head back to the UI tab and enter a prompt then click the send button. 

    Llama running locally with Appsmith

Conclusion

That's it! In only a few minutes, you can be up and running with a local LLM connected to Appsmith. From here you can build internal tools with any of our database or API integrations, and add AI text generation, summaries, classification, and other assistive features. 

What's Next? 

For a more ChatGPT-like interface, check out this AI Chat Bot template!