Tip
What is this? This backend centralizes access to multiple state-of-the-art AI models (LLMs, vision, audio, image generation, and embeddings) under a single API. Built with Micronaut and Java 21.
Building with many AI providers is usually messy: different payloads, different endpoints, and different model conventions. Oxlo Vision Backend solves that with one integration layer.
It acts as an API Gateway + Catalog:
- Integrated Catalog (
/api/ias): discover available models by category and retrieve integration metadata. - Universal Proxy (
/v1/*): send standardized requests while the backend routes traffic to the corresponding upstream model on Oxlo.ai.
The backend is split into two main domains.
Discovery services for frontend and external clients.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/ias |
Returns categories and consolidated model catalog. |
GET |
/api/ias/{category}/{model} |
Returns model metadata, route info, and cURL sample. |
Supported categories: chat, reasoning, coding, vision, image-gen, audio, embedding.
Execution layer that forwards standardized calls to model-specific upstream APIs.
| Method | Endpoint | Typical workloads |
|---|---|---|
POST |
/v1/chat/completions |
Chat and reasoning models |
POST |
/v1/detect |
Object detection models |
POST |
/v1/images/generations |
Image generation models |
POST |
/v1/audio/speech |
Text-to-speech models |
POST |
/v1/audio/transcriptions |
Speech-to-text models (multipart/form-data) |
POST |
/v1/embeddings |
Embedding/vector models |
Requirements:
- JDK 21
git clone <repo-url>
cd back-end
./mvnw clean install./mvnw mn:runBackend URL: http://localhost:8080
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.3-70b",
"messages": [
{"role": "user", "content": "Summarize this technical document."}
]
}'curl http://localhost:8080/v1/images/generations \
-H "Content-Type: application/json" \
-d '{
"model": "stable-diffusion-1.5",
"prompt": "An AI robot winning a hackathon",
"size": "1024x1024"
}'curl http://localhost:8080/v1/audio/transcriptions \
-F "file=@sample.mp3" \
-F "model=whisper-large-v3"