deepgram.clients.analyze.v1.response

  1# Copyright 2024 Deepgram SDK contributors. All Rights Reserved.
  2# Use of this source code is governed by a MIT license that can be found in the LICENSE file.
  3# SPDX-License-Identifier: MIT
  4
  5from typing import List, Optional, Dict, Any
  6
  7from dataclasses import dataclass, field
  8from dataclasses_json import config as dataclass_config
  9
 10from ...common import (
 11    BaseResponse,
 12    Average,
 13    Intent,
 14    Intents,
 15    IntentsInfo,
 16    Segment,
 17    SentimentInfo,
 18    Sentiment,
 19    Sentiments,
 20    SummaryInfo,
 21    Topic,
 22    Topics,
 23    TopicsInfo,
 24)
 25
 26
 27# Async Analyze Response Types:
 28
 29
 30@dataclass
 31class AsyncAnalyzeResponse(BaseResponse):
 32    """
 33    Async Analyze Response
 34    """
 35
 36    request_id: str = ""
 37
 38
 39# Analyze Response Types:
 40
 41
 42@dataclass
 43class Metadata(BaseResponse):
 44    """
 45    Metadata
 46    """
 47
 48    request_id: str = ""
 49    created: str = ""
 50    language: str = ""
 51    intents_info: Optional[IntentsInfo] = field(
 52        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 53    )
 54    sentiment_info: Optional[SentimentInfo] = field(
 55        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 56    )
 57    summary_info: Optional[SummaryInfo] = field(
 58        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 59    )
 60    topics_info: Optional[TopicsInfo] = field(
 61        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 62    )
 63
 64    def __getitem__(self, key):
 65        _dict = self.to_dict()
 66        if "intents_info" in _dict:
 67            _dict["intents_info"] = IntentsInfo.from_dict(_dict["intents_info"])
 68        if "sentiment_info" in _dict:
 69            _dict["sentiment_info"] = SentimentInfo.from_dict(_dict["sentiment_info"])
 70        if "summary_info" in _dict:
 71            _dict["summary_info"] = SummaryInfo.from_dict(_dict["summary_info"])
 72        if "topics_info" in _dict:
 73            _dict["topics_info"] = TopicsInfo.from_dict(_dict["topics_info"])
 74        return _dict[key]
 75
 76
 77@dataclass
 78class Summary(BaseResponse):
 79    """
 80    Summary
 81    """
 82
 83    text: str = ""
 84
 85
 86@dataclass
 87class Results(BaseResponse):
 88    """
 89    Results
 90    """
 91
 92    summary: Optional[Summary] = field(
 93        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 94    )
 95    sentiments: Optional[Sentiments] = field(
 96        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 97    )
 98    topics: Optional[Topics] = field(
 99        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
100    )
101    intents: Optional[Intents] = field(
102        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
103    )
104
105    def __getitem__(self, key):
106        _dict = self.to_dict()
107        if "summary" in _dict:
108            _dict["summary"] = Summary.from_dict(_dict["summary"])
109        if "sentiments" in _dict:
110            _dict["sentiments"] = Sentiments.from_dict(_dict["sentiments"])
111        if "topics" in _dict:
112            _dict["topics"] = Topics.from_dict(_dict["topics"])
113        if "intents" in _dict:
114            _dict["intents"] = Intents.from_dict(_dict["intents"])
115        return _dict[key]
116
117
118# Analyze Response Result:
119
120
121@dataclass
122class AnalyzeResponse(BaseResponse):
123    """
124    Analyze Response
125    """
126
127    metadata: Optional[Metadata] = field(
128        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
129    )
130    results: Optional[Results] = field(
131        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
132    )
133
134    def __getitem__(self, key):
135        _dict = self.to_dict()
136        if "metadata" in _dict:
137            _dict["metadata"] = Metadata.from_dict(_dict["metadata"])
138        if "results" in _dict:
139            _dict["results"] = Results.from_dict(_dict["results"])
140        return _dict[key]
141
142
143SyncAnalyzeResponse = AnalyzeResponse
@dataclass
class AsyncAnalyzeResponse(deepgram.clients.common.v1.shared_response.BaseResponse):
31@dataclass
32class AsyncAnalyzeResponse(BaseResponse):
33    """
34    Async Analyze Response
35    """
36
37    request_id: str = ""

Async Analyze Response

AsyncAnalyzeResponse(request_id: str = '')
request_id: str = ''
@dataclass
class Metadata(deepgram.clients.common.v1.shared_response.BaseResponse):
43@dataclass
44class Metadata(BaseResponse):
45    """
46    Metadata
47    """
48
49    request_id: str = ""
50    created: str = ""
51    language: str = ""
52    intents_info: Optional[IntentsInfo] = field(
53        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
54    )
55    sentiment_info: Optional[SentimentInfo] = field(
56        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
57    )
58    summary_info: Optional[SummaryInfo] = field(
59        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
60    )
61    topics_info: Optional[TopicsInfo] = field(
62        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
63    )
64
65    def __getitem__(self, key):
66        _dict = self.to_dict()
67        if "intents_info" in _dict:
68            _dict["intents_info"] = IntentsInfo.from_dict(_dict["intents_info"])
69        if "sentiment_info" in _dict:
70            _dict["sentiment_info"] = SentimentInfo.from_dict(_dict["sentiment_info"])
71        if "summary_info" in _dict:
72            _dict["summary_info"] = SummaryInfo.from_dict(_dict["summary_info"])
73        if "topics_info" in _dict:
74            _dict["topics_info"] = TopicsInfo.from_dict(_dict["topics_info"])
75        return _dict[key]

Metadata

Metadata( request_id: str = '', created: str = '', language: str = '', intents_info: Optional[deepgram.clients.common.IntentsInfo] = None, sentiment_info: Optional[deepgram.clients.common.SentimentInfo] = None, summary_info: Optional[deepgram.clients.common.SummaryInfo] = None, topics_info: Optional[deepgram.clients.common.TopicsInfo] = None)
request_id: str = ''
created: str = ''
language: str = ''
intents_info: Optional[deepgram.clients.common.IntentsInfo] = None
sentiment_info: Optional[deepgram.clients.common.SentimentInfo] = None
summary_info: Optional[deepgram.clients.common.SummaryInfo] = None
topics_info: Optional[deepgram.clients.common.TopicsInfo] = None
@dataclass
class Summary(deepgram.clients.common.v1.shared_response.BaseResponse):
78@dataclass
79class Summary(BaseResponse):
80    """
81    Summary
82    """
83
84    text: str = ""

Summary

Summary(text: str = '')
text: str = ''
@dataclass
class Results(deepgram.clients.common.v1.shared_response.BaseResponse):
 87@dataclass
 88class Results(BaseResponse):
 89    """
 90    Results
 91    """
 92
 93    summary: Optional[Summary] = field(
 94        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 95    )
 96    sentiments: Optional[Sentiments] = field(
 97        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
 98    )
 99    topics: Optional[Topics] = field(
100        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
101    )
102    intents: Optional[Intents] = field(
103        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
104    )
105
106    def __getitem__(self, key):
107        _dict = self.to_dict()
108        if "summary" in _dict:
109            _dict["summary"] = Summary.from_dict(_dict["summary"])
110        if "sentiments" in _dict:
111            _dict["sentiments"] = Sentiments.from_dict(_dict["sentiments"])
112        if "topics" in _dict:
113            _dict["topics"] = Topics.from_dict(_dict["topics"])
114        if "intents" in _dict:
115            _dict["intents"] = Intents.from_dict(_dict["intents"])
116        return _dict[key]

Results

Results( summary: Optional[Summary] = None, sentiments: Optional[deepgram.clients.common.Sentiments] = None, topics: Optional[deepgram.clients.common.Topics] = None, intents: Optional[deepgram.clients.common.Intents] = None)
summary: Optional[Summary] = None
sentiments: Optional[deepgram.clients.common.Sentiments] = None
topics: Optional[deepgram.clients.common.Topics] = None
intents: Optional[deepgram.clients.common.Intents] = None
@dataclass
class AnalyzeResponse(deepgram.clients.common.v1.shared_response.BaseResponse):
122@dataclass
123class AnalyzeResponse(BaseResponse):
124    """
125    Analyze Response
126    """
127
128    metadata: Optional[Metadata] = field(
129        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
130    )
131    results: Optional[Results] = field(
132        default=None, metadata=dataclass_config(exclude=lambda f: f is None)
133    )
134
135    def __getitem__(self, key):
136        _dict = self.to_dict()
137        if "metadata" in _dict:
138            _dict["metadata"] = Metadata.from_dict(_dict["metadata"])
139        if "results" in _dict:
140            _dict["results"] = Results.from_dict(_dict["results"])
141        return _dict[key]

Analyze Response

AnalyzeResponse( metadata: Optional[Metadata] = None, results: Optional[Results] = None)
metadata: Optional[Metadata] = None
results: Optional[Results] = None
SyncAnalyzeResponse = <class 'AnalyzeResponse'>