%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/komfo908/api.komforthousesofas.com/karla/
Upload File :
Create Path :
Current File : /home/komfo908/api.komforthousesofas.com/karla/chat_audio_update (1).php

<?php
// Substitua pela sua chave da API OpenAI
$apiKey = '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';

// Recebe o JSON enviado pelo BotConversa
$input = json_decode(file_get_contents('php://input'), true);

$audioUrl = $input['mensagem']['arquivo_url'] ?? '';
$nomeCliente = $input['cliente']['nome'] ?? 'Desconhecido';
$telefoneCliente = $input['cliente']['telefone'] ?? 'Sem telefone';

if (!$audioUrl) {
    echo json_encode(['erro' => 'URL do áudio não recebida.']);
    exit;
}

// Salva o áudio localmente
$audioName = uniqid('audio_') . '.mp3';
$localPath = __DIR__ . '/uploads/' . $audioName;

// Cria a pasta se não existir
if (!file_exists(__DIR__ . '/uploads')) {
    mkdir(__DIR__ . '/uploads', 0777, true);
}

file_put_contents($localPath, file_get_contents($audioUrl));

// Envia o áudio para o Whisper
$whisperCurl = curl_init();
curl_setopt_array($whisperCurl, [
    CURLOPT_URL => 'https://api.openai.com/v1/audio/transcriptions',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer $apiKey"
    ],
    CURLOPT_POSTFIELDS => [
        'file' => new CURLFile($localPath),
        'model' => 'whisper-1',
        'language' => 'pt'
    ]
]);
$whisperResponse = curl_exec($whisperCurl);
curl_close($whisperCurl);

$transcription = json_decode($whisperResponse, true);
$texto = $transcription['text'] ?? 'Não foi possível transcrever o áudio.';

// Envia o texto para o ChatGPT
$chatData = [
    'model' => 'gpt-4',
    'messages' => [
        ['role' => 'user', 'content' => $texto]
    ]
];

$chatCurl = curl_init('https://api.openai.com/v1/chat/completions');
curl_setopt_array($chatCurl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        "Authorization: Bearer $apiKey"
    ],
    CURLOPT_POSTFIELDS => json_encode($chatData)
]);
$chatResponse = curl_exec($chatCurl);
curl_close($chatCurl);

$chatResult = json_decode($chatResponse, true);
$resposta = $chatResult['choices'][0]['message']['content'] ?? 'Erro ao gerar resposta.';

// Retorna para o BotConversa no formato esperado
echo json_encode([
    'mensagem' => [
        'tipo' => 'audio',
        'arquivo_url' => $audioUrl
    ],
    'cliente' => [
        'nome' => $nomeCliente,
        'telefone' => $telefoneCliente
    ],
    'transcricao' => $texto,
    'resposta' => $resposta
]);

Zerion Mini Shell 1.0