Table of Contents

Class ChatGenerationPlan

Namespace
MailFathom.AI.Chat
Assembly
MailFathom.AI.dll

The validated declaration the chat adapter runs on: which endpoint answers, with which parameters, and what one call may spend.

public sealed class ChatGenerationPlan
Inheritance
ChatGenerationPlan
Inherited Members

Remarks

Built once, at startup, from configuration that has already been proved usable. The adapter therefore never revalidates and holds no defaulting logic of its own.

One endpoint rather than a chain, which is the deliberate difference from the embedding declaration. A fallback embedding endpoint is another route to one vector space — startup proves every endpoint of a chain declares the same geometry, so it cannot change what a vector means. Nothing proves that of two chat models: falling through would silently answer a person in a different model's voice, with different capabilities and different refusals, and nothing above this boundary could tell it had happened. An operator who wants failover puts a gateway in front of one declared endpoint, where the substitution is theirs and is visible to them.

Deliberately holds no credential and no secret reference. What proves the deployment's identity to the endpoint is resolved per request, so a rotated key needs no restart and this value is safe to hold for the lifetime of the process.

Properties

Endpoint

Gets the endpoint every request is sent to.

MaximumMessagesPerRequest

Gets the greatest number of turns one request carries.

MaximumOutputTokens

Gets the greatest number of tokens one answer may occupy.

MaximumRequestCharacters

Gets the greatest number of characters the turns of one request may add up to.

ReasoningEffort

Gets the reasoning effort every call states, or null to send no reasoning parameter at all.

RequestTimeout

Gets the time one request may take before it is abandoned.

Temperature

Gets the sampling temperature, or null to leave the model's own default in place.

TopP

Gets the nucleus-sampling threshold, or null to leave the model's own default in place.

Methods

Create(ChatEndpoint, int, float?, float?, string?, int, int, TimeSpan)

Builds a plan, refusing a declaration no request could be made from.

IsUsableReasoningEffort(string)

Reports whether a reasoning effort is shaped like a level a provider could read.