Knowledge Base
Knowledge base setup and configuration
Overview
The Knowledge Base provides self-service articles for customers. Articles are organized in categories and support semantic search using vector embeddings.
Creating Categories
Categories organize articles hierarchically.
POST /api/v1/kb/categories/{
"name": "Getting Started",
"description": "Introductory articles",
"parent": null,
"is_public": true
}Creating Articles
POST /api/v1/kb/articles/{
"title": "How to create a ticket",
"content": "Article content in markdown...",
"category": 1,
"is_public": true,
"is_featured": false
}Article Fields
| Field | Type | Description |
|---|---|---|
| title | string | Article title |
| slug | string | Auto-generated URL slug |
| content | text | Article body (markdown) |
| excerpt | string | Short summary |
| category | FK | Parent category |
| is_public | bool | Visible to customers |
| is_featured | bool | Show on homepage |
| seo_title | string | SEO title override |
| seo_description | string | Meta description |
Semantic Search
Articles are indexed with vector embeddings for semantic search. Requires Gemini API key in .env:
GEMINI_API_KEY=your-key
EMBEDDING_MODEL=gemini-embedding-001Generate embeddings for existing articles:
docker compose exec api python manage.py generate_kb_embeddingsSearch endpoint:
POST /api/v1/kb/articles/search/{
"query": "how do I reset my password"
}Public Access
Public articles are accessible without authentication:
GET /api/v1/public/kb/articles/
GET /api/v1/public/kb/search/?q=queryAnalytics
View article analytics:
GET /api/v1/kb/articles/{id}/analytics/Returns view count, helpful/not helpful counts.