HEX
Server: Apache
System: Linux vpshost11508.publiccloud.com.br 5.15.179-grsec-vpshost-10.lc.el8.x86_64 #1 SMP Mon Apr 7 12:04:45 -03 2025 x86_64
User: wicomm2 (10002)
PHP: 8.3.0
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: /home/storage/5/78/dd/wicomm2/public_html/clientes/lookai/openai.php
<?php

function ai_analyze($area, $kpis, $labels, $trend) {
    $cfg = require __DIR__ . '/config.php';
    $apiKey = "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";

    $ecommerceURL = $cfg['ecommerce']['url'];
    $ecommerceProduct = $cfg['ecommerce']['product'];
    $ecommercePlataform = $cfg['ecommerce']['plataform'];
    $ecommerceGoal = $cfg['ecommerce']['goal'];

    if (!$apiKey) {
        return ['text' => '⚠️ Chave da API GPT não configurada em config.php'];
    }

    $context = [
        'area' => $area,
        'kpis' => $kpis,
        'labels' => $labels,
        'trend' => $trend
    ];

    $prompt = "
    Você é um analista sênior de marketing de performance e dados focado em ecommerce para o ecommerce 
    $ecommerceURL de plataforma: $ecommercePlataform, e aqui, tem um exemplo de página de produto: $ecommerceProduct e
    olhando para faturamento, precisamos entender se pacing atual, vai conseguir bater na meta do mês contida em: $ecommerceGoal
    Baseado nas métricas abaixo, gere um relatório completo, interpretativo e estratégico para a área de {$area}.
    O texto deve ser humano, analítico e técnico, com base no exemplo contido em ## Exemplo de resposta com estratégia, 
    você não pode escrever os slides de uma maneira fora do estilo proposto no exemplo. Seja didatico e crie todo o 
    walkthrough da estratégia passo a passo.

    Ao interpretar esses 6 pontos, você vai me retornar no formato de apresentação de 6 slides, 
    criando uma narrativa na sua apresentação de uma forma simples de entender, e com os dados e métricas 
    tecnicas explicadas para um usuario comum, mas, TODA A NARRATIVA DO SEU RETORNO precisa estar alinhada com os 
    dados e todas as sugestões precisam ter um embasamento técnico do o que e por que -> precisa ser feito.

    Não fale sobre remarketing, campanhas, teste a/b e sugestões simples e básicas, você precisa criar estratégias
    especificas para aumentar o faturamento, trafego, taxa de conversão e fazer analise de dados que ninguem
    consegue fazer.

    Seja especifico e concreto, voce não pode ter duvidas sobre o que está falando, nem deduzir algo, nem falar de 
    uma maneira que deixe dúvida, precisa ser estratégico, com embasamento nos dados.

    Regras:
        - não utilize travessões na sua escrita
        - não utilize jargões, analogias ou metaforas
        - não utilize linguagem tecnica, foque em uma escrita simples, que poderia ser entendida por qualquer pessoa, 
        mesmo não sendo técnica
        - não utilize listas numeradas nos headings e headlines dos tópicos
        - cada slide, precisa ter um detalhamento completo da estratégia sugerida, nada por ser básico ou óbvio, 
        precisa ser algo explicitamente relacionado com os dados consumidos, nada pode ser 'realizar teste a/b, 
        otimizar landing pages'
        - seja sempre pragmático em suas projeções e análise
        - Separe os slides por bloco, mas não coloque 'slide' ou 'bloco' no retorno
        - Siga o formato de saída do Formato de saída, mas tente não colocar no retorno as palavras 'heading' e 'texto'
        - retorne sempre pelo menos 5 slides / blocos dentro do formato de saída com base no ## Exemplo de resposta 
        com estratégia, mantendo o mesmo estilo de escrita e modelo de explicação
        - nenhuma estratégia sugerida pode ser básica, como 'analisar promoções', 'fazer campanha de retargeting', 
        quero profundidade e densidade na analise dos dados, para identificar padrões e fatores de crescimento 
        e queda e assim, sugerir apenas o que realmente faz sentido e acordo com a navegação, sessões, 
        canais, produtos e taxa de conversão

    Formato de saída:

    heading em ###
    **Problema/oportunidade**:
    **Hipótese**:
    **Objetivo**:
    **Métricas**: 

    ## Exemplo de resposta com estratégia:

    heading: Prevenção de abandono de carrinho
    \n*Problema/oportunidade**: Paradoxo da escolha: O alto volume de itens no catálogo pode gerar dificuldade na tomada de decisão?
    \n**Hipótese**: Incluir um modal de prevenção de abandono de carrinho ofertando ao usuário um cupom para finalização da compra durante a navegação aumentará o volume de transações ao oferecer um incentivo final à conversão, reduzindo o impacto do viés cognitivo de excesso de opções.
    \n**Objetivo**: Acelerar a tomada de decisão e reduzir a perda de atenção durante a exploração de produtos.
    \n**Métricas**: 
    - Transações 
    - Taxa de conversão 
    - Taxa de conversão entre adições ao carrinho e transações.

    heading: Maior destaque para imagens dos produtos
    **Problema/oportunidade**: Atualmente, as imagens dos produtos nas vitrines são exibidas em proporção quadrada e dimensão reduzida, carregando oportunidades para maior destaque.
    **Hipótese**: Se aumentarmos o tamanho das imagens dos produtos na vitrine, os usuários conseguirão avaliar melhor detalhes estéticos (cor, textura, formato), o que aumentará a atratividade dos itens, resultando em maior taxa de cliques nos produtos e, consequentemente, em mais adições ao carrinho e conversões.
    **Métricas**: 
    - CTR da vitrine → PDP
    - Taxa de adições ao carrinho
    - Receita
    - Transações

Dados:
" . json_encode($context, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

    $payload = [
        "model" => "gpt-4o-mini",
        "messages" => [
            ["role" => "system", "content" => "Você é um consultor sênior de analytics, growth e estratégia de conversão focado em ecommerce que gera estratégias especificas com base em dados, você nunca sugere algo básico, apenas o que interpreta com base em dados."],
            ["role" => "user", "content" => $prompt]
        ],
        "temperature" => 0.7,
        "max_tokens" => 1800
    ];

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

    $res = curl_exec($ch);
    $err = curl_error($ch);
    curl_close($ch);

    if ($err) {
        return ['text' => '❌ Erro na requisição: ' . $err];
    }

    $data = json_decode($res, true);
    $text = $data['choices'][0]['message']['content'] ?? null;

    return ['text' => $text ?: '⚠️ Nenhum insight retornado pela IA.'];
}
?>