Configuration Guide
The Zammad-AI service is configured using a combination of YAML files, environment variables, and .env files.
Configuration Hierarchy
The application loads configuration in the following order of priority (highest first):
- CLI Arguments
- Environment Variables (prefixed with
ZAMMAD_AI_, e.g.,ZAMMAD_AI_GENAI__CHAT_MODEL) - .env File
- config.yaml
- Defaults defined in the source code (
zammad-ai/app/core/settings/)
Core Configuration Sections
Use Case
Identifies the specific deployment or purpose of the service.
usecase.name: Machine-readable name.usecase.description: Human-readable description.
GenAI
Configures the interface to the Large Language Model.
sdk: Currently supportsopenai.chat_model: The model used for generating responses (e.g.,gpt-4o).embeddings_model: The model used for vector search.temperature: Creativity setting (0.0 recommended for consistent results).
Zammad
Connectivity settings for the Zammad instance.
type:api(standard REST) oreai(Enterprise Application Integration).base_url: URL of your Zammad instance.timeout: Request timeout in seconds.max_retries: Number of retries for failed requests.
Qdrant
Vector database settings for knowledge retrieval.
host: URL of the Qdrant instance.collection_name: The vector collection to query.vector_dimension: Must match the embedding model output (e.g., 1024 or 1536).
Kafka
Event streaming configuration.
broker_url: Kafka bootstrap server.topic: Topic to listen for new ticket events.group_id: Consumer group identifier.security: mTLS security settings (optional).
Triage
Defines the business logic for categorization and automation.
categories: List ofidandnamepairs for classification.actions: List of available automated actions.action_rules: Mapping of categories and conditions to actions.prompts: Source of LLM prompt templates (langfuse,file, orstring).
Secrets Management
Sensitive information must NOT be placed in config.yaml. Use context-specific environment variables or a .env file:
env
# OpenAI
OPENAI_API_KEY=sk-...
# Zammad
ZAMMAD_AI_ZAMMAD__AUTH_TOKEN=...
ZAMMAD_AI_ZAMMAD__RSS_FEED_TOKEN=...
# Qdrant
ZAMMAD_AI_QDRANT__API_KEY=...
# Langfuse (if prompts.type is "langfuse")
LANGFUSE_PUBLIC_KEY=...
LANGFUSE_SECRET_KEY=...
LANGFUSE_HOST=...