OpenViSTAI · Agents · Blockchain · Crypto
Menu
Local & Self-hosted AI

Local Multimodal AI Chat

Local Multimodal AI Chat is a self-hosted Python and Streamlit application for conversations with text, images, PDFs and audio. It routes chat to local models through Ollama or, optionally, to the OpenAI API; PDF questions use retrieval with Chroma, Ollama embeddings and user-provided documents, while Whisper transcribes audio for chat.

Independent OpenViST project profile, based on linked sources.

Local Multimodal AI Chat — OpenViST project profile in Local & Self-hosted AI.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use it when you want a self-hosted chat workspace that combines local model conversations with document retrieval, image input or transcribed voice input.

Who it is for

  • People who want to run a multimodal chat interface on their own machine using Ollama.
  • Users who want to ask questions about their own PDFs through retrieval-augmented generation.
  • Developers looking for a Python, Streamlit and Docker project to configure or extend.

Documented uses

  • Chat with text using a local Ollama model or switch to the OpenAI API.
  • Upload PDFs and query their contents using retrieval backed by Chroma and Ollama embeddings.
  • Send images to vision-capable models such as LLaVA.
  • Record or upload audio and use Whisper transcription as conversation input.
  • Keep multi-session chat history, messages and settings in SQLite.
Before you choose

Requirements & limits

The repository is public and licensed under GPL-3.0. The documented application is self-hosted; using the optional OpenAI endpoint requires an API key.

  • The application interface is Streamlit; Docker Compose and manual Python installation are documented setup routes.
  • PDF retrieval requires an Ollama embedding model such as nomic-embed-text; image chat requires a vision-capable model such as LLaVA.
  • Audio input uses Whisper; the README identifies ffmpeg for converting webm audio to wav.
  • SQLite stores sessions, messages and settings, while Chroma stores the PDF retrieval index.
  • The README describes a test suite for selected contract-level components and says UI, audio and real model calls are tested manually.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Set up the application with Docker Compose

Start the Streamlit application and prepare Ollama models for the documented chat capabilities.

Before you start

  • Docker Compose
  • A model save path to set in docker-compose.yml
  • Ollama models pulled for the desired tasks
  • An OpenAI API key only if using the optional OpenAI endpoint

Steps

  1. Copy .env.example to .env; add an OpenAI key only if you plan to use that endpoint.

  2. Set the model save path in docker-compose.yml.

  3. Run docker compose up and open the app at http://0.0.0.0:8501.

  4. Enter /pull MODEL_NAME in the chat bar to pull models; use an embedding model for PDF retrieval and a vision model for image chat.

Expected outcome

The Streamlit app is running with the selected Ollama models available for chat; PDF retrieval and image chat have their respective required model types.

Guide limitations

  • The README says to remove the deploy section from the compose file when running without a GPU.
  • The optional OpenAI endpoint requires an API key.
  • The repository recommends installing Ollama locally on Windows because running it inside Docker is slow there.
Source-based practical guide

Install and launch the app manually

Prepare the Python application, initialize its SQLite database and launch the Streamlit interface.

Before you start

  • Ollama installed
  • Python environment; the project notes development on Python 3.10.12
  • The repository requirements files

Steps

  1. Install Ollama.

  2. Create a Python virtual environment.

  3. Upgrade pip, install requirements.txt, and install the documented CPU builds of torch, torchvision and torchaudio.

  4. Run python3 src/database_operations.py to initialize SQLite, then run streamlit run src/app.py.

  5. Pull the Ollama models needed for the intended tasks.

Expected outcome

The documented manual setup initializes the chat database and launches the Streamlit application with Ollama available for model use.

Guide limitations

  • The OpenAI endpoint requires a key in .env; local-only use can leave it empty.
  • PDF retrieval requires an embedding model, and image chat requires a vision-capable model.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
14 October 2026
Original website title
Leon-Sander/Local-Multimodal-AI-Chat · Official homepage title · retained in its source language