Nevolus IA – API de Conversas com Chatbots

Índice

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.