Índice
- Informações Gerais
- Contextos de Chatbots
- Treinamento de Chatbots
- Recursos Adicionais
- API – Autenticação Remota
- API – Conversas com Chatbots
Visão Geral
Esta API permite acessar o chatbot criado na Nevolus para envio de perguntas e recebimento de respostas. As conversas são registradas no sistema da mesma forma que as interações dos usuários feitas diretamente na interface do chatbot.
Endpoint
POST https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery
Autenticação
A autenticação é feita via Bearer Token cadastrado na sua conta. Inclua o token no cabeçalho da requisição HTTP:
Authorization: Bearer <SEU_TOKEN>
- O Bearer Token deve ser mantido em sigilo.
Exemplo de chamada cURL
curl -X POST https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <SEU_TOKEN>" \
-d '{
"prompt": "Olá, tudo bem?",
"botId": "default",
"username": "<USERNAME>"
}'
- O campo username deve ser o login de um usuário existente na plataforma.
Resposta de Sucesso (HTTP 200)
{
"success": true,
"data": "Olá! Como posso ajudar você hoje?",
"extra": {
"actions": [],
"chatId": "68c2cc939e1ca"
}
}
- data: resposta do chatbot.
- chatId: identificador da conversa. Use este valor no corpo da requisição para manter o contexto da conversa em mensagens subsequentes.
Erros Comuns
Bearer Token ou Username inválido:
{
"code": "rest_forbidden",
"message": "Sem permissão para fazer isso.",
"data": {
"status": 401
}
}
Descrição do Fluxo das Conversas
1. Solicite o prompt (pergunta) do usuário.
2. Monte o array dos dados com: URL da API, Bearer Token, prompt do usuário, botId e username.
3. Se houver um chatId, inclua-o nos dados.
4. Realize requisição HTTP POST para a API, enviando os dados em formato JSON.
5. Receba a resposta da API com a resposta do chatbot e o chatId em formato JSON.
6. Solicite novo prompt para o usuário, reiniciando o fluxo.
Exemplos de scripts interativos
Os scripts a seguir implementam um chat interativo via terminal com o chatbot, autenticando-se via Bearer Token, e mantendo o contexto da conversa usando o chatId retornado pela API. O usuário pode encerrar a conversa digitando “sair” ou “exit”.
Em PHP:
<?php
// Verifica se o username foi passado como argumento
if ($argc < 2) {
echo "Uso: php {$argv[0]} <username>\n";
exit(1);
}
define('USERNAME', $argv[1]);
$api_url = 'https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery';
$bearer_token = '<SEU_TOKEN>';
function enviar_mensagem($prompt, $chatId = null) {
global $api_url, $bearer_token;
$data = [
'prompt' => $prompt,
'botId' => 'default',
'username' => USERNAME
];
if ($chatId) {
$data['chatId'] = $chatId;
}
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $bearer_token
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Erro no cURL: ' . curl_error($ch) . PHP_EOL;
exit(1);
}
curl_close($ch);
return json_decode($response, true);
}
$prompt = readline("Você: ");
$chatId = null;
while (strtolower(trim($prompt)) !== 'sair' && strtolower(trim($prompt)) !== 'exit') {
$result = enviar_mensagem($prompt, $chatId);
if (isset($result['success']) && $result['success'] && isset($result['data'])) {
echo "Bot: " . $result['data'] . PHP_EOL;
if (isset($result['extra']['chatId'])) {
$chatId = $result['extra']['chatId'];
}
} else {
echo "Erro na resposta da API:\n";
print_r($result);
break;
}
$prompt = readline("Você: ");
}
echo "Conversa encerrada.\n";
- Uso: php chatbot_interativo.php <login_de_usuário_existente_na_plataforma>
Em Python:
import requests
import sys
if len(sys.argv) < 2:
print(f"Uso: python {sys.argv[0]} <username>")
sys.exit(1)
USERNAME = sys.argv[1]
API_URL = "https://sua_url_nevolus/wp-json/mwai/v1/simpleChatbotQuery"
BEARER_TOKEN = "<SEU_TOKEN>"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {BEARER_TOKEN}"
}
chat_id = None
while True:
prompt = input("Você: ")
if prompt.strip().lower() in ["sair", "exit"]:
print("Conversa encerrada.")
break
data = {
"prompt": prompt,
"botId": "default",
"username": USERNAME
}
if chat_id:
data["chatId"] = chat_id
response = requests.post(API_URL, json=data, headers=headers)
if response.status_code == 200:
result = response.json()
if result.get("success") and "data" in result:
print("Bot:", result["data"])
chat_id = result.get("extra", {}).get("chatId", chat_id)
else:
print("Erro na resposta da API:", result)
break
else:
print("Erro HTTP:", response.status_code, response.text)
break
- Uso: python chatbot_interativo.py <login_de_usuário_existente_na_plataforma>
Em caso de dúvidas sobre integração, entre em contato consoco.