248 lines
11 KiB
Go
248 lines
11 KiB
Go
package interaction
|
|
|
|
import (
|
|
"git.cin.su/m/Assistant/contracts/capability"
|
|
"git.cin.su/m/Assistant/contracts/continuity"
|
|
"git.cin.su/m/Assistant/contracts/identity"
|
|
"git.cin.su/m/Assistant/contracts/situation"
|
|
)
|
|
|
|
type ConversationID string
|
|
type HumanUtteranceID string
|
|
type OriginalHumanIntentID string
|
|
type InteractionRelationID string
|
|
type SpeechAct string
|
|
type Channel string
|
|
type ConversationState string
|
|
type InterpretationState string
|
|
type InteractionRelationKind string
|
|
type InterpretationID string
|
|
type SemanticCandidateID string
|
|
type ProjectReferenceID string
|
|
type ProjectReferenceRole string
|
|
type ClarificationState string
|
|
type SemanticApplicability string
|
|
type SemanticCandidateSource string
|
|
type SemanticCandidateSelectionState string
|
|
type InformationRequestKind string
|
|
type ConfigurationCommandKind string
|
|
type SpeakerAttribution struct {
|
|
SourceRef string
|
|
PrincipalCandidate string
|
|
ConfidenceMillis int64
|
|
Authenticated bool
|
|
ObservationRef string
|
|
}
|
|
type IngressModality string
|
|
|
|
const (
|
|
IngressText IngressModality = "TEXT"
|
|
IngressAudio IngressModality = "AUDIO"
|
|
IngressImage IngressModality = "IMAGE"
|
|
IngressVideo IngressModality = "VIDEO"
|
|
IngressDevice IngressModality = "DEVICE"
|
|
)
|
|
|
|
type IngressEnvelope struct {
|
|
ID string
|
|
Modality IngressModality
|
|
SourceRef string
|
|
DeviceRef string
|
|
LocationRef string
|
|
PrincipalID string
|
|
ArtifactRef string
|
|
ObservationRef string
|
|
ProviderRef string
|
|
ModelRef string
|
|
ModelVersion string
|
|
ConfidenceMillis int64
|
|
Degraded bool
|
|
RecordedAtUnixMillis int64
|
|
}
|
|
|
|
func (e IngressEnvelope) Valid() bool {
|
|
return e.ID != "" && e.Modality != "" && e.SourceRef != "" && e.ConfidenceMillis >= 0 && e.ConfidenceMillis <= 1000 && e.RecordedAtUnixMillis > 0 && (!e.Degraded || e.ObservationRef == "")
|
|
}
|
|
|
|
const (
|
|
ChannelWebChat Channel = "WEB_CHAT"
|
|
ConversationOpen ConversationState = "OPEN"
|
|
ConversationArchived ConversationState = "ARCHIVED"
|
|
SpeechActDirective SpeechAct = "DIRECTIVE"
|
|
SpeechActAssertion SpeechAct = "ASSERTION"
|
|
SpeechActDecision SpeechAct = "DECISION"
|
|
SpeechActPreference SpeechAct = "PREFERENCE"
|
|
SpeechActQuestion SpeechAct = "QUESTION"
|
|
SpeechActHypothesis SpeechAct = "HYPOTHESIS"
|
|
SpeechActCorrection SpeechAct = "CORRECTION"
|
|
SpeechActRequestToInvestigate SpeechAct = "REQUEST_TO_INVESTIGATE"
|
|
SpeechActConfirmation SpeechAct = "CONFIRMATION"
|
|
SpeechActRejection SpeechAct = "REJECTION"
|
|
SpeechActCancellation SpeechAct = "CANCELLATION"
|
|
SpeechActConversational SpeechAct = "CONVERSATIONAL"
|
|
SpeechActUnknown SpeechAct = "UNKNOWN"
|
|
InterpretationRecorded InterpretationState = "RECORDED"
|
|
InterpretationInterpreted InterpretationState = "INTERPRETED"
|
|
RelationCorrects InteractionRelationKind = "CORRECTS"
|
|
RelationRespondsTo InteractionRelationKind = "RESPONDS_TO"
|
|
RelationRequestsCognition InteractionRelationKind = "REQUESTS_COGNITION"
|
|
RelationCognitionFallback InteractionRelationKind = "COGNITION_FALLBACK"
|
|
RelationSupersedes InteractionRelationKind = "SUPERSEDES"
|
|
RelationClarifies InteractionRelationKind = "CLARIFIES"
|
|
ProjectRolePrimary ProjectReferenceRole = "PRIMARY"
|
|
ProjectRoleRelated ProjectReferenceRole = "RELATED"
|
|
ProjectRoleReferenceSource ProjectReferenceRole = "REFERENCE_SOURCE"
|
|
ClarificationNotRequired ClarificationState = "NOT_REQUIRED"
|
|
ClarificationRequired ClarificationState = "REQUIRED"
|
|
SemanticApplicable SemanticApplicability = "APPLICABLE"
|
|
SemanticLowConfidence SemanticApplicability = "LOW_CONFIDENCE"
|
|
SemanticMixedIntent SemanticApplicability = "MIXED_INTENT"
|
|
SemanticNeedsBroaderInterpret SemanticApplicability = "NEEDS_BROADER_INTERPRETATION"
|
|
SemanticCandidateClarify SemanticApplicability = "CLARIFICATION_REQUIRED"
|
|
CandidateSourceDeterministic SemanticCandidateSource = "DETERMINISTIC_V2"
|
|
CandidateSourceCognitive SemanticCandidateSource = "COGNITIVE_V1"
|
|
CandidateSelected SemanticCandidateSelectionState = "SELECTED"
|
|
CandidateObserved SemanticCandidateSelectionState = "OBSERVED"
|
|
CandidateRejected SemanticCandidateSelectionState = "REJECTED"
|
|
InformationRequestCapabilityInventory InformationRequestKind = "CAPABILITY_INVENTORY"
|
|
InformationRequestLocalCapabilityInventory InformationRequestKind = "LOCAL_CAPABILITY_INVENTORY"
|
|
InformationRequestCognitiveModelInventory InformationRequestKind = "COGNITIVE_MODEL_INVENTORY"
|
|
InformationRequestCognitiveCurrentModel InformationRequestKind = "COGNITIVE_CURRENT_MODEL"
|
|
InformationRequestCognitiveChannelStatus InformationRequestKind = "COGNITIVE_CHANNEL_STATUS"
|
|
InformationRequestCognitiveRecovery InformationRequestKind = "COGNITIVE_RECOVERY"
|
|
InformationRequestMemoryInventory InformationRequestKind = "MEMORY_INVENTORY"
|
|
InformationRequestTimeDifference InformationRequestKind = "TIME_DIFFERENCE"
|
|
InformationRequestResearchFailureExplanation InformationRequestKind = "RESEARCH_FAILURE_EXPLANATION"
|
|
ConfigurationCommandSet ConfigurationCommandKind = "SET"
|
|
ConfigurationCommandQuery ConfigurationCommandKind = "QUERY"
|
|
)
|
|
|
|
type Conversation struct {
|
|
ID ConversationID
|
|
ActorID identity.ActorID
|
|
PrincipalID identity.PrincipalID
|
|
Channel Channel
|
|
State ConversationState
|
|
CreatedAtUnixMillis int64
|
|
UpdatedAtUnixMillis int64
|
|
}
|
|
type HumanUtterance struct {
|
|
ID HumanUtteranceID
|
|
ConversationID ConversationID
|
|
ActorID identity.ActorID
|
|
PrincipalID identity.PrincipalID
|
|
Channel Channel
|
|
ReceivedAtUnixMillis int64
|
|
CorrelationID string
|
|
Content string
|
|
ContentRef string
|
|
SpeechAct SpeechAct
|
|
InterpretationState InterpretationState
|
|
CorrectsUtteranceID HumanUtteranceID
|
|
}
|
|
type OriginalHumanIntent struct {
|
|
ID OriginalHumanIntentID
|
|
UtteranceID HumanUtteranceID
|
|
RecordedAtUnixMillis int64
|
|
Text string
|
|
}
|
|
|
|
// ConfigurationCommand is Interaction-owned intent. Configuration remains
|
|
// the only owner allowed to materialise a SettingAssignment.
|
|
type ConfigurationCommand struct {
|
|
Kind ConfigurationCommandKind
|
|
PrincipalID string
|
|
DefinitionRef string
|
|
TypedValue string
|
|
TemporaryOverride bool
|
|
SessionRef string
|
|
SourceRef string
|
|
}
|
|
type InteractionRelation struct {
|
|
ID InteractionRelationID
|
|
FromUtteranceID HumanUtteranceID
|
|
ToUtteranceID HumanUtteranceID
|
|
Kind InteractionRelationKind
|
|
RecordedAtUnixMillis int64
|
|
}
|
|
|
|
type UtteranceInterpretation struct {
|
|
ID InterpretationID
|
|
UtteranceID HumanUtteranceID
|
|
SpeechAct SpeechAct
|
|
SecondarySpeechAct SpeechAct
|
|
ConfidenceMillis int64
|
|
Source string
|
|
AssertionVerification string
|
|
RequestedOutcome string
|
|
Clarification ClarificationState
|
|
NeedsCognition bool
|
|
Applicability SemanticApplicability
|
|
SelectionReason string
|
|
RecordedAtUnixMillis int64
|
|
}
|
|
|
|
type SemanticCandidate struct {
|
|
ID SemanticCandidateID
|
|
UtteranceID HumanUtteranceID
|
|
Source SemanticCandidateSource
|
|
SelectionState SemanticCandidateSelectionState
|
|
PrimarySpeechAct SpeechAct
|
|
SecondarySpeechAct SpeechAct
|
|
ConfidenceMillis int64
|
|
Applicability SemanticApplicability
|
|
RequestedOutcome string
|
|
Clarification ClarificationState
|
|
NeedsCognition bool
|
|
SelectionReason string
|
|
CapabilityHints []string
|
|
RecordedAtUnixMillis int64
|
|
}
|
|
|
|
type ProjectReference struct {
|
|
ID ProjectReferenceID
|
|
UtteranceID HumanUtteranceID
|
|
ProjectID situation.ProjectID
|
|
ProjectDisplayName string
|
|
Role ProjectReferenceRole
|
|
Provenance situation.ProjectResolutionProvenance
|
|
ConfidenceMillis int64
|
|
RecordedAtUnixMillis int64
|
|
}
|
|
|
|
type ChatMessageRequest struct {
|
|
ConversationID ConversationID
|
|
Message string
|
|
CorrelationID string
|
|
CorrectsUtteranceID HumanUtteranceID
|
|
}
|
|
|
|
type ChatMessageResponse struct {
|
|
ConversationID ConversationID
|
|
UtteranceID HumanUtteranceID
|
|
OriginalIntentID OriginalHumanIntentID
|
|
SpeechAct SpeechAct
|
|
InterpretationState InterpretationState
|
|
NeedsCognition bool
|
|
FallbackText string
|
|
AssistantName string
|
|
ActiveProjectName string
|
|
ProjectProvenance situation.ProjectResolutionProvenance
|
|
Clarification ClarificationState
|
|
WorkPlanned bool
|
|
PlanningReply string
|
|
ResearchBacked bool
|
|
CapabilityStatus capability.CapabilityResolutionStatus
|
|
CapabilityKind capability.CapabilityKind
|
|
CapabilityHints []capability.CapabilityKind
|
|
RequestedOutcome string
|
|
InformationRequestKind InformationRequestKind
|
|
InterpretationConfidenceMillis int64
|
|
CapabilityGapID capability.CapabilityGapID
|
|
DelegationID string
|
|
DelegationState string
|
|
Reminder *continuity.ProspectiveItem
|
|
GeneratedImageContentType string
|
|
GeneratedImageBase64 string
|
|
}
|