Interface Pilot
- All Superinterfaces:
org.aeonbits.owner.Config, EngineProperties<Pilot>, Serializable
@Sources({"system:properties","file:src/main/resources/properties/custom.properties","file:src/main/resources/properties/default/custom.properties","classpath:custom.properties"})
public interface Pilot
extends EngineProperties<Pilot>
Configuration for optional SHAFT Pilot AI providers.
AI is disabled by default. Credentials are never configured here; providers resolve them from the named environment variables only after the caller has explicitly enabled AI and approved the relevant processing location.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classFluent current-thread overrides for Pilot configuration.Nested classes/interfaces inherited from interface org.aeonbits.owner.Config
org.aeonbits.owner.Config.ConverterClass, org.aeonbits.owner.Config.DecryptorClass, org.aeonbits.owner.Config.DefaultValue, org.aeonbits.owner.Config.DisableableFeature, org.aeonbits.owner.Config.DisableFeature, org.aeonbits.owner.Config.EncryptedValue, org.aeonbits.owner.Config.HotReload, org.aeonbits.owner.Config.HotReloadType, org.aeonbits.owner.Config.Key, org.aeonbits.owner.Config.LoadPolicy, org.aeonbits.owner.Config.LoadType, org.aeonbits.owner.Config.PreprocessorClasses, org.aeonbits.owner.Config.Separator, org.aeonbits.owner.Config.Sources, org.aeonbits.owner.Config.TokenizerClass -
Method Summary
Modifier and TypeMethodDescriptionintintbooleanenabled()booleanintintintintbooleanprovider()booleanintdefault Pilot.SetPropertyset()Returns a fluent builder for current-thread overrides.booleanint
-
Method Details
-
enabled
@Key("pilot.ai.enabled") @DefaultValue("false") boolean enabled()- Returns:
- whether optional AI execution is enabled
-
provider
- Returns:
- selected provider identifier
-
localConsent
@Key("pilot.ai.consent.local") @DefaultValue("false") boolean localConsent()- Returns:
- whether local inference is approved
-
onPremConsent
@Key("pilot.ai.consent.onPrem") @DefaultValue("false") boolean onPremConsent()- Returns:
- whether explicitly classified on-prem inference is approved
-
remoteConsent
@Key("pilot.ai.consent.remote") @DefaultValue("false") boolean remoteConsent()- Returns:
- whether remote inference is approved
-
allowedEvidenceCategories
- Returns:
- comma-separated approved evidence categories
-
telemetryEnabled
@Key("pilot.ai.telemetry.enabled") @DefaultValue("false") boolean telemetryEnabled()- Returns:
- whether optional external telemetry is enabled
-
timeoutSeconds
@Key("pilot.ai.timeoutSeconds") @DefaultValue("30") int timeoutSeconds()- Returns:
- maximum provider timeout in seconds
-
maxRequestBytes
@Key("pilot.ai.maxRequestBytes") @DefaultValue("1048576") int maxRequestBytes()- Returns:
- maximum serialized request size
-
maxInputTokens
@Key("pilot.ai.maxInputTokens") @DefaultValue("16000") int maxInputTokens()- Returns:
- maximum estimated input tokens
-
maxOutputTokens
@Key("pilot.ai.maxOutputTokens") @DefaultValue("2000") int maxOutputTokens()- Returns:
- maximum output tokens
-
maxCostUsd
- Returns:
- maximum accepted provider-reported cost in USD
-
retryMaxAttempts
@Key("pilot.ai.retryMaxAttempts") @DefaultValue("2") int retryMaxAttempts()- Returns:
- maximum provider execution attempts
-
maxConcurrency
@Key("pilot.ai.maxConcurrency") @DefaultValue("2") int maxConcurrency()- Returns:
- maximum concurrent calls per provider
-
circuitBreakerFailureThreshold
@Key("pilot.ai.circuitBreaker.failureThreshold") @DefaultValue("3") int circuitBreakerFailureThreshold()- Returns:
- failures required to open the circuit
-
circuitBreakerCooldownSeconds
@Key("pilot.ai.circuitBreaker.cooldownSeconds") @DefaultValue("60") int circuitBreakerCooldownSeconds()- Returns:
- circuit-open cooldown in seconds
-
redactionSelectors
@Key("pilot.ai.redaction.selectors") @DefaultValue("input[type=password],[autocomplete=current-password],[autocomplete=new-password]") String redactionSelectors()- Returns:
- comma-separated CSS selectors to redact
-
redactionAttributes
@Key("pilot.ai.redaction.attributes") @DefaultValue("authorization,cookie,set-cookie,password,passwd,secret,token,api-key,apikey,access-key") String redactionAttributes()- Returns:
- comma-separated structured or DOM attributes to redact
-
redactionPatterns
- Returns:
- double-semicolon-separated custom regular expressions
-
openAiEndpoint
@Key("pilot.ai.openai.endpoint") @DefaultValue("https://api.openai.com/v1/responses") String openAiEndpoint()- Returns:
- OpenAI Responses endpoint
-
openAiModel
- Returns:
- configured OpenAI model
-
openAiApiKeyEnvironmentVariable
@Key("pilot.ai.openai.apiKeyEnvironmentVariable") @DefaultValue("OPENAI_API_KEY") String openAiApiKeyEnvironmentVariable()- Returns:
- environment variable containing the OpenAI credential
-
openAiProcessingLocation
@Key("pilot.ai.openai.processingLocation") @DefaultValue("remote") String openAiProcessingLocation()- Returns:
- explicit OpenAI endpoint processing location
-
anthropicEndpoint
@Key("pilot.ai.anthropic.endpoint") @DefaultValue("https://api.anthropic.com/v1/messages") String anthropicEndpoint()- Returns:
- Anthropic Messages endpoint
-
anthropicModel
- Returns:
- configured Anthropic model
-
anthropicApiKeyEnvironmentVariable
@Key("pilot.ai.anthropic.apiKeyEnvironmentVariable") @DefaultValue("ANTHROPIC_API_KEY") String anthropicApiKeyEnvironmentVariable()- Returns:
- environment variable containing the Anthropic credential
-
anthropicProcessingLocation
@Key("pilot.ai.anthropic.processingLocation") @DefaultValue("remote") String anthropicProcessingLocation()- Returns:
- explicit Anthropic endpoint processing location
-
anthropicVersion
- Returns:
- Anthropic API contract version
-
geminiEndpoint
@Key("pilot.ai.gemini.endpoint") @DefaultValue("https://generativelanguage.googleapis.com/v1beta/models") String geminiEndpoint()- Returns:
- Gemini models endpoint
-
geminiModel
- Returns:
- configured Gemini model
-
geminiApiKeyEnvironmentVariable
@Key("pilot.ai.gemini.apiKeyEnvironmentVariable") @DefaultValue("GEMINI_API_KEY") String geminiApiKeyEnvironmentVariable()- Returns:
- environment variable containing the Gemini credential
-
geminiProcessingLocation
@Key("pilot.ai.gemini.processingLocation") @DefaultValue("remote") String geminiProcessingLocation()- Returns:
- explicit Gemini endpoint processing location
-
ollamaEndpoint
@Key("pilot.ai.ollama.endpoint") @DefaultValue("http://127.0.0.1:11434/api/chat") String ollamaEndpoint()- Returns:
- Ollama chat endpoint
-
ollamaModel
- Returns:
- configured Ollama model
-
ollamaProcessingLocation
- Returns:
- explicit Ollama endpoint processing location
-
ollamaApiKeyEnvironmentVariable
@Key("pilot.ai.ollama.apiKeyEnvironmentVariable") @DefaultValue("") String ollamaApiKeyEnvironmentVariable()- Returns:
- optional environment variable containing an on-prem Ollama gateway credential
-
ollamaApiKeyHeader
- Returns:
- optional Ollama gateway credential header
-
ollamaApiKeyPrefix
- Returns:
- optional Ollama gateway credential prefix
-
set
Returns a fluent builder for current-thread overrides.- Specified by:
setin interfaceEngineProperties<Pilot>- Returns:
- current-thread property builder
-