sinch.domains.conversation.models.v1.sinch_events.smart_conversations package

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.AnalysisResult(
*,
ml_sentiment_result: Annotated[list[MachineLearningSentimentResult], Len(min_length=0, max_length=None)] | None = None,
ml_nlu_result: Annotated[list[MachineLearningNLUResult], Len(min_length=0, max_length=None)] | None = None,
ml_image_recognition_result: Annotated[list[MachineLearningImageRecognitionResult], Len(min_length=0, max_length=None)] | None = None,
ml_pii_result: Annotated[list[MachineLearningPIIResult], Len(min_length=0, max_length=None)] | None = None,
ml_offensive_analysis_result: Annotated[list[OffensiveAnalysis], Len(min_length=0, max_length=None)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

The analysis provided by the Smart Conversations machine learning engine(s). The contents of the object are determined by the functionalities that are enabled for your solution.

Parameters:
ml_sentiment_result: Annotated[list[MachineLearningSentimentResult], Len(min_length=0, max_length=None)] | None
ml_nlu_result: Annotated[list[MachineLearningNLUResult], Len(min_length=0, max_length=None)] | None
ml_image_recognition_result: Annotated[list[MachineLearningImageRecognitionResult], Len(min_length=0, max_length=None)] | None
ml_pii_result: Annotated[list[MachineLearningPIIResult], Len(min_length=0, max_length=None)] | None
ml_offensive_analysis_result: Annotated[list[OffensiveAnalysis], Len(min_length=0, max_length=None)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.DocumentFieldClassification(
*,
result: Annotated[list[Dict[str, DocumentFieldData]], Len(min_length=0, max_length=None)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

An object containing a result object that reports on all identified fields, as well as the values assigned to those fields.

Parameters:
  • result (Annotated[list[Dict[str, DocumentFieldData]], Len(min_length=0, max_length=None)] | None)

  • extra_data (Any)

result: Annotated[list[Dict[str, DocumentFieldData]], Len(min_length=0, max_length=None)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.DocumentFieldData(
*,
data: Annotated[list[Annotated[str, Strict(strict=True)]], Len(min_length=0, max_length=None)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
  • data (Annotated[list[Annotated[str, Strict(strict=True)]], Len(min_length=0, max_length=None)] | None)

  • extra_data (Any)

data: Annotated[list[Annotated[str, Strict(strict=True)]], Len(min_length=0, max_length=None)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.DocumentImageClassification(
*,
doc_type: Annotated[str, Strict(strict=True)] | None = None,
confidence: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

An object that identifies a document type within the image, along with a confidence level for that document type.

Parameters:
  • doc_type (Annotated[str, Strict(strict=True)] | None)

  • confidence (Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None)

  • extra_data (Any)

doc_type: Annotated[str, Strict(strict=True)] | None
confidence: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.IntentResult(
*,
intent: Annotated[str, Strict(strict=True)] | None = None,
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
  • intent (Annotated[str, Strict(strict=True)] | None)

  • score (Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None)

  • extra_data (Any)

intent: Annotated[str, Strict(strict=True)] | None
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.MachineLearningImageRecognitionResult(
*,
url: Annotated[str, Strict(strict=True)] | None = None,
document_image_classification: DocumentImageClassification | None = None,
optical_character_recognition: OpticalCharacterRecognition | None = None,
document_field_classification: DocumentFieldClassification | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
url: Annotated[str, Strict(strict=True)] | None
document_image_classification: DocumentImageClassification | None
optical_character_recognition: OpticalCharacterRecognition | None
document_field_classification: DocumentFieldClassification | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.MachineLearningNLUResult(
*,
intent: Annotated[str, Strict(strict=True)] | None = None,
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None = None,
message: Annotated[str, Strict(strict=True)] | None = None,
results: Annotated[list[IntentResult], Len(min_length=0, max_length=None)] | None = None,
**extra_data: Any,
)[source]

Bases: IntentResult

Parameters:
  • intent (Annotated[str, Strict(strict=True)] | None)

  • score (Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None)

  • message (Annotated[str, Strict(strict=True)] | None)

  • results (Annotated[list[IntentResult], Len(min_length=0, max_length=None)] | None)

  • extra_data (Any)

message: Annotated[str, Strict(strict=True)] | None
results: Annotated[list[IntentResult], Len(min_length=0, max_length=None)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.MachineLearningPIIResult(
*,
message: Annotated[str, Strict(strict=True)] | None = None,
masked: Annotated[str, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

An object that contains the PII analysis of the corresponding messages.

Parameters:
  • message (Annotated[str, Strict(strict=True)] | None)

  • masked (Annotated[str, Strict(strict=True)] | None)

  • extra_data (Any)

message: Annotated[str, Strict(strict=True)] | None
masked: Annotated[str, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.MachineLearningSentimentResult(
*,
sentiment: Literal['positive', 'negative', 'neutral'] | Annotated[str, Strict(strict=True)] | None = None,
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None = None,
message: Annotated[str, Strict(strict=True)] | None = None,
results: Annotated[list[SentimentResult], Len(min_length=0, max_length=None)] | None = None,
**extra_data: Any,
)[source]

Bases: SentimentResult

Parameters:
  • sentiment (Literal['positive', 'negative', 'neutral'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • score (Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None)

  • message (Annotated[str, Strict(strict=True)] | None)

  • results (Annotated[list[SentimentResult], Len(min_length=0, max_length=None)] | None)

  • extra_data (Any)

message: Annotated[str, Strict(strict=True)] | None
results: Annotated[list[SentimentResult], Len(min_length=0, max_length=None)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.MessageInboundSmartConversationRedactionEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
message_redaction: InboundMessage,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for MESSAGE_INBOUND_SMART_CONVERSATION_REDACTION (inbound message after Smart Conversations redaction).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

  • message_metadata (Annotated[str, Strict(strict=True)] | None)

  • correlation_id (Annotated[str, Strict(strict=True)] | None)

  • message_redaction (InboundMessage)

  • extra_data (Any)

message_redaction: InboundMessage
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.OffensiveAnalysis(
*,
message: Annotated[str, Strict(strict=True)] | None = None,
url: Annotated[str, Strict(strict=True)] | None = None,
evaluation: Literal['SAFE', 'UNSAFE'] | Annotated[str, Strict(strict=True)] | None = None,
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
  • message (Annotated[str, Strict(strict=True)] | None)

  • url (Annotated[str, Strict(strict=True)] | None)

  • evaluation (Literal['SAFE', 'UNSAFE'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • score (Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None)

  • extra_data (Any)

message: Annotated[str, Strict(strict=True)] | None
url: Annotated[str, Strict(strict=True)] | None
evaluation: Literal['SAFE', 'UNSAFE'] | Annotated[str, Strict(strict=True)] | None
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.OpticalCharacterRecognition(
*,
result: Annotated[list[OpticalCharacterRecognitionData], Len(min_length=0, max_length=None)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

An object containing a result array that reports the machine learning engine’s character extraction results.

Parameters:
result: Annotated[list[OpticalCharacterRecognitionData], Len(min_length=0, max_length=None)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.OpticalCharacterRecognitionData(
*,
data: Annotated[list[Annotated[str, Strict(strict=True)]], Len(min_length=0, max_length=None)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
  • data (Annotated[list[Annotated[str, Strict(strict=True)]], Len(min_length=0, max_length=None)] | None)

  • extra_data (Any)

data: Annotated[list[Annotated[str, Strict(strict=True)]], Len(min_length=0, max_length=None)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.SentimentResult(
*,
sentiment: Literal['positive', 'negative', 'neutral'] | Annotated[str, Strict(strict=True)] | None = None,
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
  • sentiment (Literal['positive', 'negative', 'neutral'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • score (Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None)

  • extra_data (Any)

sentiment: Literal['positive', 'negative', 'neutral'] | Annotated[str, Strict(strict=True)] | None
score: Annotated[float, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(_SnakifyExtrasOnInit__context: Any) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.SmartConversationNotification(
*,
contact_id: Annotated[str, Strict(strict=True)] | None = None,
channel_identity: Annotated[str, Strict(strict=True)] | None = None,
channel: Literal['WHATSAPP', 'RCS', 'SMS', 'MESSENGER', 'VIBERBM', 'MMS', 'INSTAGRAM', 'TELEGRAM', 'KAKAOTALK', 'KAKAOTALKCHAT', 'LINE', 'WECHAT', 'APPLEBC'] | Annotated[str, Strict(strict=True)] | None = None,
message_id: Annotated[str, Strict(strict=True)] | None = None,
conversation_id: Annotated[str, Strict(strict=True)] | None = None,
analysis_results: AnalysisResult | None = None,
**extra_data: Any,
)[source]

Bases: SinchEvent

Parameters:
  • contact_id (Annotated[str, Strict(strict=True)] | None)

  • channel_identity (Annotated[str, Strict(strict=True)] | None)

  • channel (Literal['WHATSAPP', 'RCS', 'SMS', 'MESSENGER', 'VIBERBM', 'MMS', 'INSTAGRAM', 'TELEGRAM', 'KAKAOTALK', 'KAKAOTALKCHAT', 'LINE', 'WECHAT', 'APPLEBC'] | ~typing.Annotated[str, ~pydantic.types.Strict(strict=True)] | None)

  • message_id (Annotated[str, Strict(strict=True)] | None)

  • conversation_id (Annotated[str, Strict(strict=True)] | None)

  • analysis_results (AnalysisResult | None)

  • extra_data (Any)

contact_id: Annotated[str, Strict(strict=True)] | None
channel_identity: Annotated[str, Strict(strict=True)] | None
channel: Literal['WHATSAPP', 'RCS', 'SMS', 'MESSENGER', 'VIBERBM', 'MMS', 'INSTAGRAM', 'TELEGRAM', 'KAKAOTALK', 'KAKAOTALKCHAT', 'LINE', 'WECHAT', 'APPLEBC'] | Annotated[str, Strict(strict=True)] | None
message_id: Annotated[str, Strict(strict=True)] | None
conversation_id: Annotated[str, Strict(strict=True)] | None
analysis_results: AnalysisResult | None
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None

class sinch.domains.conversation.models.v1.sinch_events.smart_conversations.SmartConversationsEvent(
*,
app_id: Annotated[str, Strict(strict=True)],
project_id: Annotated[str, Strict(strict=True)],
accepted_time: datetime | None = None,
event_time: datetime | None = None,
message_metadata: Annotated[str, Strict(strict=True)] | None = None,
correlation_id: Annotated[str, Strict(strict=True)] | None = None,
smart_conversation_notification: SmartConversationNotification,
**extra_data: Any,
)[source]

Bases: ConversationSinchEventBase

Sinch Event for SMART_CONVERSATION (Machine Learning and Artificial Intelligence analyses of the Smart Conversations functionality).

Parameters:
  • app_id (Annotated[str, Strict(strict=True)])

  • project_id (Annotated[str, Strict(strict=True)])

  • accepted_time (datetime | None)

  • event_time (datetime | None)

  • message_metadata (Annotated[str, Strict(strict=True)] | None)

  • correlation_id (Annotated[str, Strict(strict=True)] | None)

  • smart_conversation_notification (SmartConversationNotification)

  • extra_data (Any)

smart_conversation_notification: SmartConversationNotification
model_config = {'extra': 'allow', 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(
_SnakifyExtrasOnInit__context: Any,
) → None

Marks applied non-None defaults as set.

Parameters:

_SnakifyExtrasOnInit__context (Any)

Return type:

None