Relatude Help

35.1 A license is not needed

Relatude.DB runs fully without a license. The engine, the admin UI and everything else in this manual work the same with or without one. Nothing expires and nothing is held back. A license only connects an installation to Relatude Services. The license is free; you pay for the credits the hosted services use.

Without an API key, nothing is charged and the installation does not report in. On a server, db.Services.Imaging, FileToText, Translation and IPLookup point at the hosted services from the start, but a call throws, saying why, before anything leaves the server. db.Services.AI and db.Services.SMS exist only when AISettings and SMSSettings are set.

Every service is an interface. Implement it against your own vendor account, a model on your own hardware or any code you like, and name your class in the database's settings (§35.2). The code that calls the service does not change.

Service Reached through Interface Settings Paid from
Embeddings and completions db.Services.AI IAIProvider AISettings ai_embeddings, ai_completion
Image AI db.Services.Imaging IImagingProvider ImagingSettings ai_image
Files to text, OCR included db.Services.FileToText IFileToTextProvider FileToTextSettings filetotext
Translation db.Services.Translation ITranslationProvider TranslationSettings translation
IP lookup and the bot check db.Services.IPLookup IIPLookupProvider IPLookupSettings free; the license needs the feature iplookup
Text messages db.Services.SMS ISMSProvider SMSSettings sms
Admin UI sign-in with a Relatude account the login page none AllowLicenseeAdminLogin free

The interfaces are in the namespaces Relatude.DB.AI, Relatude.DB.Imaging, Relatude.DB.FileToText, Relatude.DB.Translation, Relatude.DB.IPLookup and Relatude.DB.SMS. For embeddings and completions, AISettings also offers the built-in providers AzureAI, OpenAI (any OpenAI-compatible endpoint, a local Ollama included) and Anthropic (§12.1). The admin UI always has the master login as well (§12).

Text messages go through the hosted service when SMSSettings is set:

"SMSSettings": { "TypeName": "RelatudeServices" }
var quote = await db.Services.SMS.QuoteAsync("+4712345678", text);   // parts and credits; nothing is sent
var receipt = await db.Services.SMS.SendAsync("+4712345678", text);

Quote a template before you send it to many people. One character outside the GSM alphabet, such as a curly quote or an emoji, can double the price. SendBatchAsync sends many messages in one call, all of them or none.