%PDF- %PDF-
Direktori : /home/komfo908/api.komforthousesofas.com/karla/ |
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 ]);