Skip to content

Your First Query

Navigate to the Admin UI in your browser:

http://localhost/config-ui

The Admin UI is your central control panel for managing FluidRAG configuration.

All API keys and credentials are stored in etcd and managed through the Admin UI — never in .env files.

  1. Open the Admin UI
  2. Navigate to Settings
  3. In the Secrets section, add your API keys:
SecretRequiredDescription
OPENAI_API_KEYYes*OpenAI API key for embeddings and chat completions
FALKORDB_PASSWORDIf auth enabledPassword for your FalkorDB instance
SLACK_BOT_TOKENNoFor Slack agent (xoxb-...)
SLACK_USER_TOKENNoFor Slack search (xoxp-...)
JIRA_CLIENT_IDNoFor Jira OAuth integration
JIRA_CLIENT_SECRETNoFor Jira OAuth integration
GITHUB_TOKENNoGitHub PAT for code/issue search

* At least one LLM provider API key is required. OpenAI is the default.

FluidRAG supports multiple LLM providers for different pipeline layers. Configure them under Settings → LLM:

LayerPurposeDefault
Logic LayerAgent executionopenai / gpt-4o-mini
Route LayerQuery classificationopenai / gpt-4o-mini
Synthesis LayerFinal response generationopenai / gpt-4o-mini
Entity ExtractionIngestion pipelineopenai / gpt-4o-mini
EmbeddingDense embeddingsopenai / text-embedding-3-large

Each layer can use a different provider and model. Configuration changes take effect immediately via hot-reload — no restart required.

FluidRAG exposes an OpenAI-compatible chat completions endpoint. Use curl or any OpenAI client:

Terminal window
curl -X POST http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "What is FluidRAG?"}],
"stream": false
}'

For streaming responses:

Terminal window
curl -X POST http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "What is FluidRAG?"}],
"stream": true
}'

The response follows the standard OpenAI chat.completion.chunk SSE format.

Every query passes through a 5-phase workflow:

  1. Classify — Rule-based + LLM classification of query intent
  2. Route — Select relevant agents (RAG, Jira, Slack, GitHub, etc.)
  3. Execute — Parallel agent execution with individual timeouts
  4. Review — Check for partial results, retry if needed (max 2 iterations)
  5. Synthesize — Generate final response with citations and sources

Before the RAG agent can answer questions about your data, you need to ingest documents:

  1. Open the Admin UI at http://localhost/config-ui
  2. Navigate to Ingestion
  3. Enter a directory path (accessible to the Docker containers via volume mounts)
  4. Select a chunking strategy:
    • Semantic — Fast, good for general documents
    • Semantic (LlamaIndex) — Context-aware, good for mixed content
    • Propositional — High precision, best for technical documents (slower, higher LLM cost)
  5. Click Start Ingestion

Monitor progress in the RQ Dashboard at http://localhost:9181.

ServiceURLDescription
APIhttp://localhost:8000OpenAI-compatible chat completions
Admin UIhttp://localhost/config-uiConfiguration, secrets, agents, prompts
Gatewayhttp://localhostNginx reverse proxy (HTTP)
RQ Dashboardhttp://localhost:9181Background job monitoring