OwlChat (Open WebUI) is an open-source, customizable, and feature-rich web interface designed for interacting with Large Language Models (LLMs). It provides a user-friendly platform that supports various LLMs, including local models and those from providers like OpenAI, Google, Azure, and Amazon Web Services.
OwlChat is an extensible, feature-rich, and user-friendly self-hosted AI platform. It supports various LLM runners like Ollama and OpenAI-compatible APIs, with a built-in inference engine for RAG, making it a powerful AI deployment solution. You can get started with Open WebUI by following the guides and resources available on their website.
Florida Atlantic Research Computing is offering this beta service to users to test and provide feedback.
Access Open WebUI by visiting https://chat.hpc.fau.edu/

OpenWeb UI API:
Open WebUI safeguards its API through features like mandatory authentication using API keys, endpoint restrictions, backend routing for Ollama API requests, granular user permissions, and the ability to configure environment variables to further restrict access, ensuring that only authorized users can interact with the AI models through the API.
Swagger Documentation:
Users are recommended to test out the API using the provided Swagger docs. https://chat.hpc.fau.edu/docs

Creating an API Key:
- Login to https://chat.hpc.fau.edu/
- Click on the profile icon on the bottom left or top right
- Click "Account"
- Click Show next to the API Keys header and click create API key.

Example Calls:
Example Completion / Chat:
List Models:
Request:
#!/bin/bash
OPENAI_API_KEY=YOURAPITOKENFROMSETTINGS
curl -X 'GET' \
'https://chat.hpc.fau.edu/openai/models' \
-H 'accept: application/json' \
-H "Authorization: Bearer $OPENAI_API_KEY" | jq
Response:
{
"data": [
{
"id": "llava",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "llava",
"openai": {
"id": "llava",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "Llama-3.2-11B-Vision-Instruct",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "Llama-3.2-11B-Vision-Instruct",
"openai": {
"id": "Llama-3.2-11B-Vision-Instruct",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "gemma2",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "gemma2",
"openai": {
"id": "gemma2",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "codestral",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "codestral",
"openai": {
"id": "codestral",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "Llama-3.2-3B-Instruct",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "Llama-3.2-3B-Instruct",
"openai": {
"id": "Llama-3.2-3B-Instruct",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "mistral-large",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "mistral-large",
"openai": {
"id": "mistral-large",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "tinyllama",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "tinyllama",
"openai": {
"id": "tinyllama",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "qwen2",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "qwen2",
"openai": {
"id": "qwen2",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
},
{
"id": "microsoft/phi-4",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"name": "microsoft/phi-4",
"openai": {
"id": "microsoft/phi-4",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
"urlIdx": 1
}
]
}
Chat Completions:
Request:
#!/bin/bash
OPENAI_API_KEY=YOURAPITOKENFROMSETTINGS
curl https://chat.hpc.fau.edu/openai/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "microsoft/phi-4",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}' | jq
Response:
{
"id": "chatcmpl-a3328b366e3848699e0a353e23080987",
"created": 1740508508,
"model": "microsoft/phi-4",
"object": "chat.completion",
"system_fingerprint": null,
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "Hello! How can I assist you today? Let me know if there's anything specific you'd like help with. 😊",
"role": "assistant",
"tool_calls": null,
"function_call": null,
"refusal": null,
"reasoning_content": null
}
}
],
"usage": {
"completion_tokens": 26,
"prompt_tokens": 19,
"total_tokens": 45,
"completion_tokens_details": null,
"prompt_tokens_details": null
},
"service_tier": null,
"prompt_logprobs": null
}
Example Text-To-Voice using OwlChat.
#!/bin/bash
OPENAI_API_KEY=YOURAPITOKENFROMSETTINGS
OPENAPI_BASE_URL=https://chat.hpc.fau.edu/api
curl $OPENAPI_BASE_URL/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Today is a wonderful day to build something people love!",
"voice": "alloy",
"response_format": "mp3",
"speed": 1.0
}' \
--output speech.mp3
Sample Using OpenAI Python Library:
# This is a sample Python to use owlChat's api using openai's python library
#!pip install openai
import os
import openai
from openai import OpenAI
OPENAI_API_KEY="sk-KEYFROMOWLCHAT"
if __name__ == '__main__':
openai.base_url="https://chat.hpc.fau.edu"
openai.api_key=OPENAI_API_KEY
client = OpenAI(api_key=OPENAI_API_KEY, base_url="https://chat.hpc.fau.edu/openai")
# List the models
models = client.models.list()
print(models)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "Say this is a test",
}
],
model="Llama-3.2-3B-Instruct",
)
print(chat_completion)
# See PyCharm help at https://www.jetbrains.com/help/pycharm/