Installing Witty
Witty is installed in the customer environment and interacts with Witboost and several components (database, LLMs, embedders). Before going through the prerequisites, make sure to read the requirements.
Witty is composed of three microservices:
- Witty, a supervisor that independently chooses the best AI agents it needs to achieve those goals;
- Docs Agent, the default specialized agent with in-depth knowledge of Witboost documentation;
- Autocomplete Agent, a microservice that provides intelligent, context-aware autocomplete suggestions for form fields based on table data.
Prerequisites
Once the database has been provided, make sure to create the database witty
with pgvector
plugin enabled. All schemas and tables will be created automatically.
Witty microservice
In order to install Witty microservice, you have to add environment variables and a config to values.yaml
.
The values.yaml
to edit is the same of Witboost.
Environment variables
The .env
structure is
LLMENGINE_SERVICE_TOKEN=<llm_token>
WITBOOST_DB_HOST=<db_host>
WITBOOST_DB_PASSWORD=<db_password>
WITBOOST_DB_PORT=<db_port>
WITBOOST_DB_USERNAME=<db_username>
WITTY_DBNAME=<db_name>
EMBEDDERENGINE_SERVICE_TOKEN=<embedder_token>
values.yaml
The values.yaml
structure is
...
witty:
enabled: true
configOverride:
database:
host: ${WITBOOST_DB_HOST}
port: ${WITBOOST_DB_PORT}
user: ${WITBOOST_DB_USERNAME}
password: ${WITBOOST_DB_PASSWORD}
database: ${WITTY_DBNAME}
llm:
api_key: ${LLMENGINE_SERVICE_TOKEN}
endpoint: <llm_endpoint>
deployment_name: <llm_deployment_name>
api_version: <llm_api_version>
model: <llm_model>
provider: <llm_provider>
embedder:
api_key: ${EMBEDDERENGINE_SERVICE_TOKEN}
endpoint: <embedder_endpoint>
deployment_name: <embedder_deployment_name>
api_version: <embedder_api_version>
model: <embedder_model>
provider: <embedder_provider>
witboost:
base_url: <witboost_base_url>
docs_agent:
base_url: <docs_agent_base_url>
logger:
level: <DEBUG | INFO | WARNING | ERROR>
...
Docs agent microservice
In order to install Docs Agent microservice, you have to add environment variables and a config to values.yaml
.
The values.yaml
to edit is the same of Witboost.
Environment variables
The .env
structure is
WITBOOST_DB_HOST=<db_host>
WITBOOST_DB_PASSWORD=<db_password>
WITBOOST_DB_PORT=<db_port>
WITBOOST_DB_USERNAME=<db_username>
DOCUMENTATION_AGENT_DBNAME=<db_name>
EMBEDDERENGINE_SERVICE_TOKEN=<embedder_token>
values.yaml
The values.yaml
structure is
...
docs-agent:
enabled: true
configOverride:
database:
host: ${WITBOOST_DB_HOST}
port: ${WITBOOST_DB_PORT}
user: ${WITBOOST_DB_USERNAME}
password: ${WITBOOST_DB_PASSWORD}
database: ${DOCUMENTATION_AGENT_DBNAME}
embedder:
api_key: ${EMBEDDERENGINE_SERVICE_TOKEN}
endpoint: <embedder_endpoint>
deployment_name: <embedder_deployment_name>
api_version: <embedder_api_version>
model: <embedder_model>
provider: <embedder_provider>
logger:
level: <DEBUG | INFO | WARNING | ERROR>
...
At startup, docs agent will calculate the embeddings of the Witboost documentation. It will take 5-10 minutes. Once done, the server will start.
Autocomplete agent microservice
In order to install Autocomplete Agent microservice, you have to add environment variables and a config to values.yaml
.
The values.yaml
to edit is the same of Witboost.
Environment variables
You may set environment variables for observability (see OpenTelemetry documentation), such as:
OTEL_SERVICE_NAME=autocomplete-agent
OTEL_TRACES_EXPORTER=console,otlp
OTEL_METRICS_EXPORTER=console
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=<otel_endpoint>
values.yaml
The values.yaml
structure is
...
autocomplete-agent:
enabled: true
configOverride:
max_attempts: 3
witty:
base_url: <witty_base_url>
...
The Autocomplete Agent provides intelligent suggestions for form fields based on table data. No precomputation is required at startup; the service is ready to use immediately after deployment.