Files

OpenWebUI Backend Service

This is a backend service for OpenWebUI that provides OpenWebUI-compatible API endpoints for chat functionality and model switching.

Features

  • OpenWebUI-compatible API endpoints
  • Ollama API proxy
  • Chat functionality with model switching
  • Support for multiple LLM models (gemma3, llama3.3, llama3.1, mistral, deepseek)

Project Structure

ai_service/
├── models/           # Model and chat services
│   ├── model_service.py
│   ├── chat_service.py
│   └── model_parameters.py
├── embeddings/       # Document processing for RAG
│   └── document_service.py
├── openwebui_api.py  # OpenWebUI-compatible API endpoints
├── config.py         # Configuration settings
├── api.py            # FastAPI application
└── deploy.sh         # Deployment script

Setup Instructions

  1. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Copy .env.example to .env and update the values:

    cp .env.example .env
    # Edit the .env file with appropriate values
    
  4. Run the service:

    python ../run_ai_service.py
    

API Documentation

Once the service is running, you can access the API documentation at:

Deployment

To deploy the service:

  1. Make the deployment script executable:

    chmod +x deploy.sh
    
  2. Run the deployment script:

    ./deploy.sh
    

This will start the service on port 5252 using uvicorn with nohup.

API Endpoints

Health Check

  • GET /health - Check if the service is running

OpenWebUI-Compatible Endpoints

  • GET /api/models - Get available models in OpenWebUI format
  • POST /api/chat/completions - OpenAI-compatible chat completions endpoint

Ollama API Proxy

  • POST /ollama/api/generate - Proxy to Ollama's generate endpoint

Original API Endpoints

  • POST /chats - Create a new chat
  • GET /chats/user/{user_id} - Get all chats for a user
  • GET /chats/{chat_id} - Get a chat by ID
  • POST /chats/{chat_id}/messages - Send a message to a chat
  • POST /chats/{chat_id}/members/{user_id} - Add a user to a team chat
  • DELETE /chats/{chat_id}/members/{user_id} - Remove a user from a team chat
  • DELETE /chats/{chat_id} - Delete a chat