You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
A decision engine choice: the built-in Decision Engine or TypeSafe's Jev, selected with UseBuiltInDecisionEngine or UseJevDecisionEngine. Exactly one engine is in force at a time; until one is chosen, decisions go to the built-in engine
Jev support: an API key (encrypted at rest and kept out of the causation chain), a model defaulting to jev-latest and an endpoint defaulting to https://api.typesafe.ai. Questions that share a context are sent as one request
The built-in engine's address and model are deployment configuration under Cratis:AI:Decisions:BuiltIn, bound through IOptions<BuiltInDecisionEngineOptions>
DecisionEngineSettings.CurrentDecisionEngine returns the engine in force, its model and a cached health check for a settings page. The API key is never returned
Decision usage: RecordDecisionUsage and the DecisionUsageByDay read model, with DecisionUsageForLastThirtyDays
A DecisionRequest can carry the question being asked, a description of each choice and a topic. The Decision Engine includes the question and descriptions in its prompt; without them it keeps the generic question
CratisAIBuilder.WithDecisions() registers decision making, and WithDecisions<TResolver>() replaces how the engine is resolved
Changed
DecisionResult.Provider is replaced by DecisionResult.Engine, a DecisionEngineType, and the decision.engine telemetry tag replaces the provider tag
Removed
AddDecisionEngineProvider and ReconfigureDecisionEngineProvider, and decision engines as a kind of configured AI provider. Choose the engine with the new commands instead
IDecisionProviderResolver and IDecisionProviderClient, replaced by IDecisionEngineResolver and IDecisionEngineClient