You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Install Ollama from https://ollama.ai# Pull the language model
ollama pull qwen2.5:3b
# Pull the embedding model (uses SentenceTransformer, not Ollama)# Embedding models are downloaded automatically on first use
Configure
cp config.yaml.example config.yaml
# Edit config.yaml with your settings
Run
# Start the server
webaichat serve
# Or with custom host/port
webaichat serve --host 0.0.0.0 --port 9000
Crawl a Website
# Via CLI
webaichat crawl https://example.com
# Via API
curl -X POST http://localhost:9000/api/crawl \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
Upload Documents
# Via API (single file)
curl -X POST http://localhost:9000/api/upload \
-H "Content-Type: multipart/form-data" \
-F "file=@document.pdf"# Via CLI (batch from directory)
webaichat ingest path/to/folder --source "my-docs"
webaichat model pull
webaichat model check
webaichat model info
webaichat model pull --model llama3.2:3b
API Endpoints
Chat
Method
Endpoint
Description
POST
/api/chat
Send a chat message (returns full response)
POST
/api/chat/stream
Streaming chat response (SSE)
GET
/api/sessions/{id}/messages
Get conversation history
Crawl & Upload
Method
Endpoint
Description
POST
/api/crawl
Crawl a website
POST
/api/upload
Upload a document (.pdf, .txt, .md)
Admin Panel (requires auth)
Method
Endpoint
Description
GET
/admin
Admin panel
GET
/login
Login page
POST
/api/admin/login
Authenticate and create session
POST
/api/admin/logout
Clear session and logout
GET
/api/admin/check-auth
Check current auth status
GET
/api/admin/health
System health
GET
/api/admin/stats
Conversation stats
GET
/api/admin/conversations
List conversations
GET
/api/admin/conversations/{id}
Get conversation details
DELETE
/api/admin/conversations/{id}
Delete conversation
GET
/api/admin/export
Export conversations (JSON/CSV)
POST
/api/admin/clear-crawl
Clear all crawl and upload data
GET
/api/admin/documents
List documents
GET
/api/admin/open-folder
Open data folder in file explorer
GET
/api/admin/model-info
List Ollama models
GET
/api/admin/mode
Get deployment mode
POST
/api/admin/mode
Update deployment mode
GET
/api/admin/settings
Get settings
POST
/api/admin/settings
Update settings
POST
/api/admin/settings/reset
Reset to defaults
GET
/api/admin/config/raw
Get raw config YAML
POST
/api/admin/config/raw
Save raw config YAML
GET
/api/admin/source-stats
Indexed chunk counts by source
Widget
Method
Endpoint
Description
GET
/api/widget/config
Widget configuration
POST
/api/widget/config
Update widget settings
GET
/api/widget/health
Widget health check
GET
/config.yaml
Serve config file
Configuration
See config.yaml.example for all settings:
server: Host, port, admin username/password
chat: Deployment mode (local/cloud/hybrid), system prompt, max tokens, top-k retrieval
ollama: Ollama URL, language model name, embedding model
cloud: Cloud provider (openai/anthropic/azure/google/groq/together), model, API key, base URL
crawler: Rate limit, URL skip patterns
widget: Position, color, logo, greeting, theme, quick replies, emoji picker, source citations, and more
logging: Log level
Data Storage
Crawled files: data/crawled/
Uploaded documents: data/docs/
Vector store: In-memory (ChromaDB) — cleared on server restart, re-indexed from data/docs/
Conversations: data/webaichat.db (SQLite)
Logs: data/logs/
Note: The vector store uses an in-memory ChromaDB client to avoid Windows file locking issues. Data is re-indexed on each server restart from files in data/docs/. Embedding models are cached in .cache/huggingface/.
AI-powered chatbot that answers website questions using a local SLM or cloud AI. Deploy on your server with full privacy. Features RAG, widget embed, admin panel, and streaming responses.