Skip to content

Configuration

Configuration binds to the Cratis:Prompter section. Environment variables use __ as the delimiter.

SettingEnvironment variableDefault
Postgres connection stringCratis__Prompter__ConnectionStringlocalhost, database/user/password prompter
Docs site to ingestCratis__Prompter__DocsSiteUrlhttps://cratis.io
Ingestion path exclusionsCratis__Prompter__Ingestion__ExcludedPathSegments__0…client-snippets, api-reference
Interaction retention (days)Cratis__Prompter__RetentionDays90
Discord bot tokenCratis__Prompter__Discord__Token-
Ask channelCratis__Prompter__Discord__AskChannelId-
Help forum channel (auto-reply)Cratis__Prompter__Discord__HelpForumChannelId-
Anthropic API keyCratis__Prompter__Anthropic__ApiKey (or ANTHROPIC_API_KEY)-
Answer modelCratis__Prompter__Anthropic__Modelclaude-sonnet-5
Voyage API keyCratis__Prompter__Voyage__ApiKey-
Embedding modelCratis__Prompter__Voyage__Modelvoyage-4
Embedding batch sizeCratis__Prompter__Voyage__BatchSize128
Embedding dimensionsCratis__Prompter__Voyage__Dimensions1024 (must match the database schema)
Max passages per answerCratis__Prompter__Answering__MaxPassages8
Refusal thresholdCratis__Prompter__Answering__MinScore0.02
Max answer tokensCratis__Prompter__Answering__MaxOutputTokens1024

API keys are never committed - use environment variables or a git-ignored Source/appsettings.Development.json.

CommandDoes
dotnet runRuns the Discord bot
dotnet run -- indexOne ingestion pass; prints a summary (pages, embedded, unchanged, removed, duration)
dotnet run -- ask "<question>"Answers from the terminal; add --verbose to print retrieved passages; exits non-zero on refusal
EndpointDoes
GET /healthzLiveness/readiness - database and gateway connectivity
POST /reindexTriggers an ingestion pass; requires the shared-secret header; returns 409 if a run is already in progress