xertica-ui 1.3.2 → 1.3.3
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.
- package/components/AssistenteXertica.tsx +2 -92
- package/components/assistant-utils.ts +101 -0
- package/components/ui/xertica-assistant.tsx +53 -2
- package/dist/components/assistant-utils.d.ts +4 -0
- package/dist/components/ui/xertica-assistant.d.ts +22 -3
- package/dist/index.es.js +96 -75
- package/dist/index.umd.js +96 -75
- package/package.json +1 -1
|
@@ -121,6 +121,7 @@ interface AssistenteXerticaProps {
|
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
import type { Message, Conversa, SearchResult, SearchSource, SearchCommand, Sugestao, MockResponse } from '../contexts/AssistenteContext';
|
|
124
|
+
import { sugestoesPadrao, sugestoesRicas, gerarResposta } from './assistant-utils';
|
|
124
125
|
|
|
125
126
|
// ... (existing code)
|
|
126
127
|
|
|
@@ -136,104 +137,13 @@ interface AssistenteXerticaProps {
|
|
|
136
137
|
// ... (existing code)
|
|
137
138
|
|
|
138
139
|
|
|
139
|
-
const sugestoesPadrao: Sugestao[] = [
|
|
140
|
-
{ id: '1', texto: 'O que posso pedir para você fazer?' },
|
|
141
|
-
{ id: '2', texto: 'O que você faz?' },
|
|
142
|
-
{ id: '3', texto: 'Com quais projetos devo me preocupar agora?' },
|
|
143
|
-
{ id: '4', texto: 'Qual meu próximo projeto?' },
|
|
144
|
-
{ id: '5', texto: 'Qual projetos está tendo o melhor desempenho?' }
|
|
145
|
-
];
|
|
146
140
|
|
|
147
|
-
const sugestoesRicas: Sugestao[] = [
|
|
148
|
-
{ id: 'rich-1', texto: 'Ver exemplo de Gráfico', icon: <BarChart3 className="w-4 h-4 mr-2" /> },
|
|
149
|
-
{ id: 'rich-2', texto: 'Ver exemplo de Imagem', icon: <ImageIcon className="w-4 h-4 mr-2" /> },
|
|
150
|
-
{ id: 'rich-3', texto: 'Ver exemplo de Tabela', icon: <TableIcon className="w-4 h-4 mr-2" /> },
|
|
151
|
-
{ id: 'rich-4', texto: 'Ver exemplo de Documento', icon: <FileText className="w-4 h-4 mr-2" /> }
|
|
152
|
-
];
|
|
153
141
|
|
|
154
142
|
// Respostas simuladas da IA
|
|
155
|
-
const gerarResposta = (mensagemUsuario: string, customResponses?: MockResponse[]): string | Partial<Message> => {
|
|
156
|
-
const mensagemLower = mensagemUsuario.toLowerCase();
|
|
157
143
|
|
|
158
|
-
// 1. Verificar respostas customizadas primeiro
|
|
159
|
-
if (customResponses && customResponses.length > 0) {
|
|
160
|
-
for (const mock of customResponses) {
|
|
161
|
-
const trigger = mock.trigger;
|
|
162
|
-
let match = false;
|
|
163
144
|
|
|
164
|
-
if (trigger instanceof RegExp) {
|
|
165
|
-
match = trigger.test(mensagemUsuario);
|
|
166
|
-
} else {
|
|
167
|
-
match = mensagemLower.includes(trigger.toLowerCase());
|
|
168
|
-
}
|
|
169
145
|
|
|
170
|
-
|
|
171
|
-
return mock.response;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
const mensagemOriginal = mensagemUsuario;
|
|
177
|
-
|
|
178
|
-
if (mensagemLower.includes('o que') && (mensagemLower.includes('fazer') || mensagemLower.includes('pedir'))) {
|
|
179
|
-
return 'Posso ajudar você com diversas tarefas! Posso:\n\n• Analisar dados e métricas dos seus projetos\n• Responder perguntas sobre performance e resultados\n• Sugerir otimizações e melhorias\n• Gerar relatórios e documentação\n• Ajudar no planejamento de sprints\n• E muito mais!\n\nQual tarefa você gostaria de realizar primeiro?';
|
|
180
|
-
}
|
|
181
|
-
// ... (rest of the function)
|
|
182
|
-
|
|
183
|
-
if (mensagemLower.includes('o que você faz') || mensagemLower.includes('quem é você')) {
|
|
184
|
-
return 'Olá! Sou o Assistente Xertica, uma IA desenvolvida para ajudar você a gerenciar projetos, analisar dados e otimizar processos. Estou aqui 24/7 para responder suas perguntas e auxiliar nas suas tarefas diárias.\n\nPosso processar documentos, analisar áudios e imagens, além de fornecer insights baseados nos dados da plataforma.';
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (mensagemLower.includes('projeto') && (mensagemLower.includes('preocupar') || mensagemLower.includes('atenção'))) {
|
|
188
|
-
return 'Com base na análise dos seus projetos ativos, recomendo focar nos seguintes:\n\n1. **Projeto Alpha** - 15% acima do prazo, requer atenção imediata\n2. **Sistema Beta** - Performance crítica, necessita otimização\n3. **Mobile Gamma** - Aguardando aprovações há 5 dias\n\nGostaria de mais detalhes sobre algum deles?';
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
if (mensagemLower.includes('próximo projeto') || mensagemLower.includes('próxima tarefa')) {
|
|
192
|
-
return 'Seu próximo projeto prioritário é o **Sistema de Analytics V2**.\n\n📅 Início previsto: Próxima segunda-feira\n👥 Time: 5 desenvolvedores\n⏱️ Duração estimada: 3 sprints\n\nJá preparei um roadmap inicial. Gostaria de revisar?';
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (mensagemLower.includes('desempenho') || mensagemLower.includes('performance') || mensagemLower.includes('melhor')) {
|
|
196
|
-
return 'Analisando os dados de performance dos últimos 30 dias:\n\n🏆 **Melhor Performance:**\n• Projeto Dashboard 2.0: +35% eficiência\n• Sistema CRM: -40% tempo de resposta\n• App Mobile: 4.8★ rating (+0.5)\n\n📊 Todos estão acima das metas estabelecidas. Parab��ns!\n\nQuer ver métricas detalhadas?';
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
if (mensagemLower.includes('olá') || mensagemLower.includes('oi') || mensagemLower.includes('bom dia') || mensagemLower.includes('boa tarde') || mensagemLower.includes('boa noite')) {
|
|
200
|
-
return 'Olá! 👋 Como posso ajudar você hoje? Estou pronto para auxiliar com análises, relatórios ou responder suas dúvidas sobre os projetos.';
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
if (mensagemLower.includes('obrigado') || mensagemLower.includes('obrigada')) {
|
|
204
|
-
return 'Por nada! Estou aqui sempre que precisar. 😊 Se tiver mais alguma dúvida ou precisar de ajuda, é só chamar!';
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Respostas para ações especiais
|
|
208
|
-
if (mensagemLower.includes('criar documento')) {
|
|
209
|
-
const tema = mensagemOriginal.replace(/📄 \[Criar documento\]/gi, '').trim();
|
|
210
|
-
return `📝 Documento criado com sucesso!\\n\\nGerei um documento completo sobre "${tema}" com as seguintes seções:\\n\\n• Introdução e contexto\\n• Análise detalhada\\n• Dados e métricas relevantes\\n• Conclusões e recomendações\\n• Próximos passos\\n\\nO documento está pronto para revisão e pode ser editado conforme necessário. Gostaria de adicionar ou modificar alguma seção?`;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
if (mensagemLower.includes('gerar podcast')) {
|
|
214
|
-
const tema = mensagemOriginal.replace(/🎙️ \[Gerar podcast\]/gi, '').trim();
|
|
215
|
-
return `🎙️ Preparando podcast sobre "${tema}"...\\n\\nEstou processando o conteúdo e gerando um roteiro de podcast profissional com:\\n\\n• Introdução envolvente\\n• Desenvolvimento do tema\\n• Exemplos práticos\\n• Conclusão e insights\\n\\nO áudio será gerado em instantes. Aguarde...`;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
if (mensagemLower.includes('pesquisar')) {
|
|
219
|
-
const termo = mensagemOriginal.replace(/🔍 \[Pesquisar\]/gi, '').trim();
|
|
220
|
-
return `🔍 Resultados da pesquisa sobre "${termo}"\\n\\n**Encontrei as seguintes informações relevantes:**\\n\\n1. **Documentação interna** - 12 resultados\\n Guias e manuais relacionados ao tema\\n\\n2. **Projetos relacionados** - 8 projetos\\n Incluindo Analytics v2 e Dashboard Pro\\n\\n3. **Discussões em equipe** - 15 menções\\n Últimas conversas sobre o assunto\\n\\nGostaria de ver mais detalhes sobre algum desses resultados?`;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if (mensagemLower.includes('arquivo') || mensagemLower.includes('documento')) {
|
|
224
|
-
return 'Entendi que você deseja trabalhar com arquivos. Posso analisar diversos tipos de documentos:\n\n📄 Documentos de texto (PDF, DOCX)\n📊 Planilhas (XLSX, CSV)\n📈 Relatórios e apresentações\n\nBasta enviá-los usando o botão de anexo (📎) e terei prazer em analisá-los para você!';
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// Resposta genérica inteligente
|
|
228
|
-
const respostasGenericas = [
|
|
229
|
-
'Entendo sua questão. Com base nos dados disponíveis na plataforma Xertica, posso fornecer análises detalhadas sobre esse tema. Poderia me dar mais contexto para que eu possa ajudá-lo melhor?',
|
|
230
|
-
'Interessante! Deixe-me processar isso... Com base no seu histórico e nos dados do sistema, recomendo que possamos explorar essa questão em mais detalhes. O que especificamente você gostaria de saber?',
|
|
231
|
-
'Ótima pergunta! Para te dar a melhor resposta possível, preciso entender melhor o contexto. Você pode me fornecer mais informações sobre o que está buscando?',
|
|
232
|
-
'Estou analisando sua solicitação. Baseado nos dados do sistema Xertica, posso te ajudar com isso. Você gostaria de uma análise rápida ou um relatório completo?'
|
|
233
|
-
];
|
|
234
|
-
|
|
235
|
-
return respostasGenericas[Math.floor(Math.random() * respostasGenericas.length)];
|
|
236
|
-
};
|
|
146
|
+
|
|
237
147
|
|
|
238
148
|
|
|
239
149
|
export function AssistenteXertica({
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { Message, MockResponse, Sugestao } from '../contexts/AssistenteContext';
|
|
2
|
+
import { BarChart3, ImageIcon, Table as TableIcon, FileText } from 'lucide-react';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
|
|
5
|
+
export const sugestoesPadrao: Sugestao[] = [
|
|
6
|
+
{ id: '1', texto: 'O que posso pedir para você fazer?' },
|
|
7
|
+
{ id: '2', texto: 'O que você faz?' },
|
|
8
|
+
{ id: '3', texto: 'Com quais projetos devo me preocupar agora?' },
|
|
9
|
+
{ id: '4', texto: 'Qual meu próximo projeto?' },
|
|
10
|
+
{ id: '5', texto: 'Qual projetos está tendo o melhor desempenho?' }
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
export const sugestoesRicas: Sugestao[] = [
|
|
14
|
+
{ id: 'rich-1', texto: 'Ver exemplo de Gráfico', icon: React.createElement(BarChart3, { className: "w-4 h-4 mr-2" }) },
|
|
15
|
+
{ id: 'rich-2', texto: 'Ver exemplo de Imagem', icon: React.createElement(ImageIcon, { className: "w-4 h-4 mr-2" }) },
|
|
16
|
+
{ id: 'rich-3', texto: 'Ver exemplo de Tabela', icon: React.createElement(TableIcon, { className: "w-4 h-4 mr-2" }) },
|
|
17
|
+
{ id: 'rich-4', texto: 'Ver exemplo de Documento', icon: React.createElement(FileText, { className: "w-4 h-4 mr-2" }) }
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
// Respostas simuladas da IA
|
|
21
|
+
export const gerarResposta = (mensagemUsuario: string, customResponses?: MockResponse[]): string | Partial<Message> => {
|
|
22
|
+
const mensagemLower = mensagemUsuario.toLowerCase();
|
|
23
|
+
|
|
24
|
+
// 1. Verificar respostas customizadas primeiro
|
|
25
|
+
if (customResponses && customResponses.length > 0) {
|
|
26
|
+
for (const mock of customResponses) {
|
|
27
|
+
const trigger = mock.trigger;
|
|
28
|
+
let match = false;
|
|
29
|
+
|
|
30
|
+
if (trigger instanceof RegExp) {
|
|
31
|
+
match = trigger.test(mensagemUsuario);
|
|
32
|
+
} else {
|
|
33
|
+
match = mensagemLower.includes(trigger.toLowerCase());
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (match) {
|
|
37
|
+
return mock.response;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const mensagemOriginal = mensagemUsuario;
|
|
43
|
+
|
|
44
|
+
if (mensagemLower.includes('o que') && (mensagemLower.includes('fazer') || mensagemLower.includes('pedir'))) {
|
|
45
|
+
return 'Posso ajudar você com diversas tarefas! Posso:\n\n• Analisar dados e métricas dos seus projetos\n• Responder perguntas sobre performance e resultados\n• Sugerir otimizações e melhorias\n• Gerar relatórios e documentação\n• Ajudar no planejamento de sprints\n• E muito mais!\n\nQual tarefa você gostaria de realizar primeiro?';
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (mensagemLower.includes('o que você faz') || mensagemLower.includes('quem é você')) {
|
|
49
|
+
return 'Olá! Sou o Assistente Xertica, uma IA desenvolvida para ajudar você a gerenciar projetos, analisar dados e otimizar processos. Estou aqui 24/7 para responder suas perguntas e auxiliar nas suas tarefas diárias.\n\nPosso processar documentos, analisar áudios e imagens, além de fornecer insights baseados nos dados da plataforma.';
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (mensagemLower.includes('projeto') && (mensagemLower.includes('preocupar') || mensagemLower.includes('atenção'))) {
|
|
53
|
+
return 'Com base na análise dos seus projetos ativos, recomendo focar nos seguintes:\n\n1. **Projeto Alpha** - 15% acima do prazo, requer atenção imediata\n2. **Sistema Beta** - Performance crítica, necessita otimização\n3. **Mobile Gamma** - Aguardando aprovações há 5 dias\n\nGostaria de mais detalhes sobre algum deles?';
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (mensagemLower.includes('próximo projeto') || mensagemLower.includes('próxima tarefa')) {
|
|
57
|
+
return 'Seu próximo projeto prioritário é o **Sistema de Analytics V2**.\n\n📅 Início previsto: Próxima segunda-feira\n👥 Time: 5 desenvolvedores\n⏱️ Duração estimada: 3 sprints\n\nJá preparei um roadmap inicial. Gostaria de revisar?';
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (mensagemLower.includes('desempenho') || mensagemLower.includes('performance') || mensagemLower.includes('melhor')) {
|
|
61
|
+
return 'Analisando os dados de performance dos últimos 30 dias:\n\n🏆 **Melhor Performance:**\n• Projeto Dashboard 2.0: +35% eficiência\n• Sistema CRM: -40% tempo de resposta\n• App Mobile: 4.8★ rating (+0.5)\n\n📊 Todos estão acima das metas estabelecidas. Parabéns!\n\nQuer ver métricas detalhadas?';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (mensagemLower.includes('olá') || mensagemLower.includes('oi') || mensagemLower.includes('bom dia') || mensagemLower.includes('boa tarde') || mensagemLower.includes('boa noite')) {
|
|
65
|
+
return 'Olá! 👋 Como posso ajudar você hoje? Estou pronto para auxiliar com análises, relatórios ou responder suas dúvidas sobre os projetos.';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (mensagemLower.includes('obrigado') || mensagemLower.includes('obrigada')) {
|
|
69
|
+
return 'Por nada! Estou aqui sempre que precisar. 😊 Se tiver mais alguma dúvida ou precisar de ajuda, é só chamar!';
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Respostas para ações especiais
|
|
73
|
+
if (mensagemLower.includes('criar documento')) {
|
|
74
|
+
const tema = mensagemOriginal.replace(/📄 \[Criar documento\]/gi, '').trim();
|
|
75
|
+
return `📝 Documento criado com sucesso!\\n\\nGerei um documento completo sobre "${tema}" com as seguintes seções:\\n\\n• Introdução e contexto\\n• Análise detalhada\\n• Dados e métricas relevantes\\n• Conclusões e recomendações\\n• Próximos passos\\n\\nO documento está pronto para revisão e pode ser editado conforme necessário. Gostaria de adicionar ou modificar alguma seção?`;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (mensagemLower.includes('gerar podcast')) {
|
|
79
|
+
const tema = mensagemOriginal.replace(/🎙️ \[Gerar podcast\]/gi, '').trim();
|
|
80
|
+
return `🎙️ Preparando podcast sobre "${tema}"...\\n\\nEstou processando o conteúdo e gerando um roteiro de podcast profissional com:\\n\\n• Introdução envolvente\\n• Desenvolvimento do tema\\n• Exemplos práticos\\n• Conclusão e insights\\n\\nO áudio será gerado em instantes. Aguarde...`;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (mensagemLower.includes('pesquisar')) {
|
|
84
|
+
const termo = mensagemOriginal.replace(/🔍 \[Pesquisar\]/gi, '').trim();
|
|
85
|
+
return `🔍 Resultados da pesquisa sobre "${termo}"\\n\\n**Encontrei as seguintes informações relevantes:**\\n\\n1. **Documentação interna** - 12 resultados\\n Guias e manuais relacionados ao tema\\n\\n2. **Projetos relacionados** - 8 projetos\\n Incluindo Analytics v2 e Dashboard Pro\\n\\n3. **Discussões em equipe** - 15 menções\\n Últimas conversas sobre o assunto\\n\\nGostaria de ver mais detalhes sobre algum desses resultados?`;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (mensagemLower.includes('arquivo') || mensagemLower.includes('documento')) {
|
|
89
|
+
return 'Entendi que você deseja trabalhar com arquivos. Posso analisar diversos tipos de documentos:\n\n📄 Documentos de texto (PDF, DOCX)\n📊 Planilhas (XLSX, CSV)\n📈 Relatórios e apresentações\n\nBasta enviá-los usando o botão de anexo (📎) e terei prazer em analisá-los para você!';
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Resposta genérica inteligente
|
|
93
|
+
const respostasGenericas = [
|
|
94
|
+
'Entendo sua questão. Com base nos dados disponíveis na plataforma Xertica, posso fornecer análises detalhadas sobre esse tema. Poderia me dar mais contexto para que eu possa ajudá-lo melhor?',
|
|
95
|
+
'Interessante! Deixe-me processar isso... Com base no seu histórico e nos dados do sistema, recomendo que possamos explorar essa questão em mais detalhes. O que especificamente você gostaria de saber?',
|
|
96
|
+
'Ótima pergunta! Para te dar a melhor resposta possível, preciso entender melhor o contexto. Você pode me fornecer mais informações sobre o que está buscando?',
|
|
97
|
+
'Estou analisando sua solicitação. Baseado nos dados do sistema Xertica, posso te ajudar com isso. Você gostaria de uma análise rápida ou um relatório completo?'
|
|
98
|
+
];
|
|
99
|
+
|
|
100
|
+
return respostasGenericas[Math.floor(Math.random() * respostasGenericas.length)];
|
|
101
|
+
};
|
|
@@ -81,12 +81,12 @@ function AssistantTooltipContent({
|
|
|
81
81
|
/**
|
|
82
82
|
* Tipos de mensagem suportados pelo assistente
|
|
83
83
|
*/
|
|
84
|
-
export type MessageType = 'user' | 'assistant';
|
|
84
|
+
export type MessageType = 'user' | 'assistant' | 'system';
|
|
85
85
|
|
|
86
86
|
/**
|
|
87
87
|
* Tipos de anexo que podem ser incluídos em mensagens
|
|
88
88
|
*/
|
|
89
|
-
export type AttachmentType = 'file' | 'audio' | 'image' | 'document' | 'podcast' | 'search';
|
|
89
|
+
export type AttachmentType = 'file' | 'audio' | 'image' | 'video' | 'document' | 'podcast' | 'search';
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
92
|
* Tipo de busca que pode ser realizada
|
|
@@ -141,6 +141,15 @@ export interface Message {
|
|
|
141
141
|
searchResults?: SearchResult[];
|
|
142
142
|
searchSources?: SearchSource[];
|
|
143
143
|
searchCommands?: SearchCommand[];
|
|
144
|
+
chartData?: any[];
|
|
145
|
+
chartConfig?: any;
|
|
146
|
+
tableData?: {
|
|
147
|
+
caption?: string;
|
|
148
|
+
headers: string[];
|
|
149
|
+
rows: (string | React.ReactNode)[][];
|
|
150
|
+
};
|
|
151
|
+
evaluation?: 'like' | 'dislike';
|
|
152
|
+
evaluationReason?: string;
|
|
144
153
|
}
|
|
145
154
|
|
|
146
155
|
/**
|
|
@@ -177,6 +186,9 @@ export type AssistantTab = 'chat' | 'historico' | 'favoritos';
|
|
|
177
186
|
// Props do Componente
|
|
178
187
|
// ============================================================================
|
|
179
188
|
|
|
189
|
+
import type { MockResponse } from '../../contexts/AssistenteContext';
|
|
190
|
+
import { gerarResposta } from '../assistant-utils';
|
|
191
|
+
|
|
180
192
|
export interface XerticaAssistantProps {
|
|
181
193
|
/**
|
|
182
194
|
* Modo de exibição do assistente
|
|
@@ -207,6 +219,16 @@ export interface XerticaAssistantProps {
|
|
|
207
219
|
*/
|
|
208
220
|
showApiWarning?: boolean;
|
|
209
221
|
|
|
222
|
+
/**
|
|
223
|
+
* Ativa o modo de demonstração (sem API key)
|
|
224
|
+
*/
|
|
225
|
+
demoMode?: boolean;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Respostas customizadas para o modo de demonstração
|
|
229
|
+
*/
|
|
230
|
+
customResponses?: MockResponse[];
|
|
231
|
+
|
|
210
232
|
/**
|
|
211
233
|
* Chave da API do Gemini (se disponível)
|
|
212
234
|
*/
|
|
@@ -330,6 +352,8 @@ export function XerticaAssistant({
|
|
|
330
352
|
height,
|
|
331
353
|
className = '',
|
|
332
354
|
mobileFloating = false,
|
|
355
|
+
demoMode = false,
|
|
356
|
+
customResponses = []
|
|
333
357
|
}: XerticaAssistantProps) {
|
|
334
358
|
// ============================================================================
|
|
335
359
|
// State Management
|
|
@@ -435,10 +459,37 @@ export function XerticaAssistant({
|
|
|
435
459
|
|
|
436
460
|
setMensagens(prev => [...prev, novaMensagem]);
|
|
437
461
|
|
|
462
|
+
|
|
438
463
|
if (onSendMessage) {
|
|
439
464
|
onSendMessage(mensagem);
|
|
440
465
|
}
|
|
441
466
|
|
|
467
|
+
if (demoMode) {
|
|
468
|
+
// Simular resposta no modo demo se não houver handler externo ou se o handler for apenas para log/side-effect
|
|
469
|
+
// Mas cuidado para não duplicar se onSendMessage também gerar resposta.
|
|
470
|
+
// Assumindo que demoMode é autossuficiente.
|
|
471
|
+
const mensagemAtual = mensagem;
|
|
472
|
+
setTimeout(() => {
|
|
473
|
+
const resposta = gerarResposta(mensagemAtual, customResponses);
|
|
474
|
+
|
|
475
|
+
let novaMensagemIA: Message = {
|
|
476
|
+
id: `msg-${Date.now()}-ia`,
|
|
477
|
+
type: 'assistant',
|
|
478
|
+
content: '',
|
|
479
|
+
timestamp: new Date(),
|
|
480
|
+
isFavorite: false
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
if (typeof resposta === 'string') {
|
|
484
|
+
novaMensagemIA.content = resposta;
|
|
485
|
+
} else {
|
|
486
|
+
novaMensagemIA = { ...novaMensagemIA, ...resposta };
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
setMensagens(prev => [...prev, novaMensagemIA]);
|
|
490
|
+
}, 1000 + Math.random() * 1000);
|
|
491
|
+
}
|
|
492
|
+
|
|
442
493
|
setMensagem('');
|
|
443
494
|
};
|
|
444
495
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Message, MockResponse, Sugestao } from '../contexts/AssistenteContext';
|
|
2
|
+
export declare const sugestoesPadrao: Sugestao[];
|
|
3
|
+
export declare const sugestoesRicas: Sugestao[];
|
|
4
|
+
export declare const gerarResposta: (mensagemUsuario: string, customResponses?: MockResponse[]) => string | Partial<Message>;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
/**
|
|
2
3
|
* Tipos de mensagem suportados pelo assistente
|
|
3
4
|
*/
|
|
4
|
-
export type MessageType = 'user' | 'assistant';
|
|
5
|
+
export type MessageType = 'user' | 'assistant' | 'system';
|
|
5
6
|
/**
|
|
6
7
|
* Tipos de anexo que podem ser incluídos em mensagens
|
|
7
8
|
*/
|
|
8
|
-
export type AttachmentType = 'file' | 'audio' | 'image' | 'document' | 'podcast' | 'search';
|
|
9
|
+
export type AttachmentType = 'file' | 'audio' | 'image' | 'video' | 'document' | 'podcast' | 'search';
|
|
9
10
|
/**
|
|
10
11
|
* Tipo de busca que pode ser realizada
|
|
11
12
|
*/
|
|
@@ -55,6 +56,15 @@ export interface Message {
|
|
|
55
56
|
searchResults?: SearchResult[];
|
|
56
57
|
searchSources?: SearchSource[];
|
|
57
58
|
searchCommands?: SearchCommand[];
|
|
59
|
+
chartData?: any[];
|
|
60
|
+
chartConfig?: any;
|
|
61
|
+
tableData?: {
|
|
62
|
+
caption?: string;
|
|
63
|
+
headers: string[];
|
|
64
|
+
rows: (string | React.ReactNode)[][];
|
|
65
|
+
};
|
|
66
|
+
evaluation?: 'like' | 'dislike';
|
|
67
|
+
evaluationReason?: string;
|
|
58
68
|
}
|
|
59
69
|
/**
|
|
60
70
|
* Interface para uma conversa salva
|
|
@@ -82,6 +92,7 @@ export type AssistantMode = 'collapsed' | 'expanded' | 'fullPage';
|
|
|
82
92
|
* Abas disponíveis no assistente
|
|
83
93
|
*/
|
|
84
94
|
export type AssistantTab = 'chat' | 'historico' | 'favoritos';
|
|
95
|
+
import type { MockResponse } from '../../contexts/AssistenteContext';
|
|
85
96
|
export interface XerticaAssistantProps {
|
|
86
97
|
/**
|
|
87
98
|
* Modo de exibição do assistente
|
|
@@ -107,6 +118,14 @@ export interface XerticaAssistantProps {
|
|
|
107
118
|
* @default true
|
|
108
119
|
*/
|
|
109
120
|
showApiWarning?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Ativa o modo de demonstração (sem API key)
|
|
123
|
+
*/
|
|
124
|
+
demoMode?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Respostas customizadas para o modo de demonstração
|
|
127
|
+
*/
|
|
128
|
+
customResponses?: MockResponse[];
|
|
110
129
|
/**
|
|
111
130
|
* Chave da API do Gemini (se disponível)
|
|
112
131
|
*/
|
|
@@ -193,4 +212,4 @@ export interface XerticaAssistantProps {
|
|
|
193
212
|
* />
|
|
194
213
|
* ```
|
|
195
214
|
*/
|
|
196
|
-
export declare function XerticaAssistant({ mode, isExpanded: controlledIsExpanded, onToggle, defaultTab, showApiWarning, apiKey, onNavigateSettings, onNavigateFullPage, userName, initialMessages, savedConversations, suggestions: propSuggestions, onSendMessage, onFileAttach, isProcessing, width, height, className, mobileFloating, }: XerticaAssistantProps): import("react/jsx-runtime").JSX.Element;
|
|
215
|
+
export declare function XerticaAssistant({ mode, isExpanded: controlledIsExpanded, onToggle, defaultTab, showApiWarning, apiKey, onNavigateSettings, onNavigateFullPage, userName, initialMessages, savedConversations, suggestions: propSuggestions, onSendMessage, onFileAttach, isProcessing, width, height, className, mobileFloating, demoMode, customResponses }: XerticaAssistantProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/index.es.js
CHANGED
|
@@ -19687,6 +19687,80 @@ function TooltipContent({
|
|
|
19687
19687
|
}
|
|
19688
19688
|
) });
|
|
19689
19689
|
}
|
|
19690
|
+
const sugestoesPadrao = [
|
|
19691
|
+
{ id: "1", texto: "O que posso pedir para você fazer?" },
|
|
19692
|
+
{ id: "2", texto: "O que você faz?" },
|
|
19693
|
+
{ id: "3", texto: "Com quais projetos devo me preocupar agora?" },
|
|
19694
|
+
{ id: "4", texto: "Qual meu próximo projeto?" },
|
|
19695
|
+
{ id: "5", texto: "Qual projetos está tendo o melhor desempenho?" }
|
|
19696
|
+
];
|
|
19697
|
+
const sugestoesRicas = [
|
|
19698
|
+
{ id: "rich-1", texto: "Ver exemplo de Gráfico", icon: React__default.createElement(ChartColumn, { className: "w-4 h-4 mr-2" }) },
|
|
19699
|
+
{ id: "rich-2", texto: "Ver exemplo de Imagem", icon: React__default.createElement(Image$1, { className: "w-4 h-4 mr-2" }) },
|
|
19700
|
+
{ id: "rich-3", texto: "Ver exemplo de Tabela", icon: React__default.createElement(Table$1, { className: "w-4 h-4 mr-2" }) },
|
|
19701
|
+
{ id: "rich-4", texto: "Ver exemplo de Documento", icon: React__default.createElement(FileText, { className: "w-4 h-4 mr-2" }) }
|
|
19702
|
+
];
|
|
19703
|
+
const gerarResposta = (mensagemUsuario, customResponses) => {
|
|
19704
|
+
const mensagemLower = mensagemUsuario.toLowerCase();
|
|
19705
|
+
if (customResponses && customResponses.length > 0) {
|
|
19706
|
+
for (const mock of customResponses) {
|
|
19707
|
+
const trigger = mock.trigger;
|
|
19708
|
+
let match2 = false;
|
|
19709
|
+
if (trigger instanceof RegExp) {
|
|
19710
|
+
match2 = trigger.test(mensagemUsuario);
|
|
19711
|
+
} else {
|
|
19712
|
+
match2 = mensagemLower.includes(trigger.toLowerCase());
|
|
19713
|
+
}
|
|
19714
|
+
if (match2) {
|
|
19715
|
+
return mock.response;
|
|
19716
|
+
}
|
|
19717
|
+
}
|
|
19718
|
+
}
|
|
19719
|
+
const mensagemOriginal = mensagemUsuario;
|
|
19720
|
+
if (mensagemLower.includes("o que") && (mensagemLower.includes("fazer") || mensagemLower.includes("pedir"))) {
|
|
19721
|
+
return "Posso ajudar você com diversas tarefas! Posso:\n\n• Analisar dados e métricas dos seus projetos\n• Responder perguntas sobre performance e resultados\n• Sugerir otimizações e melhorias\n• Gerar relatórios e documentação\n• Ajudar no planejamento de sprints\n• E muito mais!\n\nQual tarefa você gostaria de realizar primeiro?";
|
|
19722
|
+
}
|
|
19723
|
+
if (mensagemLower.includes("o que você faz") || mensagemLower.includes("quem é você")) {
|
|
19724
|
+
return "Olá! Sou o Assistente Xertica, uma IA desenvolvida para ajudar você a gerenciar projetos, analisar dados e otimizar processos. Estou aqui 24/7 para responder suas perguntas e auxiliar nas suas tarefas diárias.\n\nPosso processar documentos, analisar áudios e imagens, além de fornecer insights baseados nos dados da plataforma.";
|
|
19725
|
+
}
|
|
19726
|
+
if (mensagemLower.includes("projeto") && (mensagemLower.includes("preocupar") || mensagemLower.includes("atenção"))) {
|
|
19727
|
+
return "Com base na análise dos seus projetos ativos, recomendo focar nos seguintes:\n\n1. **Projeto Alpha** - 15% acima do prazo, requer atenção imediata\n2. **Sistema Beta** - Performance crítica, necessita otimização\n3. **Mobile Gamma** - Aguardando aprovações há 5 dias\n\nGostaria de mais detalhes sobre algum deles?";
|
|
19728
|
+
}
|
|
19729
|
+
if (mensagemLower.includes("próximo projeto") || mensagemLower.includes("próxima tarefa")) {
|
|
19730
|
+
return "Seu próximo projeto prioritário é o **Sistema de Analytics V2**.\n\n📅 Início previsto: Próxima segunda-feira\n👥 Time: 5 desenvolvedores\n⏱️ Duração estimada: 3 sprints\n\nJá preparei um roadmap inicial. Gostaria de revisar?";
|
|
19731
|
+
}
|
|
19732
|
+
if (mensagemLower.includes("desempenho") || mensagemLower.includes("performance") || mensagemLower.includes("melhor")) {
|
|
19733
|
+
return "Analisando os dados de performance dos últimos 30 dias:\n\n🏆 **Melhor Performance:**\n• Projeto Dashboard 2.0: +35% eficiência\n• Sistema CRM: -40% tempo de resposta\n• App Mobile: 4.8★ rating (+0.5)\n\n📊 Todos estão acima das metas estabelecidas. Parabéns!\n\nQuer ver métricas detalhadas?";
|
|
19734
|
+
}
|
|
19735
|
+
if (mensagemLower.includes("olá") || mensagemLower.includes("oi") || mensagemLower.includes("bom dia") || mensagemLower.includes("boa tarde") || mensagemLower.includes("boa noite")) {
|
|
19736
|
+
return "Olá! 👋 Como posso ajudar você hoje? Estou pronto para auxiliar com análises, relatórios ou responder suas dúvidas sobre os projetos.";
|
|
19737
|
+
}
|
|
19738
|
+
if (mensagemLower.includes("obrigado") || mensagemLower.includes("obrigada")) {
|
|
19739
|
+
return "Por nada! Estou aqui sempre que precisar. 😊 Se tiver mais alguma dúvida ou precisar de ajuda, é só chamar!";
|
|
19740
|
+
}
|
|
19741
|
+
if (mensagemLower.includes("criar documento")) {
|
|
19742
|
+
const tema = mensagemOriginal.replace(/📄 \[Criar documento\]/gi, "").trim();
|
|
19743
|
+
return `📝 Documento criado com sucesso!\\n\\nGerei um documento completo sobre "${tema}" com as seguintes seções:\\n\\n• Introdução e contexto\\n• Análise detalhada\\n• Dados e métricas relevantes\\n• Conclusões e recomendações\\n• Próximos passos\\n\\nO documento está pronto para revisão e pode ser editado conforme necessário. Gostaria de adicionar ou modificar alguma seção?`;
|
|
19744
|
+
}
|
|
19745
|
+
if (mensagemLower.includes("gerar podcast")) {
|
|
19746
|
+
const tema = mensagemOriginal.replace(/🎙️ \[Gerar podcast\]/gi, "").trim();
|
|
19747
|
+
return `🎙️ Preparando podcast sobre "${tema}"...\\n\\nEstou processando o conteúdo e gerando um roteiro de podcast profissional com:\\n\\n• Introdução envolvente\\n• Desenvolvimento do tema\\n• Exemplos práticos\\n• Conclusão e insights\\n\\nO áudio será gerado em instantes. Aguarde...`;
|
|
19748
|
+
}
|
|
19749
|
+
if (mensagemLower.includes("pesquisar")) {
|
|
19750
|
+
const termo = mensagemOriginal.replace(/🔍 \[Pesquisar\]/gi, "").trim();
|
|
19751
|
+
return `🔍 Resultados da pesquisa sobre "${termo}"\\n\\n**Encontrei as seguintes informações relevantes:**\\n\\n1. **Documentação interna** - 12 resultados\\n Guias e manuais relacionados ao tema\\n\\n2. **Projetos relacionados** - 8 projetos\\n Incluindo Analytics v2 e Dashboard Pro\\n\\n3. **Discussões em equipe** - 15 menções\\n Últimas conversas sobre o assunto\\n\\nGostaria de ver mais detalhes sobre algum desses resultados?`;
|
|
19752
|
+
}
|
|
19753
|
+
if (mensagemLower.includes("arquivo") || mensagemLower.includes("documento")) {
|
|
19754
|
+
return "Entendi que você deseja trabalhar com arquivos. Posso analisar diversos tipos de documentos:\n\n📄 Documentos de texto (PDF, DOCX)\n📊 Planilhas (XLSX, CSV)\n📈 Relatórios e apresentações\n\nBasta enviá-los usando o botão de anexo (📎) e terei prazer em analisá-los para você!";
|
|
19755
|
+
}
|
|
19756
|
+
const respostasGenericas = [
|
|
19757
|
+
"Entendo sua questão. Com base nos dados disponíveis na plataforma Xertica, posso fornecer análises detalhadas sobre esse tema. Poderia me dar mais contexto para que eu possa ajudá-lo melhor?",
|
|
19758
|
+
"Interessante! Deixe-me processar isso... Com base no seu histórico e nos dados do sistema, recomendo que possamos explorar essa questão em mais detalhes. O que especificamente você gostaria de saber?",
|
|
19759
|
+
"Ótima pergunta! Para te dar a melhor resposta possível, preciso entender melhor o contexto. Você pode me fornecer mais informações sobre o que está buscando?",
|
|
19760
|
+
"Estou analisando sua solicitação. Baseado nos dados do sistema Xertica, posso te ajudar com isso. Você gostaria de uma análise rápida ou um relatório completo?"
|
|
19761
|
+
];
|
|
19762
|
+
return respostasGenericas[Math.floor(Math.random() * respostasGenericas.length)];
|
|
19763
|
+
};
|
|
19690
19764
|
const __vite_import_meta_env__$2 = {};
|
|
19691
19765
|
function AssistantTooltipContent$1({
|
|
19692
19766
|
className,
|
|
@@ -19737,7 +19811,9 @@ function XerticaAssistant({
|
|
|
19737
19811
|
width,
|
|
19738
19812
|
height,
|
|
19739
19813
|
className = "",
|
|
19740
|
-
mobileFloating = false
|
|
19814
|
+
mobileFloating = false,
|
|
19815
|
+
demoMode = false,
|
|
19816
|
+
customResponses = []
|
|
19741
19817
|
}) {
|
|
19742
19818
|
const isFullPage = mode === "fullPage";
|
|
19743
19819
|
const [internalIsExpanded, setInternalIsExpanded] = useState(controlledIsExpanded ?? true);
|
|
@@ -19802,6 +19878,25 @@ function XerticaAssistant({
|
|
|
19802
19878
|
if (onSendMessage) {
|
|
19803
19879
|
onSendMessage(mensagem);
|
|
19804
19880
|
}
|
|
19881
|
+
if (demoMode) {
|
|
19882
|
+
const mensagemAtual = mensagem;
|
|
19883
|
+
setTimeout(() => {
|
|
19884
|
+
const resposta = gerarResposta(mensagemAtual, customResponses);
|
|
19885
|
+
let novaMensagemIA = {
|
|
19886
|
+
id: `msg-${Date.now()}-ia`,
|
|
19887
|
+
type: "assistant",
|
|
19888
|
+
content: "",
|
|
19889
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
19890
|
+
isFavorite: false
|
|
19891
|
+
};
|
|
19892
|
+
if (typeof resposta === "string") {
|
|
19893
|
+
novaMensagemIA.content = resposta;
|
|
19894
|
+
} else {
|
|
19895
|
+
novaMensagemIA = { ...novaMensagemIA, ...resposta };
|
|
19896
|
+
}
|
|
19897
|
+
setMensagens((prev) => [...prev, novaMensagemIA]);
|
|
19898
|
+
}, 1e3 + Math.random() * 1e3);
|
|
19899
|
+
}
|
|
19805
19900
|
setMensagem("");
|
|
19806
19901
|
};
|
|
19807
19902
|
const handleToggleFavorite = (messageId) => {
|
|
@@ -56387,80 +56482,6 @@ function AssistantTooltipContent({
|
|
|
56387
56482
|
}
|
|
56388
56483
|
) });
|
|
56389
56484
|
}
|
|
56390
|
-
const sugestoesPadrao = [
|
|
56391
|
-
{ id: "1", texto: "O que posso pedir para você fazer?" },
|
|
56392
|
-
{ id: "2", texto: "O que você faz?" },
|
|
56393
|
-
{ id: "3", texto: "Com quais projetos devo me preocupar agora?" },
|
|
56394
|
-
{ id: "4", texto: "Qual meu próximo projeto?" },
|
|
56395
|
-
{ id: "5", texto: "Qual projetos está tendo o melhor desempenho?" }
|
|
56396
|
-
];
|
|
56397
|
-
const sugestoesRicas = [
|
|
56398
|
-
{ id: "rich-1", texto: "Ver exemplo de Gráfico", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(ChartColumn, { className: "w-4 h-4 mr-2" }) },
|
|
56399
|
-
{ id: "rich-2", texto: "Ver exemplo de Imagem", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Image$1, { className: "w-4 h-4 mr-2" }) },
|
|
56400
|
-
{ id: "rich-3", texto: "Ver exemplo de Tabela", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Table$1, { className: "w-4 h-4 mr-2" }) },
|
|
56401
|
-
{ id: "rich-4", texto: "Ver exemplo de Documento", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { className: "w-4 h-4 mr-2" }) }
|
|
56402
|
-
];
|
|
56403
|
-
const gerarResposta = (mensagemUsuario, customResponses) => {
|
|
56404
|
-
const mensagemLower = mensagemUsuario.toLowerCase();
|
|
56405
|
-
if (customResponses && customResponses.length > 0) {
|
|
56406
|
-
for (const mock of customResponses) {
|
|
56407
|
-
const trigger = mock.trigger;
|
|
56408
|
-
let match2 = false;
|
|
56409
|
-
if (trigger instanceof RegExp) {
|
|
56410
|
-
match2 = trigger.test(mensagemUsuario);
|
|
56411
|
-
} else {
|
|
56412
|
-
match2 = mensagemLower.includes(trigger.toLowerCase());
|
|
56413
|
-
}
|
|
56414
|
-
if (match2) {
|
|
56415
|
-
return mock.response;
|
|
56416
|
-
}
|
|
56417
|
-
}
|
|
56418
|
-
}
|
|
56419
|
-
const mensagemOriginal = mensagemUsuario;
|
|
56420
|
-
if (mensagemLower.includes("o que") && (mensagemLower.includes("fazer") || mensagemLower.includes("pedir"))) {
|
|
56421
|
-
return "Posso ajudar você com diversas tarefas! Posso:\n\n• Analisar dados e métricas dos seus projetos\n• Responder perguntas sobre performance e resultados\n• Sugerir otimizações e melhorias\n• Gerar relatórios e documentação\n• Ajudar no planejamento de sprints\n• E muito mais!\n\nQual tarefa você gostaria de realizar primeiro?";
|
|
56422
|
-
}
|
|
56423
|
-
if (mensagemLower.includes("o que você faz") || mensagemLower.includes("quem é você")) {
|
|
56424
|
-
return "Olá! Sou o Assistente Xertica, uma IA desenvolvida para ajudar você a gerenciar projetos, analisar dados e otimizar processos. Estou aqui 24/7 para responder suas perguntas e auxiliar nas suas tarefas diárias.\n\nPosso processar documentos, analisar áudios e imagens, além de fornecer insights baseados nos dados da plataforma.";
|
|
56425
|
-
}
|
|
56426
|
-
if (mensagemLower.includes("projeto") && (mensagemLower.includes("preocupar") || mensagemLower.includes("atenção"))) {
|
|
56427
|
-
return "Com base na análise dos seus projetos ativos, recomendo focar nos seguintes:\n\n1. **Projeto Alpha** - 15% acima do prazo, requer atenção imediata\n2. **Sistema Beta** - Performance crítica, necessita otimização\n3. **Mobile Gamma** - Aguardando aprovações há 5 dias\n\nGostaria de mais detalhes sobre algum deles?";
|
|
56428
|
-
}
|
|
56429
|
-
if (mensagemLower.includes("próximo projeto") || mensagemLower.includes("próxima tarefa")) {
|
|
56430
|
-
return "Seu próximo projeto prioritário é o **Sistema de Analytics V2**.\n\n📅 Início previsto: Próxima segunda-feira\n👥 Time: 5 desenvolvedores\n⏱️ Duração estimada: 3 sprints\n\nJá preparei um roadmap inicial. Gostaria de revisar?";
|
|
56431
|
-
}
|
|
56432
|
-
if (mensagemLower.includes("desempenho") || mensagemLower.includes("performance") || mensagemLower.includes("melhor")) {
|
|
56433
|
-
return "Analisando os dados de performance dos últimos 30 dias:\n\n🏆 **Melhor Performance:**\n• Projeto Dashboard 2.0: +35% eficiência\n• Sistema CRM: -40% tempo de resposta\n• App Mobile: 4.8★ rating (+0.5)\n\n📊 Todos estão acima das metas estabelecidas. Parab��ns!\n\nQuer ver métricas detalhadas?";
|
|
56434
|
-
}
|
|
56435
|
-
if (mensagemLower.includes("olá") || mensagemLower.includes("oi") || mensagemLower.includes("bom dia") || mensagemLower.includes("boa tarde") || mensagemLower.includes("boa noite")) {
|
|
56436
|
-
return "Olá! 👋 Como posso ajudar você hoje? Estou pronto para auxiliar com análises, relatórios ou responder suas dúvidas sobre os projetos.";
|
|
56437
|
-
}
|
|
56438
|
-
if (mensagemLower.includes("obrigado") || mensagemLower.includes("obrigada")) {
|
|
56439
|
-
return "Por nada! Estou aqui sempre que precisar. 😊 Se tiver mais alguma dúvida ou precisar de ajuda, é só chamar!";
|
|
56440
|
-
}
|
|
56441
|
-
if (mensagemLower.includes("criar documento")) {
|
|
56442
|
-
const tema = mensagemOriginal.replace(/📄 \[Criar documento\]/gi, "").trim();
|
|
56443
|
-
return `📝 Documento criado com sucesso!\\n\\nGerei um documento completo sobre "${tema}" com as seguintes seções:\\n\\n• Introdução e contexto\\n• Análise detalhada\\n• Dados e métricas relevantes\\n• Conclusões e recomendações\\n• Próximos passos\\n\\nO documento está pronto para revisão e pode ser editado conforme necessário. Gostaria de adicionar ou modificar alguma seção?`;
|
|
56444
|
-
}
|
|
56445
|
-
if (mensagemLower.includes("gerar podcast")) {
|
|
56446
|
-
const tema = mensagemOriginal.replace(/🎙️ \[Gerar podcast\]/gi, "").trim();
|
|
56447
|
-
return `🎙️ Preparando podcast sobre "${tema}"...\\n\\nEstou processando o conteúdo e gerando um roteiro de podcast profissional com:\\n\\n• Introdução envolvente\\n• Desenvolvimento do tema\\n• Exemplos práticos\\n• Conclusão e insights\\n\\nO áudio será gerado em instantes. Aguarde...`;
|
|
56448
|
-
}
|
|
56449
|
-
if (mensagemLower.includes("pesquisar")) {
|
|
56450
|
-
const termo = mensagemOriginal.replace(/🔍 \[Pesquisar\]/gi, "").trim();
|
|
56451
|
-
return `🔍 Resultados da pesquisa sobre "${termo}"\\n\\n**Encontrei as seguintes informações relevantes:**\\n\\n1. **Documentação interna** - 12 resultados\\n Guias e manuais relacionados ao tema\\n\\n2. **Projetos relacionados** - 8 projetos\\n Incluindo Analytics v2 e Dashboard Pro\\n\\n3. **Discussões em equipe** - 15 menções\\n Últimas conversas sobre o assunto\\n\\nGostaria de ver mais detalhes sobre algum desses resultados?`;
|
|
56452
|
-
}
|
|
56453
|
-
if (mensagemLower.includes("arquivo") || mensagemLower.includes("documento")) {
|
|
56454
|
-
return "Entendi que você deseja trabalhar com arquivos. Posso analisar diversos tipos de documentos:\n\n📄 Documentos de texto (PDF, DOCX)\n📊 Planilhas (XLSX, CSV)\n📈 Relatórios e apresentações\n\nBasta enviá-los usando o botão de anexo (📎) e terei prazer em analisá-los para você!";
|
|
56455
|
-
}
|
|
56456
|
-
const respostasGenericas = [
|
|
56457
|
-
"Entendo sua questão. Com base nos dados disponíveis na plataforma Xertica, posso fornecer análises detalhadas sobre esse tema. Poderia me dar mais contexto para que eu possa ajudá-lo melhor?",
|
|
56458
|
-
"Interessante! Deixe-me processar isso... Com base no seu histórico e nos dados do sistema, recomendo que possamos explorar essa questão em mais detalhes. O que especificamente você gostaria de saber?",
|
|
56459
|
-
"Ótima pergunta! Para te dar a melhor resposta possível, preciso entender melhor o contexto. Você pode me fornecer mais informações sobre o que está buscando?",
|
|
56460
|
-
"Estou analisando sua solicitação. Baseado nos dados do sistema Xertica, posso te ajudar com isso. Você gostaria de uma análise rápida ou um relatório completo?"
|
|
56461
|
-
];
|
|
56462
|
-
return respostasGenericas[Math.floor(Math.random() * respostasGenericas.length)];
|
|
56463
|
-
};
|
|
56464
56485
|
function AssistenteXertica({
|
|
56465
56486
|
isExpanded,
|
|
56466
56487
|
onToggle,
|
package/dist/index.umd.js
CHANGED
|
@@ -19706,6 +19706,80 @@
|
|
|
19706
19706
|
}
|
|
19707
19707
|
) });
|
|
19708
19708
|
}
|
|
19709
|
+
const sugestoesPadrao = [
|
|
19710
|
+
{ id: "1", texto: "O que posso pedir para você fazer?" },
|
|
19711
|
+
{ id: "2", texto: "O que você faz?" },
|
|
19712
|
+
{ id: "3", texto: "Com quais projetos devo me preocupar agora?" },
|
|
19713
|
+
{ id: "4", texto: "Qual meu próximo projeto?" },
|
|
19714
|
+
{ id: "5", texto: "Qual projetos está tendo o melhor desempenho?" }
|
|
19715
|
+
];
|
|
19716
|
+
const sugestoesRicas = [
|
|
19717
|
+
{ id: "rich-1", texto: "Ver exemplo de Gráfico", icon: React.createElement(ChartColumn, { className: "w-4 h-4 mr-2" }) },
|
|
19718
|
+
{ id: "rich-2", texto: "Ver exemplo de Imagem", icon: React.createElement(Image$1, { className: "w-4 h-4 mr-2" }) },
|
|
19719
|
+
{ id: "rich-3", texto: "Ver exemplo de Tabela", icon: React.createElement(Table$1, { className: "w-4 h-4 mr-2" }) },
|
|
19720
|
+
{ id: "rich-4", texto: "Ver exemplo de Documento", icon: React.createElement(FileText, { className: "w-4 h-4 mr-2" }) }
|
|
19721
|
+
];
|
|
19722
|
+
const gerarResposta = (mensagemUsuario, customResponses) => {
|
|
19723
|
+
const mensagemLower = mensagemUsuario.toLowerCase();
|
|
19724
|
+
if (customResponses && customResponses.length > 0) {
|
|
19725
|
+
for (const mock of customResponses) {
|
|
19726
|
+
const trigger = mock.trigger;
|
|
19727
|
+
let match2 = false;
|
|
19728
|
+
if (trigger instanceof RegExp) {
|
|
19729
|
+
match2 = trigger.test(mensagemUsuario);
|
|
19730
|
+
} else {
|
|
19731
|
+
match2 = mensagemLower.includes(trigger.toLowerCase());
|
|
19732
|
+
}
|
|
19733
|
+
if (match2) {
|
|
19734
|
+
return mock.response;
|
|
19735
|
+
}
|
|
19736
|
+
}
|
|
19737
|
+
}
|
|
19738
|
+
const mensagemOriginal = mensagemUsuario;
|
|
19739
|
+
if (mensagemLower.includes("o que") && (mensagemLower.includes("fazer") || mensagemLower.includes("pedir"))) {
|
|
19740
|
+
return "Posso ajudar você com diversas tarefas! Posso:\n\n• Analisar dados e métricas dos seus projetos\n• Responder perguntas sobre performance e resultados\n• Sugerir otimizações e melhorias\n• Gerar relatórios e documentação\n• Ajudar no planejamento de sprints\n• E muito mais!\n\nQual tarefa você gostaria de realizar primeiro?";
|
|
19741
|
+
}
|
|
19742
|
+
if (mensagemLower.includes("o que você faz") || mensagemLower.includes("quem é você")) {
|
|
19743
|
+
return "Olá! Sou o Assistente Xertica, uma IA desenvolvida para ajudar você a gerenciar projetos, analisar dados e otimizar processos. Estou aqui 24/7 para responder suas perguntas e auxiliar nas suas tarefas diárias.\n\nPosso processar documentos, analisar áudios e imagens, além de fornecer insights baseados nos dados da plataforma.";
|
|
19744
|
+
}
|
|
19745
|
+
if (mensagemLower.includes("projeto") && (mensagemLower.includes("preocupar") || mensagemLower.includes("atenção"))) {
|
|
19746
|
+
return "Com base na análise dos seus projetos ativos, recomendo focar nos seguintes:\n\n1. **Projeto Alpha** - 15% acima do prazo, requer atenção imediata\n2. **Sistema Beta** - Performance crítica, necessita otimização\n3. **Mobile Gamma** - Aguardando aprovações há 5 dias\n\nGostaria de mais detalhes sobre algum deles?";
|
|
19747
|
+
}
|
|
19748
|
+
if (mensagemLower.includes("próximo projeto") || mensagemLower.includes("próxima tarefa")) {
|
|
19749
|
+
return "Seu próximo projeto prioritário é o **Sistema de Analytics V2**.\n\n📅 Início previsto: Próxima segunda-feira\n👥 Time: 5 desenvolvedores\n⏱️ Duração estimada: 3 sprints\n\nJá preparei um roadmap inicial. Gostaria de revisar?";
|
|
19750
|
+
}
|
|
19751
|
+
if (mensagemLower.includes("desempenho") || mensagemLower.includes("performance") || mensagemLower.includes("melhor")) {
|
|
19752
|
+
return "Analisando os dados de performance dos últimos 30 dias:\n\n🏆 **Melhor Performance:**\n• Projeto Dashboard 2.0: +35% eficiência\n• Sistema CRM: -40% tempo de resposta\n• App Mobile: 4.8★ rating (+0.5)\n\n📊 Todos estão acima das metas estabelecidas. Parabéns!\n\nQuer ver métricas detalhadas?";
|
|
19753
|
+
}
|
|
19754
|
+
if (mensagemLower.includes("olá") || mensagemLower.includes("oi") || mensagemLower.includes("bom dia") || mensagemLower.includes("boa tarde") || mensagemLower.includes("boa noite")) {
|
|
19755
|
+
return "Olá! 👋 Como posso ajudar você hoje? Estou pronto para auxiliar com análises, relatórios ou responder suas dúvidas sobre os projetos.";
|
|
19756
|
+
}
|
|
19757
|
+
if (mensagemLower.includes("obrigado") || mensagemLower.includes("obrigada")) {
|
|
19758
|
+
return "Por nada! Estou aqui sempre que precisar. 😊 Se tiver mais alguma dúvida ou precisar de ajuda, é só chamar!";
|
|
19759
|
+
}
|
|
19760
|
+
if (mensagemLower.includes("criar documento")) {
|
|
19761
|
+
const tema = mensagemOriginal.replace(/📄 \[Criar documento\]/gi, "").trim();
|
|
19762
|
+
return `📝 Documento criado com sucesso!\\n\\nGerei um documento completo sobre "${tema}" com as seguintes seções:\\n\\n• Introdução e contexto\\n• Análise detalhada\\n• Dados e métricas relevantes\\n• Conclusões e recomendações\\n• Próximos passos\\n\\nO documento está pronto para revisão e pode ser editado conforme necessário. Gostaria de adicionar ou modificar alguma seção?`;
|
|
19763
|
+
}
|
|
19764
|
+
if (mensagemLower.includes("gerar podcast")) {
|
|
19765
|
+
const tema = mensagemOriginal.replace(/🎙️ \[Gerar podcast\]/gi, "").trim();
|
|
19766
|
+
return `🎙️ Preparando podcast sobre "${tema}"...\\n\\nEstou processando o conteúdo e gerando um roteiro de podcast profissional com:\\n\\n• Introdução envolvente\\n• Desenvolvimento do tema\\n• Exemplos práticos\\n• Conclusão e insights\\n\\nO áudio será gerado em instantes. Aguarde...`;
|
|
19767
|
+
}
|
|
19768
|
+
if (mensagemLower.includes("pesquisar")) {
|
|
19769
|
+
const termo = mensagemOriginal.replace(/🔍 \[Pesquisar\]/gi, "").trim();
|
|
19770
|
+
return `🔍 Resultados da pesquisa sobre "${termo}"\\n\\n**Encontrei as seguintes informações relevantes:**\\n\\n1. **Documentação interna** - 12 resultados\\n Guias e manuais relacionados ao tema\\n\\n2. **Projetos relacionados** - 8 projetos\\n Incluindo Analytics v2 e Dashboard Pro\\n\\n3. **Discussões em equipe** - 15 menções\\n Últimas conversas sobre o assunto\\n\\nGostaria de ver mais detalhes sobre algum desses resultados?`;
|
|
19771
|
+
}
|
|
19772
|
+
if (mensagemLower.includes("arquivo") || mensagemLower.includes("documento")) {
|
|
19773
|
+
return "Entendi que você deseja trabalhar com arquivos. Posso analisar diversos tipos de documentos:\n\n📄 Documentos de texto (PDF, DOCX)\n📊 Planilhas (XLSX, CSV)\n📈 Relatórios e apresentações\n\nBasta enviá-los usando o botão de anexo (📎) e terei prazer em analisá-los para você!";
|
|
19774
|
+
}
|
|
19775
|
+
const respostasGenericas = [
|
|
19776
|
+
"Entendo sua questão. Com base nos dados disponíveis na plataforma Xertica, posso fornecer análises detalhadas sobre esse tema. Poderia me dar mais contexto para que eu possa ajudá-lo melhor?",
|
|
19777
|
+
"Interessante! Deixe-me processar isso... Com base no seu histórico e nos dados do sistema, recomendo que possamos explorar essa questão em mais detalhes. O que especificamente você gostaria de saber?",
|
|
19778
|
+
"Ótima pergunta! Para te dar a melhor resposta possível, preciso entender melhor o contexto. Você pode me fornecer mais informações sobre o que está buscando?",
|
|
19779
|
+
"Estou analisando sua solicitação. Baseado nos dados do sistema Xertica, posso te ajudar com isso. Você gostaria de uma análise rápida ou um relatório completo?"
|
|
19780
|
+
];
|
|
19781
|
+
return respostasGenericas[Math.floor(Math.random() * respostasGenericas.length)];
|
|
19782
|
+
};
|
|
19709
19783
|
const __vite_import_meta_env__$2 = {};
|
|
19710
19784
|
function AssistantTooltipContent$1({
|
|
19711
19785
|
className,
|
|
@@ -19756,7 +19830,9 @@
|
|
|
19756
19830
|
width,
|
|
19757
19831
|
height,
|
|
19758
19832
|
className = "",
|
|
19759
|
-
mobileFloating = false
|
|
19833
|
+
mobileFloating = false,
|
|
19834
|
+
demoMode = false,
|
|
19835
|
+
customResponses = []
|
|
19760
19836
|
}) {
|
|
19761
19837
|
const isFullPage = mode === "fullPage";
|
|
19762
19838
|
const [internalIsExpanded, setInternalIsExpanded] = React.useState(controlledIsExpanded ?? true);
|
|
@@ -19821,6 +19897,25 @@
|
|
|
19821
19897
|
if (onSendMessage) {
|
|
19822
19898
|
onSendMessage(mensagem);
|
|
19823
19899
|
}
|
|
19900
|
+
if (demoMode) {
|
|
19901
|
+
const mensagemAtual = mensagem;
|
|
19902
|
+
setTimeout(() => {
|
|
19903
|
+
const resposta = gerarResposta(mensagemAtual, customResponses);
|
|
19904
|
+
let novaMensagemIA = {
|
|
19905
|
+
id: `msg-${Date.now()}-ia`,
|
|
19906
|
+
type: "assistant",
|
|
19907
|
+
content: "",
|
|
19908
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
19909
|
+
isFavorite: false
|
|
19910
|
+
};
|
|
19911
|
+
if (typeof resposta === "string") {
|
|
19912
|
+
novaMensagemIA.content = resposta;
|
|
19913
|
+
} else {
|
|
19914
|
+
novaMensagemIA = { ...novaMensagemIA, ...resposta };
|
|
19915
|
+
}
|
|
19916
|
+
setMensagens((prev) => [...prev, novaMensagemIA]);
|
|
19917
|
+
}, 1e3 + Math.random() * 1e3);
|
|
19918
|
+
}
|
|
19824
19919
|
setMensagem("");
|
|
19825
19920
|
};
|
|
19826
19921
|
const handleToggleFavorite = (messageId) => {
|
|
@@ -56406,80 +56501,6 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
56406
56501
|
}
|
|
56407
56502
|
) });
|
|
56408
56503
|
}
|
|
56409
|
-
const sugestoesPadrao = [
|
|
56410
|
-
{ id: "1", texto: "O que posso pedir para você fazer?" },
|
|
56411
|
-
{ id: "2", texto: "O que você faz?" },
|
|
56412
|
-
{ id: "3", texto: "Com quais projetos devo me preocupar agora?" },
|
|
56413
|
-
{ id: "4", texto: "Qual meu próximo projeto?" },
|
|
56414
|
-
{ id: "5", texto: "Qual projetos está tendo o melhor desempenho?" }
|
|
56415
|
-
];
|
|
56416
|
-
const sugestoesRicas = [
|
|
56417
|
-
{ id: "rich-1", texto: "Ver exemplo de Gráfico", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(ChartColumn, { className: "w-4 h-4 mr-2" }) },
|
|
56418
|
-
{ id: "rich-2", texto: "Ver exemplo de Imagem", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Image$1, { className: "w-4 h-4 mr-2" }) },
|
|
56419
|
-
{ id: "rich-3", texto: "Ver exemplo de Tabela", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Table$1, { className: "w-4 h-4 mr-2" }) },
|
|
56420
|
-
{ id: "rich-4", texto: "Ver exemplo de Documento", icon: /* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { className: "w-4 h-4 mr-2" }) }
|
|
56421
|
-
];
|
|
56422
|
-
const gerarResposta = (mensagemUsuario, customResponses) => {
|
|
56423
|
-
const mensagemLower = mensagemUsuario.toLowerCase();
|
|
56424
|
-
if (customResponses && customResponses.length > 0) {
|
|
56425
|
-
for (const mock of customResponses) {
|
|
56426
|
-
const trigger = mock.trigger;
|
|
56427
|
-
let match2 = false;
|
|
56428
|
-
if (trigger instanceof RegExp) {
|
|
56429
|
-
match2 = trigger.test(mensagemUsuario);
|
|
56430
|
-
} else {
|
|
56431
|
-
match2 = mensagemLower.includes(trigger.toLowerCase());
|
|
56432
|
-
}
|
|
56433
|
-
if (match2) {
|
|
56434
|
-
return mock.response;
|
|
56435
|
-
}
|
|
56436
|
-
}
|
|
56437
|
-
}
|
|
56438
|
-
const mensagemOriginal = mensagemUsuario;
|
|
56439
|
-
if (mensagemLower.includes("o que") && (mensagemLower.includes("fazer") || mensagemLower.includes("pedir"))) {
|
|
56440
|
-
return "Posso ajudar você com diversas tarefas! Posso:\n\n• Analisar dados e métricas dos seus projetos\n• Responder perguntas sobre performance e resultados\n• Sugerir otimizações e melhorias\n• Gerar relatórios e documentação\n• Ajudar no planejamento de sprints\n• E muito mais!\n\nQual tarefa você gostaria de realizar primeiro?";
|
|
56441
|
-
}
|
|
56442
|
-
if (mensagemLower.includes("o que você faz") || mensagemLower.includes("quem é você")) {
|
|
56443
|
-
return "Olá! Sou o Assistente Xertica, uma IA desenvolvida para ajudar você a gerenciar projetos, analisar dados e otimizar processos. Estou aqui 24/7 para responder suas perguntas e auxiliar nas suas tarefas diárias.\n\nPosso processar documentos, analisar áudios e imagens, além de fornecer insights baseados nos dados da plataforma.";
|
|
56444
|
-
}
|
|
56445
|
-
if (mensagemLower.includes("projeto") && (mensagemLower.includes("preocupar") || mensagemLower.includes("atenção"))) {
|
|
56446
|
-
return "Com base na análise dos seus projetos ativos, recomendo focar nos seguintes:\n\n1. **Projeto Alpha** - 15% acima do prazo, requer atenção imediata\n2. **Sistema Beta** - Performance crítica, necessita otimização\n3. **Mobile Gamma** - Aguardando aprovações há 5 dias\n\nGostaria de mais detalhes sobre algum deles?";
|
|
56447
|
-
}
|
|
56448
|
-
if (mensagemLower.includes("próximo projeto") || mensagemLower.includes("próxima tarefa")) {
|
|
56449
|
-
return "Seu próximo projeto prioritário é o **Sistema de Analytics V2**.\n\n📅 Início previsto: Próxima segunda-feira\n👥 Time: 5 desenvolvedores\n⏱️ Duração estimada: 3 sprints\n\nJá preparei um roadmap inicial. Gostaria de revisar?";
|
|
56450
|
-
}
|
|
56451
|
-
if (mensagemLower.includes("desempenho") || mensagemLower.includes("performance") || mensagemLower.includes("melhor")) {
|
|
56452
|
-
return "Analisando os dados de performance dos últimos 30 dias:\n\n🏆 **Melhor Performance:**\n• Projeto Dashboard 2.0: +35% eficiência\n• Sistema CRM: -40% tempo de resposta\n• App Mobile: 4.8★ rating (+0.5)\n\n📊 Todos estão acima das metas estabelecidas. Parab��ns!\n\nQuer ver métricas detalhadas?";
|
|
56453
|
-
}
|
|
56454
|
-
if (mensagemLower.includes("olá") || mensagemLower.includes("oi") || mensagemLower.includes("bom dia") || mensagemLower.includes("boa tarde") || mensagemLower.includes("boa noite")) {
|
|
56455
|
-
return "Olá! 👋 Como posso ajudar você hoje? Estou pronto para auxiliar com análises, relatórios ou responder suas dúvidas sobre os projetos.";
|
|
56456
|
-
}
|
|
56457
|
-
if (mensagemLower.includes("obrigado") || mensagemLower.includes("obrigada")) {
|
|
56458
|
-
return "Por nada! Estou aqui sempre que precisar. 😊 Se tiver mais alguma dúvida ou precisar de ajuda, é só chamar!";
|
|
56459
|
-
}
|
|
56460
|
-
if (mensagemLower.includes("criar documento")) {
|
|
56461
|
-
const tema = mensagemOriginal.replace(/📄 \[Criar documento\]/gi, "").trim();
|
|
56462
|
-
return `📝 Documento criado com sucesso!\\n\\nGerei um documento completo sobre "${tema}" com as seguintes seções:\\n\\n• Introdução e contexto\\n• Análise detalhada\\n• Dados e métricas relevantes\\n• Conclusões e recomendações\\n• Próximos passos\\n\\nO documento está pronto para revisão e pode ser editado conforme necessário. Gostaria de adicionar ou modificar alguma seção?`;
|
|
56463
|
-
}
|
|
56464
|
-
if (mensagemLower.includes("gerar podcast")) {
|
|
56465
|
-
const tema = mensagemOriginal.replace(/🎙️ \[Gerar podcast\]/gi, "").trim();
|
|
56466
|
-
return `🎙️ Preparando podcast sobre "${tema}"...\\n\\nEstou processando o conteúdo e gerando um roteiro de podcast profissional com:\\n\\n• Introdução envolvente\\n• Desenvolvimento do tema\\n• Exemplos práticos\\n• Conclusão e insights\\n\\nO áudio será gerado em instantes. Aguarde...`;
|
|
56467
|
-
}
|
|
56468
|
-
if (mensagemLower.includes("pesquisar")) {
|
|
56469
|
-
const termo = mensagemOriginal.replace(/🔍 \[Pesquisar\]/gi, "").trim();
|
|
56470
|
-
return `🔍 Resultados da pesquisa sobre "${termo}"\\n\\n**Encontrei as seguintes informações relevantes:**\\n\\n1. **Documentação interna** - 12 resultados\\n Guias e manuais relacionados ao tema\\n\\n2. **Projetos relacionados** - 8 projetos\\n Incluindo Analytics v2 e Dashboard Pro\\n\\n3. **Discussões em equipe** - 15 menções\\n Últimas conversas sobre o assunto\\n\\nGostaria de ver mais detalhes sobre algum desses resultados?`;
|
|
56471
|
-
}
|
|
56472
|
-
if (mensagemLower.includes("arquivo") || mensagemLower.includes("documento")) {
|
|
56473
|
-
return "Entendi que você deseja trabalhar com arquivos. Posso analisar diversos tipos de documentos:\n\n📄 Documentos de texto (PDF, DOCX)\n📊 Planilhas (XLSX, CSV)\n📈 Relatórios e apresentações\n\nBasta enviá-los usando o botão de anexo (📎) e terei prazer em analisá-los para você!";
|
|
56474
|
-
}
|
|
56475
|
-
const respostasGenericas = [
|
|
56476
|
-
"Entendo sua questão. Com base nos dados disponíveis na plataforma Xertica, posso fornecer análises detalhadas sobre esse tema. Poderia me dar mais contexto para que eu possa ajudá-lo melhor?",
|
|
56477
|
-
"Interessante! Deixe-me processar isso... Com base no seu histórico e nos dados do sistema, recomendo que possamos explorar essa questão em mais detalhes. O que especificamente você gostaria de saber?",
|
|
56478
|
-
"Ótima pergunta! Para te dar a melhor resposta possível, preciso entender melhor o contexto. Você pode me fornecer mais informações sobre o que está buscando?",
|
|
56479
|
-
"Estou analisando sua solicitação. Baseado nos dados do sistema Xertica, posso te ajudar com isso. Você gostaria de uma análise rápida ou um relatório completo?"
|
|
56480
|
-
];
|
|
56481
|
-
return respostasGenericas[Math.floor(Math.random() * respostasGenericas.length)];
|
|
56482
|
-
};
|
|
56483
56504
|
function AssistenteXertica({
|
|
56484
56505
|
isExpanded,
|
|
56485
56506
|
onToggle,
|