falaai-api 1.21.48 → 1.21.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +239 -339
  3. data/docs/AnalysisApi.md +33 -37
  4. data/docs/AudioEvent.md +5 -5
  5. data/docs/AudioInputMeta.md +5 -5
  6. data/docs/CreateEmailAlertRequest.md +3 -3
  7. data/docs/CreateWebhookRequest.md +4 -4
  8. data/docs/DiagnosticAudioEvent.md +5 -5
  9. data/docs/DiagnosticCategoricalAnalysis.md +3 -3
  10. data/docs/DiagnosticParticipant.md +22 -0
  11. data/docs/DiagnosticRequest.md +10 -4
  12. data/docs/DiagnosticResponse.md +4 -4
  13. data/docs/DiagnosticTextAnalysis.md +1 -1
  14. data/docs/DiagnosticUsage.md +3 -3
  15. data/docs/EmailAlertsApi.md +18 -18
  16. data/docs/HealthApi.md +3 -13
  17. data/docs/HealthResponse.md +6 -6
  18. data/docs/Participant.md +2 -2
  19. data/docs/ParticipantDiagnostic.md +5 -5
  20. data/docs/{AuditoriaRiscoAnalysisV2.md → RiskAuditAnalysisV2.md} +2 -2
  21. data/docs/{AuditoriaRiscoAppliedActionV2.md → RiskAuditAppliedActionV2.md} +2 -2
  22. data/docs/{AuditoriaRiscoAudioEventModelV2.md → RiskAuditAudioEventModelV2.md} +2 -2
  23. data/docs/{AuditoriaRiscoAuditDecisionsV2.md → RiskAuditAuditDecisionsV2.md} +2 -2
  24. data/docs/{AuditoriaRiscoConversationScoresV2.md → RiskAuditConversationScoresV2.md} +2 -2
  25. data/docs/{AuditoriaRiscoDetectionItemV2.md → RiskAuditDetectionItemV2.md} +2 -2
  26. data/docs/RiskAuditDetectionsV2.md +26 -0
  27. data/docs/{AuditoriaRiscoIndexerV2.md → RiskAuditIndexerV2.md} +2 -2
  28. data/docs/{AuditoriaRiscoMetaV2.md → RiskAuditMetaV2.md} +4 -4
  29. data/docs/{AuditoriaRiscoParticipantV2.md → RiskAuditParticipantV2.md} +2 -2
  30. data/docs/{AuditoriaRiscoParticipantsV2.md → RiskAuditParticipantsV2.md} +3 -3
  31. data/docs/{AuditoriaRiscoRequest.md → RiskAuditRequest.md} +12 -12
  32. data/docs/{AuditoriaRiscoScoresV2.md → RiskAuditScoresV2.md} +3 -3
  33. data/docs/{AuditoriaRiscoScoringExplanationV2.md → RiskAuditScoringExplanationV2.md} +2 -2
  34. data/docs/{AuditoriaRiscoSummaryV2.md → RiskAuditSummaryV2.md} +2 -2
  35. data/docs/{AuditoriaRiscoTimelineV2.md → RiskAuditTimelineV2.md} +2 -2
  36. data/docs/{AuditoriaRiscoUsageV2.md → RiskAuditUsageV2.md} +2 -2
  37. data/docs/RiskAuditV2.md +46 -0
  38. data/docs/RiskAuditV2Response.md +18 -0
  39. data/docs/{AuditoriaRiscoVerdictV2.md → RiskAuditVerdictV2.md} +3 -3
  40. data/docs/SpeechApi.md +1 -3
  41. data/docs/TranscriptionResponse.md +13 -14
  42. data/docs/TranscriptionUsage.md +3 -3
  43. data/docs/UpdateWebhookRequest.md +5 -5
  44. data/docs/UsageApi.md +1 -1
  45. data/docs/VersionApi.md +2 -7
  46. data/docs/VersionResponse.md +3 -3
  47. data/docs/WebhooksApi.md +22 -22
  48. data/docs/index.html +758 -0
  49. data/lib/falaai-api/api/analysis_api.rb +38 -42
  50. data/lib/falaai-api/api/email_alerts_api.rb +10 -10
  51. data/lib/falaai-api/api/health_api.rb +4 -4
  52. data/lib/falaai-api/api/speech_api.rb +2 -4
  53. data/lib/falaai-api/api/usage_api.rb +2 -2
  54. data/lib/falaai-api/api/version_api.rb +3 -3
  55. data/lib/falaai-api/api/webhooks_api.rb +18 -18
  56. data/lib/falaai-api/api_client.rb +2 -2
  57. data/lib/falaai-api/api_error.rb +2 -2
  58. data/lib/falaai-api/api_model_base.rb +2 -2
  59. data/lib/falaai-api/configuration.rb +6 -6
  60. data/lib/falaai-api/models/audio_event.rb +2 -2
  61. data/lib/falaai-api/models/audio_input_meta.rb +2 -2
  62. data/lib/falaai-api/models/create_email_alert_request.rb +2 -2
  63. data/lib/falaai-api/models/create_webhook_request.rb +2 -2
  64. data/lib/falaai-api/models/diagnostic_analysis_map.rb +2 -2
  65. data/lib/falaai-api/models/diagnostic_audio_event.rb +2 -2
  66. data/lib/falaai-api/models/diagnostic_categorical_analysis.rb +2 -2
  67. data/lib/falaai-api/models/diagnostic_participant.rb +226 -0
  68. data/lib/falaai-api/models/diagnostic_request.rb +91 -6
  69. data/lib/falaai-api/models/diagnostic_response.rb +2 -2
  70. data/lib/falaai-api/models/diagnostic_text_analysis.rb +2 -2
  71. data/lib/falaai-api/models/diagnostic_usage.rb +2 -2
  72. data/lib/falaai-api/models/email_alert_item.rb +2 -2
  73. data/lib/falaai-api/models/email_alert_list_response.rb +2 -2
  74. data/lib/falaai-api/models/email_alert_message_response.rb +2 -2
  75. data/lib/falaai-api/models/email_event.rb +2 -2
  76. data/lib/falaai-api/models/health_response.rb +2 -2
  77. data/lib/falaai-api/models/http_validation_error.rb +2 -2
  78. data/lib/falaai-api/models/location_inner.rb +2 -2
  79. data/lib/falaai-api/models/message_response.rb +2 -2
  80. data/lib/falaai-api/models/participant.rb +2 -2
  81. data/lib/falaai-api/models/participant_diagnostic.rb +2 -2
  82. data/lib/falaai-api/models/{auditoria_risco_analysis_v2.rb → risk_audit_analysis_v2.rb} +5 -5
  83. data/lib/falaai-api/models/{auditoria_risco_applied_action_v2.rb → risk_audit_applied_action_v2.rb} +5 -5
  84. data/lib/falaai-api/models/{auditoria_risco_audio_event_model_v2.rb → risk_audit_audio_event_model_v2.rb} +5 -5
  85. data/lib/falaai-api/models/{auditoria_risco_audit_decisions_v2.rb → risk_audit_audit_decisions_v2.rb} +5 -5
  86. data/lib/falaai-api/models/{auditoria_risco_conversation_scores_v2.rb → risk_audit_conversation_scores_v2.rb} +5 -5
  87. data/lib/falaai-api/models/{auditoria_risco_detection_item_v2.rb → risk_audit_detection_item_v2.rb} +5 -5
  88. data/lib/falaai-api/models/{auditoria_risco_detections_v2.rb → risk_audit_detections_v2.rb} +8 -8
  89. data/lib/falaai-api/models/{auditoria_risco_indexer_v2.rb → risk_audit_indexer_v2.rb} +5 -5
  90. data/lib/falaai-api/models/{auditoria_risco_meta_v2.rb → risk_audit_meta_v2.rb} +7 -7
  91. data/lib/falaai-api/models/{auditoria_risco_participant_v2.rb → risk_audit_participant_v2.rb} +5 -5
  92. data/lib/falaai-api/models/{auditoria_risco_participants_v2.rb → risk_audit_participants_v2.rb} +6 -6
  93. data/lib/falaai-api/models/{auditoria_risco_request.rb → risk_audit_request.rb} +8 -8
  94. data/lib/falaai-api/models/{auditoria_risco_scores_v2.rb → risk_audit_scores_v2.rb} +6 -6
  95. data/lib/falaai-api/models/{auditoria_risco_scoring_explanation_v2.rb → risk_audit_scoring_explanation_v2.rb} +5 -5
  96. data/lib/falaai-api/models/{auditoria_risco_summary_v2.rb → risk_audit_summary_v2.rb} +5 -5
  97. data/lib/falaai-api/models/{auditoria_risco_timeline_v2.rb → risk_audit_timeline_v2.rb} +5 -5
  98. data/lib/falaai-api/models/{auditoria_risco_usage_v2.rb → risk_audit_usage_v2.rb} +5 -5
  99. data/lib/falaai-api/models/{auditoria_risco_v2.rb → risk_audit_v2.rb} +35 -35
  100. data/lib/falaai-api/models/{auditoria_risco_v2_response.rb → risk_audit_v2_response.rb} +7 -7
  101. data/lib/falaai-api/models/{auditoria_risco_verdict_v2.rb → risk_audit_verdict_v2.rb} +6 -6
  102. data/lib/falaai-api/models/transcription_response.rb +2 -2
  103. data/lib/falaai-api/models/transcription_usage.rb +2 -2
  104. data/lib/falaai-api/models/update_email_alert_request.rb +2 -2
  105. data/lib/falaai-api/models/update_webhook_request.rb +2 -2
  106. data/lib/falaai-api/models/usage_by_key_item.rb +2 -2
  107. data/lib/falaai-api/models/usage_log_item.rb +2 -2
  108. data/lib/falaai-api/models/usage_log_response.rb +2 -2
  109. data/lib/falaai-api/models/validation_error.rb +2 -2
  110. data/lib/falaai-api/models/version_response.rb +2 -2
  111. data/lib/falaai-api/models/webhook_event.rb +2 -2
  112. data/lib/falaai-api/models/webhook_item.rb +2 -2
  113. data/lib/falaai-api/models/webhook_list_response.rb +2 -2
  114. data/lib/falaai-api/version.rb +3 -3
  115. data/lib/falaai-api.rb +23 -22
  116. metadata +45 -42
  117. data/docs/AuditoriaRiscoDetectionsV2.md +0 -26
  118. data/docs/AuditoriaRiscoV2.md +0 -46
  119. data/docs/AuditoriaRiscoV2Response.md +0 -18
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -0,0 +1,226 @@
1
+ =begin
2
+ #FalaAI API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 1.21.49
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FalaAI
17
+ class DiagnosticParticipant < ApiModelBase
18
+ # Exact speaker label from the dialog (e.g. 'Speaker 1')
19
+ attr_accessor :interlocutor
20
+
21
+ # Participant name (optional)
22
+ attr_accessor :name
23
+
24
+ # agent | client | bot
25
+ attr_accessor :role
26
+
27
+ class EnumAttributeValidator
28
+ attr_reader :datatype
29
+ attr_reader :allowable_values
30
+
31
+ def initialize(datatype, allowable_values)
32
+ @allowable_values = allowable_values.map do |value|
33
+ case datatype.to_s
34
+ when /Integer/i
35
+ value.to_i
36
+ when /Float/i
37
+ value.to_f
38
+ else
39
+ value
40
+ end
41
+ end
42
+ end
43
+
44
+ def valid?(value)
45
+ !value || allowable_values.include?(value)
46
+ end
47
+ end
48
+
49
+ # Attribute mapping from ruby-style variable name to JSON key.
50
+ def self.attribute_map
51
+ {
52
+ :'interlocutor' => :'interlocutor',
53
+ :'name' => :'name',
54
+ :'role' => :'role'
55
+ }
56
+ end
57
+
58
+ # Returns attribute mapping this model knows about
59
+ def self.acceptable_attribute_map
60
+ attribute_map
61
+ end
62
+
63
+ # Returns all the JSON keys this model knows about
64
+ def self.acceptable_attributes
65
+ acceptable_attribute_map.values
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ def self.openapi_types
70
+ {
71
+ :'interlocutor' => :'String',
72
+ :'name' => :'String',
73
+ :'role' => :'String'
74
+ }
75
+ end
76
+
77
+ # List of attributes with nullable: true
78
+ def self.openapi_nullable
79
+ Set.new([
80
+ ])
81
+ end
82
+
83
+ # Initializes the object
84
+ # @param [Hash] attributes Model attributes in the form of hash
85
+ def initialize(attributes = {})
86
+ if (!attributes.is_a?(Hash))
87
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FalaAI::DiagnosticParticipant` initialize method"
88
+ end
89
+
90
+ # check to see if the attribute exists and convert string to symbol for hash key
91
+ acceptable_attribute_map = self.class.acceptable_attribute_map
92
+ attributes = attributes.each_with_object({}) { |(k, v), h|
93
+ if (!acceptable_attribute_map.key?(k.to_sym))
94
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FalaAI::DiagnosticParticipant`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
95
+ end
96
+ h[k.to_sym] = v
97
+ }
98
+
99
+ if attributes.key?(:'interlocutor')
100
+ self.interlocutor = attributes[:'interlocutor']
101
+ else
102
+ self.interlocutor = nil
103
+ end
104
+
105
+ if attributes.key?(:'name')
106
+ self.name = attributes[:'name']
107
+ end
108
+
109
+ if attributes.key?(:'role')
110
+ self.role = attributes[:'role']
111
+ else
112
+ self.role = nil
113
+ end
114
+ end
115
+
116
+ # Show invalid properties with the reasons. Usually used together with valid?
117
+ # @return Array for valid properties with the reasons
118
+ def list_invalid_properties
119
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
120
+ invalid_properties = Array.new
121
+ if @interlocutor.nil?
122
+ invalid_properties.push('invalid value for "interlocutor", interlocutor cannot be nil.')
123
+ end
124
+
125
+ if @role.nil?
126
+ invalid_properties.push('invalid value for "role", role cannot be nil.')
127
+ end
128
+
129
+ invalid_properties
130
+ end
131
+
132
+ # Check to see if the all the properties in the model are valid
133
+ # @return true if the model is valid
134
+ def valid?
135
+ warn '[DEPRECATED] the `valid?` method is obsolete'
136
+ return false if @interlocutor.nil?
137
+ return false if @role.nil?
138
+ role_validator = EnumAttributeValidator.new('String', ["agent", "client", "bot"])
139
+ return false unless role_validator.valid?(@role)
140
+ true
141
+ end
142
+
143
+ # Custom attribute writer method with validation
144
+ # @param [Object] interlocutor Value to be assigned
145
+ def interlocutor=(interlocutor)
146
+ if interlocutor.nil?
147
+ fail ArgumentError, 'interlocutor cannot be nil'
148
+ end
149
+
150
+ @interlocutor = interlocutor
151
+ end
152
+
153
+ # Custom attribute writer method checking allowed values (enum).
154
+ # @param [Object] role Object to be assigned
155
+ def role=(role)
156
+ validator = EnumAttributeValidator.new('String', ["agent", "client", "bot"])
157
+ unless validator.valid?(role)
158
+ fail ArgumentError, "invalid value for \"role\", must be one of #{validator.allowable_values}."
159
+ end
160
+ @role = role
161
+ end
162
+
163
+ # Checks equality by comparing each attribute.
164
+ # @param [Object] Object to be compared
165
+ def ==(o)
166
+ return true if self.equal?(o)
167
+ self.class == o.class &&
168
+ interlocutor == o.interlocutor &&
169
+ name == o.name &&
170
+ role == o.role
171
+ end
172
+
173
+ # @see the `==` method
174
+ # @param [Object] Object to be compared
175
+ def eql?(o)
176
+ self == o
177
+ end
178
+
179
+ # Calculates hash code according to all attributes.
180
+ # @return [Integer] Hash code
181
+ def hash
182
+ [interlocutor, name, role].hash
183
+ end
184
+
185
+ # Builds the object from hash
186
+ # @param [Hash] attributes Model attributes in the form of hash
187
+ # @return [Object] Returns the model itself
188
+ def self.build_from_hash(attributes)
189
+ return nil unless attributes.is_a?(Hash)
190
+ attributes = attributes.transform_keys(&:to_sym)
191
+ transformed_hash = {}
192
+ openapi_types.each_pair do |key, type|
193
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
194
+ transformed_hash["#{key}"] = nil
195
+ elsif type =~ /\AArray<(.*)>/i
196
+ # check to ensure the input is an array given that the attribute
197
+ # is documented as an array but the input is not
198
+ if attributes[attribute_map[key]].is_a?(Array)
199
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
200
+ end
201
+ elsif !attributes[attribute_map[key]].nil?
202
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
203
+ end
204
+ end
205
+ new(transformed_hash)
206
+ end
207
+
208
+ # Returns the object in the form of hash
209
+ # @return [Hash] Returns the object in the form of hash
210
+ def to_hash
211
+ hash = {}
212
+ self.class.attribute_map.each_pair do |attr, param|
213
+ value = self.send(attr)
214
+ if value.nil?
215
+ is_nullable = self.class.openapi_nullable.include?(attr)
216
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
217
+ end
218
+
219
+ hash[param] = _to_hash(value)
220
+ end
221
+ hash
222
+ end
223
+
224
+ end
225
+
226
+ end
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -30,12 +30,43 @@ module FalaAI
30
30
  # Transcript language. Required. Accepted: en-US, pt-BR, es-ES, es-MX, fr-FR, de-DE, it-IT, pt-PT, zh-CN, ja-JP, ko-KR, ar-SA, hi-IN, ru-RU, id-ID, tr-TR, nl-NL, pl-PL, vi-VN, th-TH, en-GB
31
31
  attr_accessor :language
32
32
 
33
+ # Language for the analysis results (labels, categories, levels). Can differ from 'language' (input). If omitted, uses 'language'. Accepted: en-US, es-ES, es-MX, pt-BR, fr-FR, de-DE, it-IT, pt-PT, zh-CN, ja-JP, ko-KR, ar-SA, hi-IN, ru-RU, id-ID, tr-TR, nl-NL, pl-PL, vi-VN, th-TH, en-GB.
34
+ attr_accessor :response_language
35
+
33
36
  # Total audio duration in seconds. Required. Max 3h (10800s).
34
37
  attr_accessor :duration_seconds
35
38
 
36
39
  # Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9._:-], max 128 chars. Not idempotency.
37
40
  attr_accessor :client_reference_id
38
41
 
42
+ # Who originated the call. inbound=client called, outbound=company called. If omitted, the LLM infers from context.
43
+ attr_accessor :call_direction
44
+
45
+ # Explicit participant roles. If omitted, the LLM infers from the dialog. When provided, used as ground truth (no inference) and echoed in analysis.participants_identified.
46
+ attr_accessor :participants
47
+
48
+ class EnumAttributeValidator
49
+ attr_reader :datatype
50
+ attr_reader :allowable_values
51
+
52
+ def initialize(datatype, allowable_values)
53
+ @allowable_values = allowable_values.map do |value|
54
+ case datatype.to_s
55
+ when /Integer/i
56
+ value.to_i
57
+ when /Float/i
58
+ value.to_f
59
+ else
60
+ value
61
+ end
62
+ end
63
+ end
64
+
65
+ def valid?(value)
66
+ !value || allowable_values.include?(value)
67
+ end
68
+ end
69
+
39
70
  # Attribute mapping from ruby-style variable name to JSON key.
40
71
  def self.attribute_map
41
72
  {
@@ -44,8 +75,11 @@ module FalaAI
44
75
  :'dialog' => :'dialog',
45
76
  :'audio_events' => :'audio_events',
46
77
  :'language' => :'language',
78
+ :'response_language' => :'response_language',
47
79
  :'duration_seconds' => :'duration_seconds',
48
- :'client_reference_id' => :'client_reference_id'
80
+ :'client_reference_id' => :'client_reference_id',
81
+ :'call_direction' => :'call_direction',
82
+ :'participants' => :'participants'
49
83
  }
50
84
  end
51
85
 
@@ -67,8 +101,11 @@ module FalaAI
67
101
  :'dialog' => :'String',
68
102
  :'audio_events' => :'Array<DiagnosticAudioEvent>',
69
103
  :'language' => :'String',
104
+ :'response_language' => :'String',
70
105
  :'duration_seconds' => :'Float',
71
- :'client_reference_id' => :'String'
106
+ :'client_reference_id' => :'String',
107
+ :'call_direction' => :'String',
108
+ :'participants' => :'Array<DiagnosticParticipant>'
72
109
  }
73
110
  end
74
111
 
@@ -124,6 +161,10 @@ module FalaAI
124
161
  self.language = nil
125
162
  end
126
163
 
164
+ if attributes.key?(:'response_language')
165
+ self.response_language = attributes[:'response_language']
166
+ end
167
+
127
168
  if attributes.key?(:'duration_seconds')
128
169
  self.duration_seconds = attributes[:'duration_seconds']
129
170
  else
@@ -133,6 +174,16 @@ module FalaAI
133
174
  if attributes.key?(:'client_reference_id')
134
175
  self.client_reference_id = attributes[:'client_reference_id']
135
176
  end
177
+
178
+ if attributes.key?(:'call_direction')
179
+ self.call_direction = attributes[:'call_direction']
180
+ end
181
+
182
+ if attributes.key?(:'participants')
183
+ if (value = attributes[:'participants']).is_a?(Array)
184
+ self.participants = value
185
+ end
186
+ end
136
187
  end
137
188
 
138
189
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -164,6 +215,10 @@ module FalaAI
164
215
  invalid_properties.push('invalid value for "duration_seconds", must be greater than or equal to 1.0.')
165
216
  end
166
217
 
218
+ if !@participants.nil? && @participants.length > 10
219
+ invalid_properties.push('invalid value for "participants", number of items must be less than or equal to 10.')
220
+ end
221
+
167
222
  invalid_properties
168
223
  end
169
224
 
@@ -177,6 +232,9 @@ module FalaAI
177
232
  return false if @language.nil?
178
233
  return false if @duration_seconds.nil?
179
234
  return false if @duration_seconds < 1.0
235
+ call_direction_validator = EnumAttributeValidator.new('String', ["inbound", "outbound"])
236
+ return false unless call_direction_validator.valid?(@call_direction)
237
+ return false if !@participants.nil? && @participants.length > 10
180
238
  true
181
239
  end
182
240
 
@@ -246,6 +304,30 @@ module FalaAI
246
304
  @duration_seconds = duration_seconds
247
305
  end
248
306
 
307
+ # Custom attribute writer method checking allowed values (enum).
308
+ # @param [Object] call_direction Object to be assigned
309
+ def call_direction=(call_direction)
310
+ validator = EnumAttributeValidator.new('String', ["inbound", "outbound"])
311
+ unless validator.valid?(call_direction)
312
+ fail ArgumentError, "invalid value for \"call_direction\", must be one of #{validator.allowable_values}."
313
+ end
314
+ @call_direction = call_direction
315
+ end
316
+
317
+ # Custom attribute writer method with validation
318
+ # @param [Object] participants Value to be assigned
319
+ def participants=(participants)
320
+ if participants.nil?
321
+ fail ArgumentError, 'participants cannot be nil'
322
+ end
323
+
324
+ if participants.length > 10
325
+ fail ArgumentError, 'invalid value for "participants", number of items must be less than or equal to 10.'
326
+ end
327
+
328
+ @participants = participants
329
+ end
330
+
249
331
  # Checks equality by comparing each attribute.
250
332
  # @param [Object] Object to be compared
251
333
  def ==(o)
@@ -256,8 +338,11 @@ module FalaAI
256
338
  dialog == o.dialog &&
257
339
  audio_events == o.audio_events &&
258
340
  language == o.language &&
341
+ response_language == o.response_language &&
259
342
  duration_seconds == o.duration_seconds &&
260
- client_reference_id == o.client_reference_id
343
+ client_reference_id == o.client_reference_id &&
344
+ call_direction == o.call_direction &&
345
+ participants == o.participants
261
346
  end
262
347
 
263
348
  # @see the `==` method
@@ -269,7 +354,7 @@ module FalaAI
269
354
  # Calculates hash code according to all attributes.
270
355
  # @return [Integer] Hash code
271
356
  def hash
272
- [model, text, dialog, audio_events, language, duration_seconds, client_reference_id].hash
357
+ [model, text, dialog, audio_events, language, response_language, duration_seconds, client_reference_id, call_direction, participants].hash
273
358
  end
274
359
 
275
360
  # Builds the object from hash
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #FalaAI API
3
3
 
4
- #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api01-falaai.action.tec.br' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 1.21.48
6
+ The version of the OpenAPI document: 1.21.49
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0