POST
/ai/chat
Descrição: Envia uma mensagem para o Azure OpenAI e recebe a resposta da IA.
🎯 Funcionalidades Especiais:
- Listagem Automática de Avaliações: Quando o usuário solicita ver avaliações disponíveis, Sofia automaticamente busca e lista as avaliações que o usuário tem permissão para analisar.
- Análise Contínua de Avaliações: Sofia pode analisar avaliações específicas diretamente na conversa, carregando automaticamente os dados completos da avaliação e respondendo com contexto enriquecido.
- Detecção Inteligente: Detecta automaticamente quando o usuário quer listar avaliações ou analisar uma específica através de palavras-chave e IDs/nomes.
- Fluxo Natural: Tudo acontece em uma única conversa - sem necessidade de trocar de endpoints!
🔐 Autenticação
Requer autenticação JWT. Incluir o token no header:
Authorization: Bearer {seu_token_jwt}
📥 Request Body
| Campo |
Tipo |
Obrigatório |
Descrição |
| message |
string |
Sim |
Mensagem/pergunta para enviar à IA |
📤 Exemplo de Request
POST /api/ai/chat
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
{
"message": "Qual é a capital do Brasil?"
}
✅ Resposta de Sucesso
Status: 200 OK
Content-Type: application/json
{
"success": true,
"code": 200,
"message": "Response generated successfully",
"data": {
"response": "Olá, tudo bem com você Ricardo? Em que posso te ajudar hoje?",
"tokens_used": 45
}
}
📋 Exemplo: Listagem de Avaliações
POST /api/ai/chat
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
{
"message": "me liste os usuario que eu posso ver o resultado de sua avaliações"
}
✅ Resposta de Sucesso (Listagem)
Status: 200 OK
{
"success": true,
"code": 200,
"message": "Assessment list retrieved successfully",
"data": {
"response": "Olá Ricardo, encontrei 3 avaliações que você pode analisar:\n\n• Antonio Costa Reis (ID: 13874) - completed em 15/01/2025\n• Mirela Souza (ID: 13875) - completed em 20/01/2025\n• Sandro Almeida Silva (ID: 13876) - completed em 22/01/2025\n\nQual delas você gostaria de analisar? Me informe o nome da pessoa ou o ID da avaliação.",
"available_assessments": [
{
"assessment_id": 13874,
"user_name": "Antonio Costa Reis",
"status": "completed",
"date_conclusion": "2025-01-15"
},
{
"assessment_id": 13875,
"user_name": "Mirela Souza",
"status": "completed",
"date_conclusion": "2025-01-20"
},
{
"assessment_id": 13876,
"user_name": "Sandro Almeida Silva",
"status": "completed",
"date_conclusion": "2025-01-22"
}
],
"tokens_used": 0
}
}
🔍 Exemplo: Análise de Avaliação Específica
POST /api/ai/chat
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
{
"message": "Qual o traço dominante de Antonio Costa Reis?"
}
✅ Resposta de Sucesso (Análise)
Status: 200 OK
{
"success": true,
"code": 200,
"message": "Response generated successfully",
"data": {
"response": "Analisando a avaliação de Antonio Costa Reis, o traço dominante identificado é Dominance (Dominância). Isso indica que Antonio tem características de liderança natural, gosta de tomar decisões rápidas e tem alta orientação para resultados. Baseado nos dados da sua avaliação SOAR, ele demonstra...",
"tokens_used": 1245,
"assessment_context": {
"assessment_id": 13874,
"user_name": "Antonio Costa Reis",
"status": "completed"
}
}
}
❌ Respostas de Erro
400 - Bad Request (Mensagem vazia)
Status: 400 Bad Request
{
"success": false,
"code": 400,
"message": "Message is required"
}
401 - Unauthorized (Token inválido)
Status: 401 Unauthorized
{
"success": false,
"code": 401,
"message": "Invalid or missing token"
}
500 - Internal Server Error (Configuração Azure)
Status: 500 Internal Server Error
{
"success": false,
"code": 500,
"message": "Azure OpenAI configuration is incomplete."
}
🔧 Campos de Resposta
| Campo |
Tipo |
Descrição |
| success |
boolean |
Indica se a operação foi bem-sucedida |
| code |
integer |
Código de status HTTP |
| message |
string |
Mensagem descritiva do resultado |
| data.response |
string |
Resposta da IA (apenas em caso de sucesso) |
| data.tokens_used |
integer |
Número de tokens utilizados (apenas em caso de sucesso) |
GET
/ai/
Descrição: Verifica se o serviço de chat com IA está ativo.
🔐 Autenticação
Requer autenticação JWT. Incluir o token no header:
Authorization: Bearer {seu_token_jwt}
📤 Exemplo de Request
GET /api/ai/
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
✅ Resposta de Sucesso
Status: 200 OK
Content-Type: application/json
{
"success": true,
"code": 200,
"message": "Chat AI service is active. Use POST /ai/chat to send messages."
}
🤖 Sobre a Sofia
A Sofia é a inteligência artificial do SOAR Global Institute, projetada para:
- Identidade: Sempre se apresenta como "Sofia, a inteligência artificial do SOAR Global Institute"
- Personalização: Usa o nome do usuário logado nas respostas
- Tom: Formal, educada e profissional, mas acolhedora
- Foco: EXCLUSIVAMENTE desenvolvimento pessoal, coaching, avaliações e temas do SOAR
- Idiomas: Responde no idioma configurado pelo usuário (Português, Espanhol ou Inglês)
- Limitações: NÃO fala sobre conhecimentos gerais, história, química, português, política, esportes ou outras disciplinas
🌍 Idiomas Suportados:
- Português (ID: 1): "Olá, tudo bem com você [Nome]? Em que posso te ajudar hoje?"
- Espanhol (ID: 2): "Hola, ¿cómo estás [Nombre]? ¿En qué puedo ayudarte hoy?"
- Inglês (ID: 3): "Hello, how are you [Name]? How can I help you today?"
Detecção Automática: A Sofia detecta automaticamente o idioma do usuário baseado na configuração na tabela users.language
🚫 Limitações da Sofia:
A Sofia NÃO pode falar sobre:
- Conhecimentos gerais (história, química, português, matemática, etc.)
- Política, esportes, entretenimento
- Notícias ou atualidades
- Outras disciplinas acadêmicas
- Qualquer assunto não relacionado ao SOAR Global Institute
Exemplos de redirecionamento:
- Pergunta: "Qual é a capital do Brasil?"
- Resposta: "Desculpe, mas não posso falar sobre geografia. Posso te ajudar com desenvolvimento pessoal e avaliações do SOAR Global Institute. Em que posso te auxiliar?"
Foco exclusivo: Desenvolvimento pessoal, coaching, avaliações SOAR e crescimento profissional