package cognitive import ( "git.cin.su/m/Assistant/contracts/authority" "git.cin.su/m/Assistant/contracts/capability" "git.cin.su/m/Assistant/contracts/identity" "git.cin.su/m/Assistant/platform/ids" ) type RequestID ids.ID type ContextExcerptID ids.ID type ContractVersion string type Sensitivity string type FinishReason string const ( CreatorAdvisoryV1 ContractVersion = "creator-advisory-v1" SensitivityPublic Sensitivity = "PUBLIC" SensitivityPrivateAllowed Sensitivity = "PRIVATE_ALLOWED" SensitivitySecret Sensitivity = "SECRET" SensitivityUnknown Sensitivity = "UNKNOWN" FinishCompleted FinishReason = "COMPLETED" FinishLengthLimit FinishReason = "LENGTH_LIMIT" FinishContentRejected FinishReason = "CONTENT_REJECTED" FinishProviderUnavailable FinishReason = "PROVIDER_UNAVAILABLE" FinishTimeout FinishReason = "TIMEOUT" FinishInvalidProviderResponse FinishReason = "INVALID_PROVIDER_RESPONSE" ) type ContextExcerpt struct { ID ContextExcerptID SourceKind string SourceID string Revision int64 Sensitivity Sensitivity Text string } // AdvisoryRequest is assembled by a trusted gateway. Actor, Principal, Scope // and Binding fields must never be accepted as browser-selected authority. type AdvisoryRequest struct { Version ContractVersion RequestID RequestID ActorID identity.ActorID PrincipalID identity.PrincipalID ScopeID authority.ScopeID Message string Context []ContextExcerpt Locale string MaxOutputBytes int ProviderBindingID capability.CapabilityBindingID ProviderBindingRevision int64 } type ProviderUsage struct { InputUnits int64 OutputUnits int64 } type AdvisoryResponse struct { Version ContractVersion RequestID RequestID ProviderBindingID capability.CapabilityBindingID ProviderBindingRevision int64 AdvisoryText string ReferencedExcerptIDs []ContextExcerptID FinishReason FinishReason Usage *ProviderUsage }