-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmensagens.ts
More file actions
112 lines (98 loc) · 2.53 KB
/
mensagens.ts
File metadata and controls
112 lines (98 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import { wrapper } from "./decorators.ts";
export type Mensagem = {
origem: string;
conteudo: {
texto?: string;
midia?: string;
audio?: string;
tool_calls?: any[];
};
is_spam?: boolean;
tipo?: string;
timestamp?: string;
modelo?: string;
id_user?: string;
id_robo?: number;
tracking?: any;
tool_call_id?: string;
metadados?: any;
message_id?: number;
id_agendamento_prospeccao?: number;
};
@wrapper
export class Conversa {
idRobo: number = 123;
idUsuario: string = "id_usuario";
mensagens: Mensagem[] = [
{
origem: "cliente",
conteudo: {
texto: "Olá, estou interessado em comprar",
},
},
];
ids(): Promise<[number, string]> {
return Promise.resolve([this.idRobo, this.idUsuario]);
}
to_text(
params: {
backlog?: number;
ignore_tools_msgs?: boolean;
max_input_user?: number;
tag_name?: string;
},
): Promise<string> {
return Promise.resolve("");
}
ultima_interacao(params: { origem?: string } = {}): Promise<string> {
return Promise.resolve("");
}
append(params: { mensagem: Mensagem }): Promise<void> {
this.mensagens.push(params.mensagem);
return Promise.resolve();
}
concat(p: { mensagens: Mensagem[] }): Promise<void> {
this.mensagens = this.mensagens.concat(p.mensagens);
return Promise.resolve();
}
is_spam(params: { previous_messages?: number } = {}): Promise<boolean> {
return Promise.resolve(false);
}
get_last_message(
p: { origem?: string } = {},
): Promise<Mensagem | null> {
return Promise.resolve(
this.mensagens.findLast((m) => {
if (p.origem) {
return m.origem === p.origem;
}
return true;
}) ?? null,
);
}
pega_ultimo_bloco(params: { origem: string }): Promise<Mensagem[]> {
return Promise.resolve([]);
}
primeira_msg_do_cliente(): Promise<boolean> {
return Promise.resolve(false);
}
ultima_mensagem_origem(
params: { origem?: string } = {},
): Promise<Mensagem | null> {
return Promise.resolve(null);
}
pega_todas_mensagens(
params: { ignore_debug_msgs?: boolean } = { ignore_debug_msgs: true },
): Promise<Mensagem[]> {
/**
* Retorna todas as mensagens da conversa.
*
* @param ignore_debug_msgs - Se true, ignora mensagens do tipo debug.
* @returns Lista com todas as mensagens da conversa.
*/
return Promise.resolve(this.mensagens);
}
resumir(p: { acontecimento: string }): Promise<string> {
return Promise.resolve(p.acontecimento);
}
}