falaai-api 1.21.54 → 1.21.67
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.
- checksums.yaml +4 -4
- data/README.md +11 -5
- data/docs/AnalysisApi.md +4 -0
- data/docs/DiagnosticUsage.md +1 -1
- data/docs/ResponseExtractConversationsV1WhatsappExtractconversationsPost.md +42 -0
- data/docs/RiskAuditAppliedActionV2.md +0 -4
- data/docs/RiskAuditAuditDecisionsV2.md +1 -3
- data/docs/RiskAuditConversationScoresV2.md +0 -2
- data/docs/RiskAuditDetectionItemV2.md +5 -75
- data/docs/RiskAuditSummaryV2.md +0 -4
- data/docs/RiskAuditUsageV2.md +1 -1
- data/docs/RiskAuditVerdictV2.md +1 -7
- data/docs/SpeechApi.md +2 -0
- data/docs/TranscriptionUsage.md +1 -1
- data/docs/WhatsappApi.md +16 -10
- data/docs/WhatsappConversation.md +1 -1
- data/docs/WhatsappMeta.md +3 -1
- data/docs/WhatsappPreviewItem.md +32 -0
- data/docs/WhatsappPreviewItemBreakdown.md +26 -0
- data/docs/WhatsappPreviewItemCredits.md +20 -0
- data/docs/WhatsappPreviewItemMedia.md +30 -0
- data/docs/WhatsappPreviewParams.md +32 -0
- data/docs/WhatsappPreviewResponse.md +32 -0
- data/docs/WhatsappPreviewWindow.md +22 -0
- data/docs/WhatsappUsage.md +11 -5
- data/docs/index.html +35 -7
- data/lib/falaai-api/api/analysis_api.rb +5 -1
- data/lib/falaai-api/api/email_alerts_api.rb +1 -1
- data/lib/falaai-api/api/health_api.rb +1 -1
- data/lib/falaai-api/api/speech_api.rb +3 -1
- data/lib/falaai-api/api/usage_api.rb +1 -1
- data/lib/falaai-api/api/version_api.rb +1 -1
- data/lib/falaai-api/api/webhooks_api.rb +1 -1
- data/lib/falaai-api/api/whatsapp_api.rb +21 -21
- data/lib/falaai-api/api_client.rb +1 -1
- data/lib/falaai-api/api_error.rb +1 -1
- data/lib/falaai-api/api_model_base.rb +1 -1
- data/lib/falaai-api/configuration.rb +1 -1
- data/lib/falaai-api/models/audio_event.rb +1 -1
- data/lib/falaai-api/models/audio_input_meta.rb +1 -1
- data/lib/falaai-api/models/create_email_alert_request.rb +1 -1
- data/lib/falaai-api/models/create_webhook_request.rb +1 -1
- data/lib/falaai-api/models/diagnostic_analysis_map.rb +1 -1
- data/lib/falaai-api/models/diagnostic_audio_event.rb +1 -1
- data/lib/falaai-api/models/diagnostic_categorical_analysis.rb +1 -1
- data/lib/falaai-api/models/diagnostic_participant.rb +1 -1
- data/lib/falaai-api/models/diagnostic_request.rb +1 -1
- data/lib/falaai-api/models/diagnostic_response.rb +1 -1
- data/lib/falaai-api/models/diagnostic_text_analysis.rb +1 -1
- data/lib/falaai-api/models/diagnostic_usage.rb +3 -3
- data/lib/falaai-api/models/email_alert_item.rb +1 -1
- data/lib/falaai-api/models/email_alert_list_response.rb +1 -1
- data/lib/falaai-api/models/email_alert_message_response.rb +1 -1
- data/lib/falaai-api/models/email_event.rb +1 -1
- data/lib/falaai-api/models/health_response.rb +1 -1
- data/lib/falaai-api/models/http_validation_error.rb +1 -1
- data/lib/falaai-api/models/location_inner.rb +1 -1
- data/lib/falaai-api/models/message_response.rb +1 -1
- data/lib/falaai-api/models/participant.rb +1 -1
- data/lib/falaai-api/models/participant_diagnostic.rb +1 -1
- data/lib/falaai-api/models/response_extract_conversations_v1_whatsapp_extractconversations_post.rb +103 -0
- data/lib/falaai-api/models/risk_audit_analysis_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_applied_action_v2.rb +2 -26
- data/lib/falaai-api/models/risk_audit_audio_event_model_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_audit_decisions_v2.rb +5 -17
- data/lib/falaai-api/models/risk_audit_conversation_scores_v2.rb +2 -12
- data/lib/falaai-api/models/risk_audit_detection_item_v2.rb +19 -393
- data/lib/falaai-api/models/risk_audit_detections_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_indexer_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_meta_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_participant_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_participants_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_request.rb +1 -1
- data/lib/falaai-api/models/risk_audit_scores_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_scoring_explanation_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_summary_v2.rb +2 -24
- data/lib/falaai-api/models/risk_audit_timeline_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_usage_v2.rb +2 -2
- data/lib/falaai-api/models/risk_audit_v2.rb +1 -1
- data/lib/falaai-api/models/risk_audit_v2_response.rb +1 -1
- data/lib/falaai-api/models/risk_audit_verdict_v2.rb +5 -36
- data/lib/falaai-api/models/transcription_response.rb +1 -1
- data/lib/falaai-api/models/transcription_usage.rb +2 -2
- data/lib/falaai-api/models/update_email_alert_request.rb +1 -1
- data/lib/falaai-api/models/update_webhook_request.rb +1 -1
- data/lib/falaai-api/models/usage_by_key_item.rb +1 -1
- data/lib/falaai-api/models/usage_log_item.rb +1 -1
- data/lib/falaai-api/models/usage_log_response.rb +1 -1
- data/lib/falaai-api/models/validation_error.rb +1 -1
- data/lib/falaai-api/models/version_response.rb +1 -1
- data/lib/falaai-api/models/webhook_event.rb +1 -1
- data/lib/falaai-api/models/webhook_item.rb +1 -1
- data/lib/falaai-api/models/webhook_list_response.rb +1 -1
- data/lib/falaai-api/models/whatsapp_conversation.rb +2 -2
- data/lib/falaai-api/models/whatsapp_conversations_response.rb +30 -6
- data/lib/falaai-api/models/whatsapp_meta.rb +32 -5
- data/lib/falaai-api/models/whatsapp_preview_item.rb +354 -0
- data/lib/falaai-api/models/whatsapp_preview_item_breakdown.rb +273 -0
- data/lib/falaai-api/models/whatsapp_preview_item_credits.rb +192 -0
- data/lib/falaai-api/models/whatsapp_preview_item_media.rb +329 -0
- data/lib/falaai-api/models/whatsapp_preview_params.rb +354 -0
- data/lib/falaai-api/models/whatsapp_preview_response.rb +384 -0
- data/lib/falaai-api/models/whatsapp_preview_window.rb +219 -0
- data/lib/falaai-api/models/whatsapp_speaker.rb +1 -1
- data/lib/falaai-api/models/whatsapp_usage.rb +90 -9
- data/lib/falaai-api/version.rb +15 -15
- data/lib/falaai-api.rb +9 -1
- metadata +18 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 277ba7b89298c6e8064b94c458f36a6db3a2d679a33ba160e989ce3fec496635
|
|
4
|
+
data.tar.gz: ba21f1c150fb4dc71d6a699e2c29b8ee01abf8cf6fc99e1449bb659b46c1ef47
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 881ee96022301c48bbdb94a05489ceb87b4aaeefa1d0f3b897e155e1b65aa6fb67916bc67e42b2cf099c752ca00a775f35b5929d4abeee74661581a73cdc0a5a
|
|
7
|
+
data.tar.gz: 2825a69f51a3782da91f57e605f76c49f519ce3f7fa1c965cb3a3297dcc58de4e568ccceda9efc92c9da51d1c9fca4ffe19ccb9c0bbe2eba43dd009a191b272e
|
data/README.md
CHANGED
|
@@ -50,6 +50,8 @@ FALAAI_API_KEY=fai_xxxxxxxx
|
|
|
50
50
|
|
|
51
51
|
### 3. Transcribe a call (audio -> text)
|
|
52
52
|
|
|
53
|
+
> No audio file? See **[audio help](https://falaai.action.tec.br/api/audio-help)** for accepted formats and limits.
|
|
54
|
+
|
|
53
55
|
```ruby
|
|
54
56
|
require 'falaai-api'
|
|
55
57
|
|
|
@@ -95,15 +97,16 @@ client = FalaAI::ApiClient.new(config)
|
|
|
95
97
|
analysis = FalaAI::AnalysisApi.new(client)
|
|
96
98
|
|
|
97
99
|
transcript = 'Good morning, how can I help? I need to cancel my subscription.'
|
|
100
|
+
dialog = "Speaker 1: [00:00:00.100 - 00:00:03.100] Good morning, how can I help?\nSpeaker 2: [00:00:03.100 - 00:00:06.200] I need to cancel my subscription."
|
|
98
101
|
|
|
99
102
|
# 5 analyses in one call: summary, reason, action, topic, sentiment
|
|
100
103
|
diagnostic, _status = analysis.create_diagnostic_v1_analyze_diagnostic_post_with_http_info(
|
|
101
104
|
FalaAI::DiagnosticRequest.new(text: transcript, language: 'pt-BR', duration_seconds: 81.46)
|
|
102
105
|
)
|
|
103
106
|
|
|
104
|
-
# Compliance risk score + violations + auditable report
|
|
107
|
+
# Compliance risk score + violations + auditable report (Risk Audit requires a diarized 'dialog', not 'text')
|
|
105
108
|
audit, _status = analysis.create_risk_audit_v1_analyze_risk_audit_post_with_http_info(
|
|
106
|
-
FalaAI::RiskAuditRequest.new(
|
|
109
|
+
FalaAI::RiskAuditRequest.new(dialog: dialog, language: 'pt-BR', response_language: 'pt-BR', duration_seconds: 81.46)
|
|
107
110
|
)
|
|
108
111
|
```
|
|
109
112
|
|
|
@@ -149,6 +152,8 @@ FalaAI is **language-independent** - integrate at **any point** of your pipeline
|
|
|
149
152
|
|
|
150
153
|
> These are **integration examples**, not certified native integrations. Any platform can integrate through **REST / cURL** - the standard, language-independent path. Native ingestion connectors are on the roadmap.
|
|
151
154
|
|
|
155
|
+
**This SDK's language (Ruby):** FalaAI is language-independent; this package targets **Ruby** backends (your target platform does not need to be built in Ruby).
|
|
156
|
+
|
|
152
157
|
## BYOT - Bring Your Own Transcription
|
|
153
158
|
|
|
154
159
|
Already have speech-to-text (Whisper, Deepgram, AssemblyAI, your own)? **Skip Transcription** and send the text straight to **Diagnostic** and/or **Risk Audit**. You only pay for what you use.
|
|
@@ -171,7 +176,7 @@ Already have speech-to-text (Whisper, Deepgram, AssemblyAI, your own)? **Skip Tr
|
|
|
171
176
|
|
|
172
177
|
## Examples
|
|
173
178
|
|
|
174
|
-
Runnable examples in [`examples/`](
|
|
179
|
+
Runnable examples in [`examples/`](https://github.com/ActionTecBr/falaai-api-ruby/tree/main/examples): `health.rb`, `transcribe.rb`, `diagnose.rb`, `audit.rb`, `whatsapp.rb`.
|
|
175
180
|
|
|
176
181
|
## Authentication
|
|
177
182
|
|
|
@@ -203,7 +208,7 @@ end
|
|
|
203
208
|
| Requirement | Version |
|
|
204
209
|
|---|---|
|
|
205
210
|
| Ruby | 2.7+ |
|
|
206
|
-
| API | v1.21.
|
|
211
|
+
| API | v1.21.67 |
|
|
207
212
|
|
|
208
213
|
## Documentation
|
|
209
214
|
|
|
@@ -216,7 +221,7 @@ end
|
|
|
216
221
|
|
|
217
222
|
## Versioning
|
|
218
223
|
|
|
219
|
-
Semantic versioning; the SDK version tracks the API version (`1.21.
|
|
224
|
+
Semantic versioning; the SDK version tracks the API version (`1.21.67`). See [CHANGELOG.md](CHANGELOG.md) and [Releases](https://github.com/ActionTecBr/falaai-api-ruby/releases).
|
|
220
225
|
|
|
221
226
|
## Security
|
|
222
227
|
|
|
@@ -235,4 +240,5 @@ See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
|
235
240
|
- Website: <https://falaai.action.tec.br>
|
|
236
241
|
- API base URL: <https://api01-falaai.action.tec.br>
|
|
237
242
|
- GitHub organization: <https://github.com/ActionTecBr>
|
|
243
|
+
- Run in Postman: [](https://www.postman.com/liviopanizza-7615625/falaai-api/collection/tzxf8gc/falaai-api)
|
|
238
244
|
- Other SDKs: Python, Node.js, PHP, Go, Java, .NET.
|
data/docs/AnalysisApi.md
CHANGED
|
@@ -14,6 +14,8 @@ All URIs are relative to *https://api01-falaai.action.tec.br*
|
|
|
14
14
|
|
|
15
15
|
Analyze a call transcript — 5 parallel analyses
|
|
16
16
|
|
|
17
|
+
Analyzes a call transcript and returns six structured blocks: dialogue summary, contact reason, identified action, theme label, predominant sentiment and identified participants with roles, names, confidence and evidence; use it for a fast, generic diagnosis of what happened in a call, and use /v1/analyze/riskAudit instead when the goal is compliance violation auditing. Provide at least one of dialog (primary source: diarized transcript in the format 'Speaker 1: [00:00:00.540 - 00:00:01.139] text', speaker labels accepted in any case as Speaker, Interlocutor, Hablante, Locutor or Orador plus number) or text (plain transcript fallback), each up to 300,000 characters; when dialog is used duration_seconds is required by the schema and, when provided, must be >= the last turn end time. Required: language; optional: model (always 'falaai-diagnostic-1'), audio_events, response_language (language of the results, defaulting to language), participants (up to 10 with interlocutor and optional name and role agent/client/bot, ground truth when the role is informed and otherwise inferred), call_direction (inferred when omitted), client_reference_id (echoed verbatim, charset [A-Za-z0-9 _/:.-], max 60). Returns id, object 'analysis', response_language, analysis with the six blocks, usage (characters, credits_consumed, processing_ms) and html_report (base64 gzip) only when dialog is provided; with text-only input the participant roles are forced to confidence 'low'. Credits are charged per character of the transcript (0.03/char, counted without speaker labels, timestamps and inline expression tokens, minimum 500 characters, plus 50 characters per audio event) and the amount charged is returned in usage.credits_consumed. Stateless: neither the transcript nor the analysis is persisted (only billing and usage metadata is logged), protecting personal data under LGPD.
|
|
18
|
+
|
|
17
19
|
### Examples
|
|
18
20
|
|
|
19
21
|
```ruby
|
|
@@ -81,6 +83,8 @@ end
|
|
|
81
83
|
|
|
82
84
|
Compliance Risk Audit — conversation compliance analysis
|
|
83
85
|
|
|
86
|
+
Runs a compliance risk audit on a diarized call transcript, detecting violations and positives, applying the ISO 31000 risk matrix, classifying the conversation into a level and returning the verdict with the applied actions and the NIST/OWASP risk framework enquadramento; use it for compliance and quality audits of company-agent-to-client calls, not for generic conversation summarization. Required fields: dialog (diarized transcript in the format 'Speaker 1: [00:00:00.540 - 00:00:01.139] text', speaker labels accepted in any case as Speaker, Interlocutor, Hablante, Locutor or Orador plus number; plain text is not accepted; max 300,000 characters), duration_seconds (total audio duration in seconds, must be >= the last turn end time) and language plus response_language (only pt-BR, en-US or es-ES). Optional: model (always 'falaai-risk-audit-1'), audio_events (up to 500, each requiring event and start_s), participants (up to 10 with interlocutor and role agent/client/bot, ground truth when provided, else inferred), call_direction (inbound/outbound, inferred when omitted), response_format (only 'v2'), client_reference_id (echoed verbatim, charset [A-Za-z0-9 _/:.-], max 60). Returns response (V2) with meta+usage, participants, verdict with level and applied actions, scores, detections (violations, positives, client alerts), analysis frameworks, timeline, categories_summary, executive summary, scoring explanation and an HTML report (gzip+base64). Credits are charged per character of the spoken transcript (0.09/char, counted without speaker labels and inline expression tokens, minimum 1,000 characters, plus 50 characters per audio event) and a minimum-cost guard may raise the final amount, so response.meta.usage.credits_consumed is the amount actually charged. Stateless: neither the transcript nor the analysis is persisted (only billing and usage metadata is logged), protecting personal data under LGPD.
|
|
87
|
+
|
|
84
88
|
### Examples
|
|
85
89
|
|
|
86
90
|
```ruby
|
data/docs/DiagnosticUsage.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **characters** | **Integer** | Total characters analyzed | |
|
|
8
|
-
| **credits_consumed** | **
|
|
8
|
+
| **credits_consumed** | **Float** | Credits consumed: per character, round(max(characters, 500) * 0.03, 2) | |
|
|
9
9
|
| **processing_ms** | **Integer** | Total processing time in milliseconds | |
|
|
10
10
|
|
|
11
11
|
## Example
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# FalaAI::ResponseExtractConversationsV1WhatsappExtractconversationsPost
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | Unique identifier. Prefix 'wc-' + UUID | |
|
|
8
|
+
| **object** | **String** | Object type. Always 'whatsapp_preview' | |
|
|
9
|
+
| **usage** | [**WhatsappUsage**](WhatsappUsage.md) | Usage and processing information | |
|
|
10
|
+
| **conversations** | [**Array<WhatsappConversation>**](WhatsappConversation.md) | Segmented conversations | |
|
|
11
|
+
| **client_reference_id** | **String** | Client-supplied ID echoed verbatim (if provided) | [optional] |
|
|
12
|
+
| **meta** | [**WhatsappMeta**](WhatsappMeta.md) | Segmentation parameters and counts | |
|
|
13
|
+
| **dry_run** | **Boolean** | Always true (preview: no AI call, no charge) | |
|
|
14
|
+
| **credits_charged** | **Integer** | Always 0 in preview | |
|
|
15
|
+
| **credits_total** | **Float** | TOTAL credits = exact SUM of the selected conversations (2 decimals, NO rounding up) | |
|
|
16
|
+
| **params** | [**WhatsappPreviewParams**](WhatsappPreviewParams.md) | Filter parameters actually used (reuse them in the extraction) | |
|
|
17
|
+
| **windows** | [**Array<WhatsappPreviewWindow>**](WhatsappPreviewWindow.md) | Explicit windows used (empty when a single start/end range was used) | |
|
|
18
|
+
| **items** | [**Array<WhatsappPreviewItem>**](WhatsappPreviewItem.md) | Per-conversation detail (send back as `windows` to extract only what you want) | |
|
|
19
|
+
| **warnings** | **Array<String>** | Human-readable notices about what would be ignored | |
|
|
20
|
+
|
|
21
|
+
## Example
|
|
22
|
+
|
|
23
|
+
```ruby
|
|
24
|
+
require 'falaai-api'
|
|
25
|
+
|
|
26
|
+
instance = FalaAI::ResponseExtractConversationsV1WhatsappExtractconversationsPost.new(
|
|
27
|
+
id: null,
|
|
28
|
+
object: null,
|
|
29
|
+
usage: null,
|
|
30
|
+
conversations: null,
|
|
31
|
+
client_reference_id: null,
|
|
32
|
+
meta: null,
|
|
33
|
+
dry_run: null,
|
|
34
|
+
credits_charged: null,
|
|
35
|
+
credits_total: null,
|
|
36
|
+
params: null,
|
|
37
|
+
windows: null,
|
|
38
|
+
items: null,
|
|
39
|
+
warnings: null
|
|
40
|
+
)
|
|
41
|
+
```
|
|
42
|
+
|
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
| **label** | **String** | Action label | |
|
|
9
9
|
| **description** | **String** | Action description | |
|
|
10
10
|
| **priority** | **String** | CRITICO/ALTO/MEDIO/BAIXO | |
|
|
11
|
-
| **color** | **String** | Color | [optional][default to ''] |
|
|
12
|
-
| **icon** | **String** | Icon | [optional][default to ''] |
|
|
13
11
|
| **condition** | **String** | Condition | [optional] |
|
|
14
12
|
| **reason** | **String** | Reason | [optional][default to ''] |
|
|
15
13
|
|
|
@@ -23,8 +21,6 @@ instance = FalaAI::RiskAuditAppliedActionV2.new(
|
|
|
23
21
|
label: null,
|
|
24
22
|
description: null,
|
|
25
23
|
priority: null,
|
|
26
|
-
color: null,
|
|
27
|
-
icon: null,
|
|
28
24
|
condition: null,
|
|
29
25
|
reason: null
|
|
30
26
|
)
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **risk_origin** | **String** | Risk origin | [optional] |
|
|
8
8
|
| **has_zero_tolerance_violation** | **Boolean** | Has zero-tolerance violation | [optional] |
|
|
9
|
-
| **deterministic_validator_changes** | **Array<Object>** | Deterministic validator changes | [optional] |
|
|
10
9
|
|
|
11
10
|
## Example
|
|
12
11
|
|
|
@@ -15,8 +14,7 @@ require 'falaai-api'
|
|
|
15
14
|
|
|
16
15
|
instance = FalaAI::RiskAuditAuditDecisionsV2.new(
|
|
17
16
|
risk_origin: null,
|
|
18
|
-
has_zero_tolerance_violation: null
|
|
19
|
-
deterministic_validator_changes: null
|
|
17
|
+
has_zero_tolerance_violation: null
|
|
20
18
|
)
|
|
21
19
|
```
|
|
22
20
|
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
| **positive_negative_ratio** | **Object** | Positive:negative ratio | [optional] |
|
|
13
13
|
| **global_risk_severity** | **String** | Global risk severity code | [optional] |
|
|
14
14
|
| **global_risk_severity_label** | **String** | Global risk severity label | [optional] |
|
|
15
|
-
| **global_risk_severity_color** | **String** | Global risk severity color | [optional] |
|
|
16
15
|
| **risk_likelihood_avg** | **Float** | Risk likelihood avg | [optional] |
|
|
17
16
|
| **risk_impact_avg** | **Float** | Risk impact avg | [optional] |
|
|
18
17
|
|
|
@@ -30,7 +29,6 @@ instance = FalaAI::RiskAuditConversationScoresV2.new(
|
|
|
30
29
|
positive_negative_ratio: null,
|
|
31
30
|
global_risk_severity: null,
|
|
32
31
|
global_risk_severity_label: null,
|
|
33
|
-
global_risk_severity_color: null,
|
|
34
32
|
risk_likelihood_avg: null,
|
|
35
33
|
risk_impact_avg: null
|
|
36
34
|
)
|
|
@@ -7,50 +7,15 @@
|
|
|
7
7
|
| **turn** | **Integer** | Turn number | [optional] |
|
|
8
8
|
| **interlocutor** | **String** | Speaker | [optional] |
|
|
9
9
|
| **role** | **String** | Role | [optional] |
|
|
10
|
-
| **timestamp_start_s** | **Float** | Start (s) | [optional] |
|
|
11
|
-
| **timestamp_end_s** | **Float** | End (s) | [optional] |
|
|
12
10
|
| **timestamp_formatted** | **String** | Formatted timestamp | [optional] |
|
|
13
11
|
| **term_text** | **String** | Detected term | [optional] |
|
|
14
|
-
| **suggested_term_for_bank** | **Object** | Suggested term for bank | [optional] |
|
|
15
|
-
| **category** | **String** | Category code | [optional] |
|
|
16
12
|
| **category_label** | **String** | Category label (i18n) | |
|
|
17
|
-
| **
|
|
18
|
-
| **category_icon** | **String** | Category icon | [optional] |
|
|
13
|
+
| **subcategory_label** | **String** | Subcategory label (i18n) | [optional] |
|
|
19
14
|
| **criticality** | **String** | Criticality | [optional] |
|
|
20
|
-
| **
|
|
21
|
-
| **category_type** | **String** | Category type | [optional] |
|
|
22
|
-
| **category_group** | **String** | Category group label (i18n) | |
|
|
23
|
-
| **nature** | **String** | Nature | [optional] |
|
|
24
|
-
| **llm_confidence** | **Float** | LLM confidence | [optional] |
|
|
15
|
+
| **status** | **String** | Status | [optional] |
|
|
25
16
|
| **reason** | **String** | Reason | [optional] |
|
|
26
|
-
| **is_valid_context** | **Boolean** | Valid context | [optional] |
|
|
27
|
-
| **risk_probability** | **Float** | Risk probability | [optional] |
|
|
28
|
-
| **risk_impact** | **Float** | Risk impact | [optional] |
|
|
29
|
-
| **category_weight** | **Float** | Category weight | [optional] |
|
|
30
|
-
| **turn_sentiment** | **String** | Turn sentiment | [optional] |
|
|
31
|
-
| **intensity** | **Object** | Intensity | [optional] |
|
|
32
|
-
| **mod_applied** | **Float** | Total modifier applied | [optional] |
|
|
33
|
-
| **mac_applied** | **Float** | Audio modifier applied | [optional] |
|
|
34
|
-
| **mvad_applied** | **Float** | Intensity modifier applied | [optional] |
|
|
35
|
-
| **mod_formula** | **String** | Modifier formula | [optional] |
|
|
36
|
-
| **mac_details** | **Array<Hash<String, Object>>** | MAC details | [optional] |
|
|
37
|
-
| **calibration_reason** | **String** | Calibration reason | [optional] |
|
|
38
17
|
| **final_score** | **Float** | Final score | [optional] |
|
|
39
|
-
| **final_score_formula** | **String** | Final score formula | [optional] |
|
|
40
|
-
| **conversation_limit** | **Object** | Conversation limit | [optional] |
|
|
41
|
-
| **apply_saturation** | **Boolean** | Apply saturation | [optional] |
|
|
42
|
-
| **block_repetition** | **Boolean** | Block repetition | [optional] |
|
|
43
|
-
| **status** | **String** | Status | [optional] |
|
|
44
|
-
| **effective_impact** | **Float** | Effective impact | [optional] |
|
|
45
|
-
| **saturation_factor** | **Float** | Saturation factor | [optional] |
|
|
46
|
-
| **saturation_formula** | **String** | Saturation formula | [optional] |
|
|
47
|
-
| **threshold_formula** | **String** | Threshold formula | [optional] |
|
|
48
|
-
| **blocked_formula** | **String** | Blocked formula | [optional] |
|
|
49
|
-
| **reconciliation_note** | **String** | Reconciliation note | [optional] |
|
|
50
18
|
| **violated_frameworks** | **Array<Object>** | Violated frameworks | [optional] |
|
|
51
|
-
| **citation_fidelity** | **Boolean** | Citation fidelity | [optional][default to true] |
|
|
52
|
-
| **subcategory** | **String** | Subcategory code | [optional] |
|
|
53
|
-
| **subcategory_label** | **String** | Subcategory label (i18n) | [optional] |
|
|
54
19
|
|
|
55
20
|
## Example
|
|
56
21
|
|
|
@@ -61,50 +26,15 @@ instance = FalaAI::RiskAuditDetectionItemV2.new(
|
|
|
61
26
|
turn: null,
|
|
62
27
|
interlocutor: null,
|
|
63
28
|
role: null,
|
|
64
|
-
timestamp_start_s: null,
|
|
65
|
-
timestamp_end_s: null,
|
|
66
29
|
timestamp_formatted: null,
|
|
67
30
|
term_text: null,
|
|
68
|
-
suggested_term_for_bank: null,
|
|
69
|
-
category: null,
|
|
70
31
|
category_label: null,
|
|
71
|
-
|
|
72
|
-
category_icon: null,
|
|
32
|
+
subcategory_label: null,
|
|
73
33
|
criticality: null,
|
|
74
|
-
|
|
75
|
-
category_type: null,
|
|
76
|
-
category_group: null,
|
|
77
|
-
nature: null,
|
|
78
|
-
llm_confidence: null,
|
|
34
|
+
status: null,
|
|
79
35
|
reason: null,
|
|
80
|
-
is_valid_context: null,
|
|
81
|
-
risk_probability: null,
|
|
82
|
-
risk_impact: null,
|
|
83
|
-
category_weight: null,
|
|
84
|
-
turn_sentiment: null,
|
|
85
|
-
intensity: null,
|
|
86
|
-
mod_applied: null,
|
|
87
|
-
mac_applied: null,
|
|
88
|
-
mvad_applied: null,
|
|
89
|
-
mod_formula: null,
|
|
90
|
-
mac_details: null,
|
|
91
|
-
calibration_reason: null,
|
|
92
36
|
final_score: null,
|
|
93
|
-
|
|
94
|
-
conversation_limit: null,
|
|
95
|
-
apply_saturation: null,
|
|
96
|
-
block_repetition: null,
|
|
97
|
-
status: null,
|
|
98
|
-
effective_impact: null,
|
|
99
|
-
saturation_factor: null,
|
|
100
|
-
saturation_formula: null,
|
|
101
|
-
threshold_formula: null,
|
|
102
|
-
blocked_formula: null,
|
|
103
|
-
reconciliation_note: null,
|
|
104
|
-
violated_frameworks: null,
|
|
105
|
-
citation_fidelity: null,
|
|
106
|
-
subcategory: null,
|
|
107
|
-
subcategory_label: null
|
|
37
|
+
violated_frameworks: null
|
|
108
38
|
)
|
|
109
39
|
```
|
|
110
40
|
|
data/docs/RiskAuditSummaryV2.md
CHANGED
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
| **blocked** | **Integer** | Blocked detections | [optional] |
|
|
12
12
|
| **audio_events_used** | **Integer** | Audio events used | [optional] |
|
|
13
13
|
| **audio_events_aggravated** | **Integer** | Audio events aggravated | [optional] |
|
|
14
|
-
| **mac_audio_applied** | **Object** | MAC audio applied | [optional] |
|
|
15
|
-
| **mvad_applied** | **Object** | MVAD applied | [optional] |
|
|
16
14
|
| **total_participants** | **Integer** | Total participants | [optional] |
|
|
17
15
|
| **total_agents** | **Integer** | Total agents | [optional] |
|
|
18
16
|
| **total_clients** | **Integer** | Total clients | [optional] |
|
|
@@ -34,8 +32,6 @@ instance = FalaAI::RiskAuditSummaryV2.new(
|
|
|
34
32
|
blocked: null,
|
|
35
33
|
audio_events_used: null,
|
|
36
34
|
audio_events_aggravated: null,
|
|
37
|
-
mac_audio_applied: null,
|
|
38
|
-
mvad_applied: null,
|
|
39
35
|
total_participants: null,
|
|
40
36
|
total_agents: null,
|
|
41
37
|
total_clients: null,
|
data/docs/RiskAuditUsageV2.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **characters** | **Integer** | Characters analyzed | |
|
|
8
|
-
| **credits_consumed** | **
|
|
8
|
+
| **credits_consumed** | **Float** | Credits consumed | |
|
|
9
9
|
| **processing_ms** | **Integer** | Processing time (ms) | |
|
|
10
10
|
|
|
11
11
|
## Example
|
data/docs/RiskAuditVerdictV2.md
CHANGED
|
@@ -6,11 +6,8 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **label** | **String** | Human-readable verdict | [optional] |
|
|
8
8
|
| **level_code** | **String** | Classification level code | [optional] |
|
|
9
|
-
| **color** | **String** | Level color | [optional] |
|
|
10
|
-
| **icon** | **String** | Level icon | [optional] |
|
|
11
9
|
| **risk_matrix** | **Hash<String, Object>** | Risk matrix | [optional] |
|
|
12
10
|
| **applied_actions** | [**Array<RiskAuditAppliedActionV2>**](RiskAuditAppliedActionV2.md) | Applied actions | [optional] |
|
|
13
|
-
| **decision_details** | **Object** | Decision details | [optional] |
|
|
14
11
|
|
|
15
12
|
## Example
|
|
16
13
|
|
|
@@ -20,11 +17,8 @@ require 'falaai-api'
|
|
|
20
17
|
instance = FalaAI::RiskAuditVerdictV2.new(
|
|
21
18
|
label: null,
|
|
22
19
|
level_code: null,
|
|
23
|
-
color: null,
|
|
24
|
-
icon: null,
|
|
25
20
|
risk_matrix: null,
|
|
26
|
-
applied_actions: null
|
|
27
|
-
decision_details: null
|
|
21
|
+
applied_actions: null
|
|
28
22
|
)
|
|
29
23
|
```
|
|
30
24
|
|
data/docs/SpeechApi.md
CHANGED
|
@@ -13,6 +13,8 @@ All URIs are relative to *https://api01-falaai.action.tec.br*
|
|
|
13
13
|
|
|
14
14
|
Transcribe audio to text
|
|
15
15
|
|
|
16
|
+
Transcribes one uploaded audio file into text with speaker diarization and timestamped audio events (laughs, sighs, pauses), returning the full transcript, a turn-by-turn dialog with speaker labels and start/end timestamps, the detected events and the word count. Use it when a recording must become text for analysis, review or storage of the transcript. The required file field takes a single audio upload limited to 1GB and 3 hours, with accepted MIME types audio/mpeg, audio/mp3, audio/mp4, audio/m4a, audio/wav, audio/wave, audio/x-wav, audio/flac, audio/x-flac, audio/ogg, audio/opus, video/ogg, audio/webm, video/webm, audio/aac and audio/x-aac. model is optional and defaults to falaai-transcribe-1, the only supported value; language is an optional two-letter code (pt, en, es, fr, de, it, ja, ko, nl, pl, ru, tr, zh, vi, id, th, ar, hi, cs, da, el, fi, he, hu, ms, no, ro, sk, sv, ta, uk) that forces the audio language and is auto-detected when omitted; client_reference_id is optional, charset A-Za-z0-9 space _/:.- up to 60 chars, echoed verbatim (not idempotency). Billing is 1 credit per second of processed audio with a minimum of 10 credits per request, rounded to 2 decimals; usage reports credits_consumed and processing_ms. Stateless: the audio is processed in memory and never persisted (LGPD). Returns id (tr-), language, language_confidence, duration_seconds, text, dialog, audio_events, event_types, word_count and input metadata (duration, format, codec, sample rate, channels).
|
|
17
|
+
|
|
16
18
|
### Examples
|
|
17
19
|
|
|
18
20
|
```ruby
|
data/docs/TranscriptionUsage.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **audio_seconds** | **Float** | Actual audio duration processed in seconds | |
|
|
8
|
-
| **credits_consumed** | **
|
|
8
|
+
| **credits_consumed** | **Float** | Number of credits consumed in this request | |
|
|
9
9
|
| **processing_ms** | **Integer** | Total processing time in milliseconds | |
|
|
10
10
|
|
|
11
11
|
## Example
|
data/docs/WhatsappApi.md
CHANGED
|
@@ -9,10 +9,12 @@ All URIs are relative to *https://api01-falaai.action.tec.br*
|
|
|
9
9
|
|
|
10
10
|
## extract_conversations_v1_whatsapp_extract_conversations_post
|
|
11
11
|
|
|
12
|
-
> <
|
|
12
|
+
> <ResponseExtractConversationsV1WhatsappExtractconversationsPost> extract_conversations_v1_whatsapp_extract_conversations_post(file, timezone, date_format, opts)
|
|
13
13
|
|
|
14
14
|
Extract and segment WhatsApp conversations from an export
|
|
15
15
|
|
|
16
|
+
Extracts and segments the conversations of a WhatsApp export (.zip or .txt containing chat.txt in UTF-8 with at least one turn) and, unless it is a preview, resolves each selected conversation with AI by transcribing voice/audio/video notes and describing visual expressions, returning the segmented conversations with speakers, dialogs, counts and usage. Use dry_run=true for a PREVIEW: it validates the file, segments the conversations, counts media and ESTIMATES the credits WITHOUT calling the AI and WITHOUT charging (credits_charged=0), returning object whatsapp_preview with credits_total, the params actually used, the windows, per-conversation items and warnings. The window is given either as a single start/end pair or as windows, a JSON string holding a non-empty list of sub-objects each with start and end; windows must not be combined with start/end, and a windows selection is the deduplicated chronological union of the overlaps, which bypasses the noise filter and keeps conversations that are monologues or below min_messages, while for a single window sending only one of start/end is rejected and empty/all-zeros values select the real period of the export, both being allowed to be omitted in dry_run while outside dry_run both absent is rejected. timezone and date_format are required, where date_format must be day_first, month_first or year_first. gap_minutes is optional (default 720) and splits conversations on idle gaps, min_messages is optional (default 2) and is the minimum messages kept per conversation outside the explicit windows selection, voice_note is optional (default true) and turns voice/audio/video media into text, expression is optional (default true) and describes visual expressions (figurinha, GIF, emoji), and client_reference_id is optional, echoed verbatim, charset A-Za-z0-9 space _/:.- up to 60 chars. Billing outside the preview is 0.15 credit per conversation plus 0.15 per figurinha, 0.18 per GIF and 0.1 per emoji (only with expression=true) plus 0.19 per second of voice/audio/video (only with voice_note=true), rounded to 2 decimals with no rounding up, and the preview credits_total is the same exact sum with 2 decimals; files are limited to 1GB and the endpoint is stateless (export and media processed in memory, temporary files removed, nothing persisted), returning object conversations with id (wc-), usage and the conversations (conversation_id, first_at, last_at, duration_seconds, speakers, dialog, message_count, characters) plus meta.
|
|
17
|
+
|
|
16
18
|
### Examples
|
|
17
19
|
|
|
18
20
|
```ruby
|
|
@@ -26,21 +28,23 @@ end
|
|
|
26
28
|
|
|
27
29
|
api_instance = FalaAI::WhatsappApi.new
|
|
28
30
|
file = File.new('/path/to/some/file') # File |
|
|
29
|
-
start = 'start_example' # String |
|
|
30
|
-
_end = '_end_example' # String |
|
|
31
31
|
timezone = 'timezone_example' # String |
|
|
32
32
|
date_format = 'date_format_example' # String |
|
|
33
33
|
opts = {
|
|
34
|
+
start: 'start_example', # String | Inicio da janela. Obrigatorio fora do dry_run; no dry_run ausente = primeiro turno do export.
|
|
35
|
+
_end: '_end_example', # String | Fim da janela. Obrigatorio fora do dry_run; no dry_run ausente = ultimo turno do export.
|
|
36
|
+
windows: 'windows_example', # String | Selecao explicita por varias janelas: JSON [{\\\"start\\\":\\\"...\\\",\\\"end\\\":\\\"...\\\"}]. Nao combinar com 'start'/'end'.
|
|
34
37
|
gap_minutes: 8.14, # Float |
|
|
35
38
|
min_messages: 56, # Integer |
|
|
36
39
|
voice_note: true, # Boolean | Transcrever mensagens de voz/video gravadas na hora?
|
|
37
40
|
expression: true, # Boolean | Descrever expressoes visuais (figurinha/GIF/imagem)?
|
|
41
|
+
dry_run: true, # Boolean | So analisa o arquivo: valida, segmenta e ESTIMA os creditos SEM chamar a IA e SEM debitar (credits_charged=0).
|
|
38
42
|
client_reference_id: 'client_reference_id_example' # String |
|
|
39
43
|
}
|
|
40
44
|
|
|
41
45
|
begin
|
|
42
46
|
# Extract and segment WhatsApp conversations from an export
|
|
43
|
-
result = api_instance.extract_conversations_v1_whatsapp_extract_conversations_post(file,
|
|
47
|
+
result = api_instance.extract_conversations_v1_whatsapp_extract_conversations_post(file, timezone, date_format, opts)
|
|
44
48
|
p result
|
|
45
49
|
rescue FalaAI::ApiError => e
|
|
46
50
|
puts "Error when calling WhatsappApi->extract_conversations_v1_whatsapp_extract_conversations_post: #{e}"
|
|
@@ -51,15 +55,15 @@ end
|
|
|
51
55
|
|
|
52
56
|
This returns an Array which contains the response data, status code and headers.
|
|
53
57
|
|
|
54
|
-
> <Array(<
|
|
58
|
+
> <Array(<ResponseExtractConversationsV1WhatsappExtractconversationsPost>, Integer, Hash)> extract_conversations_v1_whatsapp_extract_conversations_post_with_http_info(file, timezone, date_format, opts)
|
|
55
59
|
|
|
56
60
|
```ruby
|
|
57
61
|
begin
|
|
58
62
|
# Extract and segment WhatsApp conversations from an export
|
|
59
|
-
data, status_code, headers = api_instance.extract_conversations_v1_whatsapp_extract_conversations_post_with_http_info(file,
|
|
63
|
+
data, status_code, headers = api_instance.extract_conversations_v1_whatsapp_extract_conversations_post_with_http_info(file, timezone, date_format, opts)
|
|
60
64
|
p status_code # => 2xx
|
|
61
65
|
p headers # => { ... }
|
|
62
|
-
p data # => <
|
|
66
|
+
p data # => <ResponseExtractConversationsV1WhatsappExtractconversationsPost>
|
|
63
67
|
rescue FalaAI::ApiError => e
|
|
64
68
|
puts "Error when calling WhatsappApi->extract_conversations_v1_whatsapp_extract_conversations_post_with_http_info: #{e}"
|
|
65
69
|
end
|
|
@@ -70,19 +74,21 @@ end
|
|
|
70
74
|
| Name | Type | Description | Notes |
|
|
71
75
|
| ---- | ---- | ----------- | ----- |
|
|
72
76
|
| **file** | **File** | | |
|
|
73
|
-
| **start** | **String** | | |
|
|
74
|
-
| **_end** | **String** | | |
|
|
75
77
|
| **timezone** | **String** | | |
|
|
76
78
|
| **date_format** | **String** | | |
|
|
79
|
+
| **start** | **String** | Inicio da janela. Obrigatorio fora do dry_run; no dry_run ausente = primeiro turno do export. | [optional] |
|
|
80
|
+
| **_end** | **String** | Fim da janela. Obrigatorio fora do dry_run; no dry_run ausente = ultimo turno do export. | [optional] |
|
|
81
|
+
| **windows** | **String** | Selecao explicita por varias janelas: JSON [{\\\"start\\\":\\\"...\\\",\\\"end\\\":\\\"...\\\"}]. Nao combinar com 'start'/'end'. | [optional] |
|
|
77
82
|
| **gap_minutes** | **Float** | | [optional][default to 720] |
|
|
78
83
|
| **min_messages** | **Integer** | | [optional][default to 2] |
|
|
79
84
|
| **voice_note** | **Boolean** | Transcrever mensagens de voz/video gravadas na hora? | [optional][default to true] |
|
|
80
85
|
| **expression** | **Boolean** | Descrever expressoes visuais (figurinha/GIF/imagem)? | [optional][default to true] |
|
|
86
|
+
| **dry_run** | **Boolean** | So analisa o arquivo: valida, segmenta e ESTIMA os creditos SEM chamar a IA e SEM debitar (credits_charged=0). | [optional][default to false] |
|
|
81
87
|
| **client_reference_id** | **String** | | [optional] |
|
|
82
88
|
|
|
83
89
|
### Return type
|
|
84
90
|
|
|
85
|
-
[**
|
|
91
|
+
[**ResponseExtractConversationsV1WhatsappExtractconversationsPost**](ResponseExtractConversationsV1WhatsappExtractconversationsPost.md)
|
|
86
92
|
|
|
87
93
|
### Authorization
|
|
88
94
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **conversation_id** | **String** |
|
|
7
|
+
| **conversation_id** | **String** | Stable conversation id: yyyymmddhhmm-<first speaker>[-xN for >2 speakers] | |
|
|
8
8
|
| **first_at** | **String** | Real start (wall-clock, ISO) | |
|
|
9
9
|
| **last_at** | **String** | Real end (wall-clock, ISO) | |
|
|
10
10
|
| **duration_seconds** | **Float** | (last - first) + last turn duration | |
|
data/docs/WhatsappMeta.md
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
| **conversations_selected** | **Integer** | Final conversations returned | |
|
|
22
22
|
| **voice_note** | **Boolean** | Voice/video medias were transcribed | |
|
|
23
23
|
| **expression** | **Boolean** | Visual expressions were described | |
|
|
24
|
+
| **windows** | **Integer** | Explicit windows used (0 = simple start/end range) | |
|
|
24
25
|
|
|
25
26
|
## Example
|
|
26
27
|
|
|
@@ -44,7 +45,8 @@ instance = FalaAI::WhatsappMeta.new(
|
|
|
44
45
|
monologues_dropped: null,
|
|
45
46
|
conversations_selected: null,
|
|
46
47
|
voice_note: null,
|
|
47
|
-
expression: null
|
|
48
|
+
expression: null,
|
|
49
|
+
windows: null
|
|
48
50
|
)
|
|
49
51
|
```
|
|
50
52
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# FalaAI::WhatsappPreviewItem
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **conversation_id** | **String** | Stable id: yyyymmddhhmm-<first speaker>[-xN for >2 speakers] | |
|
|
8
|
+
| **first_at** | **String** | Conversation start (ISO) | |
|
|
9
|
+
| **last_at** | **String** | Conversation end (ISO) | |
|
|
10
|
+
| **duration_minutes** | **Float** | Conversation duration in minutes | |
|
|
11
|
+
| **messages** | **Integer** | Messages in this conversation | |
|
|
12
|
+
| **characters** | **Integer** | Characters of this conversation (estimate: media text is only replaced by tokens on extraction) | |
|
|
13
|
+
| **media** | [**WhatsappPreviewItemMedia**](WhatsappPreviewItemMedia.md) | Media of this conversation | |
|
|
14
|
+
| **credits** | [**WhatsappPreviewItemCredits**](WhatsappPreviewItemCredits.md) | Credits of this conversation | |
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
|
|
18
|
+
```ruby
|
|
19
|
+
require 'falaai-api'
|
|
20
|
+
|
|
21
|
+
instance = FalaAI::WhatsappPreviewItem.new(
|
|
22
|
+
conversation_id: null,
|
|
23
|
+
first_at: null,
|
|
24
|
+
last_at: null,
|
|
25
|
+
duration_minutes: null,
|
|
26
|
+
messages: null,
|
|
27
|
+
characters: null,
|
|
28
|
+
media: null,
|
|
29
|
+
credits: null
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# FalaAI::WhatsappPreviewItemBreakdown
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **conversation** | **Float** | Conversation credit (0,15) | |
|
|
8
|
+
| **figurinha** | **Float** | Figurinha credits of this conversation | |
|
|
9
|
+
| **gif** | **Float** | GIF credits of this conversation | |
|
|
10
|
+
| **emoji** | **Float** | Emoji credits of this conversation | |
|
|
11
|
+
| **audio** | **Float** | Audio credits of this conversation | |
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```ruby
|
|
16
|
+
require 'falaai-api'
|
|
17
|
+
|
|
18
|
+
instance = FalaAI::WhatsappPreviewItemBreakdown.new(
|
|
19
|
+
conversation: null,
|
|
20
|
+
figurinha: null,
|
|
21
|
+
gif: null,
|
|
22
|
+
emoji: null,
|
|
23
|
+
audio: null
|
|
24
|
+
)
|
|
25
|
+
```
|
|
26
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# FalaAI::WhatsappPreviewItemCredits
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **total** | **Float** | Credits of THIS conversation (2 decimals, exact fraction — the charge is ONE ceil on the batch total) | |
|
|
8
|
+
| **breakdown** | [**WhatsappPreviewItemBreakdown**](WhatsappPreviewItemBreakdown.md) | Credits by component for THIS conversation | |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'falaai-api'
|
|
14
|
+
|
|
15
|
+
instance = FalaAI::WhatsappPreviewItemCredits.new(
|
|
16
|
+
total: null,
|
|
17
|
+
breakdown: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# FalaAI::WhatsappPreviewItemMedia
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **figurinha** | **Integer** | Figurinha occurrences in this conversation (0 quando expression=false) | |
|
|
8
|
+
| **gif** | **Integer** | GIF occurrences in this conversation (0 quando expression=false) | |
|
|
9
|
+
| **emoji** | **Integer** | Emoji occurrences in this conversation (0 quando expression=false) | |
|
|
10
|
+
| **ptt** | **Integer** | Voice/audio/video turns in this conversation (cobra 0,19/segundo SO quando voice_note=true) | |
|
|
11
|
+
| **ptt_seconds** | **Float** | Voice/video SECONDS counted in this conversation (0 quando voice_note=false) | |
|
|
12
|
+
| **anexos** | **Integer** | Image/document turns in this conversation (ANEXO: nunca cobrado) | |
|
|
13
|
+
| **by_type** | **Hash<String, Integer>** | Media turns by type in THIS conversation (voz/audio/video/imagem/figurinha/gif/arquivo/oculta/chamada) | |
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
require 'falaai-api'
|
|
19
|
+
|
|
20
|
+
instance = FalaAI::WhatsappPreviewItemMedia.new(
|
|
21
|
+
figurinha: null,
|
|
22
|
+
gif: null,
|
|
23
|
+
emoji: null,
|
|
24
|
+
ptt: null,
|
|
25
|
+
ptt_seconds: null,
|
|
26
|
+
anexos: null,
|
|
27
|
+
by_type: null
|
|
28
|
+
)
|
|
29
|
+
```
|
|
30
|
+
|