Skip to content

About

Multimodal RAG chatbot with voice input for fashion product search πŸ€–πŸŽ™οΈπŸ‘Ÿβš‘

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

Β 

History

17 Commits

Folders and files

Repository files navigation

TFG - Redesigning the User Experience with Artificial Intelligence: Fashion Industry Specialized Chatbot

Poc III: Multimodal RAG Chatbot (Audio)

Overview

A multimodal RAG (Retrieval-Augmented Generation) chatbot specialized in the fashion domain, designed to process user queries in text or audio and return responses combining text and images. The system retrieves semantically relevant products from a multimodal vector store built from the Store Zara dataset, which includes both product metadata and associated images.

The architecture leverages Chroma as a persistent multimodal vector database, Nomic for text embeddings, and OpenCLIP for image embeddings. Multimodal reasoning is performed using LLaVA 1.6 (7B/13B) and LLaMA 3.2 Vision (11B) served via Ollama. The application integrates an ETL pipeline for dataset preparation, a data ingestion pipeline for indexing, and an interactive Gradio-based user interface.

Demo

Demo_PoC_III_Multimodal RAG Chatbot (text) Demo_PoC_III Multimodal RAG Chatbot (Audio)

Features

  • Multimodal chatbot: supports text and audio input, and returns text + images
  • Multimodal RAG architecture for context-aware responses
  • Persistent multimodal vector store using Chroma
  • Semantic retrieval across product descriptions and images
  • Image embeddings using OpenCLIP
  • Text embeddings using Nomic (nomic-embed-text-v1.5)
  • Large Multimodal Models: LLaVA 1.6 (7B/13B) and LLaMA 3.2 Vision (11B)
  • Voice query support via Whisper (Speech-to-Text)
  • Exploration of Text-to-Speech (TTS) capabilities
  • ETL pipeline for automated dataset preprocessing
  • Support for multiple image results per query
  • Interactive web UI built with Gradio

Architecture

PoC_III High_level_Architecture_Diagram

Sequence Diagram

PoC_III_Sequence_Diagram

Sequence Flow:

  1. User submits a query (text or audio) via the Frontend.
  2. If the input is audio, it is transcribed into text using Whisper.
  3. Frontend sends the query to the Backend.
  4. Backend generates query embeddings (Nomic for text).
  5. Backend performs semantic search in the Multimodal Vector Store (Chroma) using text and image embeddings (OpenCLIP).
  6. Backend retrieves the most relevant product data (text + images).
  7. Backend sends the query along with the retrieved context to the Ollama Multimodal LLM (LLaVA 1.6 or LLaMA 3.2 Vision).
  8. LLM generates a multimodal response based on the provided context.
  9. Backend returns the generated response to the Frontend.
  10. Frontend displays the response (text and multiple images) to the user.

Tech Stack

Backend

Python 3.12

LlamaIndex 0.12.2

Multimodal / Embeddings

OpenCLIP 2.29.0

Nomic-Embeddings 0.6.0

Cohere-Embeddings 0.4.0

Vector Database

ChromaDB 0.5.21

LLM

OllamaLLaVA-13BLlama3.2-Vision

Frontend

Gradio 5.8.0

Infrastructure | Dev Tools

Poetry Dependency-Management

Setup

# 1. Install Poetry (required) - https://python-poetry.org/docs/#installing-with-the-official-installer
# Windows (PowerShell):
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
poetry --version

# 2. Clone the repository
git clone https://github.com/estelacode/poc_III_tfg_multimodal_audio_rag_chatbot.git
cd poc_III_tfg_multimodal_audio_rag_chatbot

# 3. Select the Python interpreter for this project
poetry env use /full/path/to/python
# Example for Windows:
# poetry env use C:\Users\emada\AppData\Local\Programs\Python\Python312


# 4. Install dependencies
poetry install
## Usage
```bash
# Run the project
poetry run python src/entregable_tfg_chatbot/main.py

Project Structure

poc_III_tfg_multimodal_audio_rag_chatbot/
β”œβ”€β”€ data/                     # Data files
β”œβ”€β”€ demo/                     # Demo interface or media
β”œβ”€β”€ notebooks/                # Jupyter notebooks for experiments
β”œβ”€β”€ src/                      # Source code 
β”œβ”€β”€ vectorstore/              # Vector database storage 
β”œβ”€β”€ .env                      # Environment variables (keep secret)
β”œβ”€β”€ .gitignore                # Git ignore rules
β”œβ”€β”€ poetry.lock               # Poetry dependency lock file
β”œβ”€β”€ pyproject.toml            # Poetry configuration and dependencies
└── README.md                 # Project README file

Roadmap

  • Improve retrieval accuracy using hybrid search (semantic + metadata filtering)
  • Implement reranking techniques to refine multimodal results
  • Expand dataset with a larger and more diverse fashion catalog
  • Introduce evaluation metrics (e.g., Recall@k, precision) to measure system performance
  • Improve Speech-to-Text accuracy for more reliable voice queries Implement guardrails and topic filtering for safer and more controlled outputs
  • Deploy the application as a scalable cloud service (Docker + API)

References

πŸ‘‹ Author

Estela Madariaga

About

Multimodal RAG chatbot with voice input for fashion product search πŸ€–πŸŽ™οΈπŸ‘Ÿβš‘

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages