Skip to main content

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.

note

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.

note

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.

note

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.