Convidar amigos e ganhar tokens grátis!Saiba mais

Criar Chat com Reconhecimento de Imagem (Não-Streaming)

Este endpoint é utilizado para enviar prompts contendo texto e imagens para o modelo, obtendo uma única resposta de conclusão de chat (chat completion). O modelo retornará descrições detalhadas ou respostas com base no contexto inserido e no conteúdo da imagem.

  • URL do Endpoint: https://api.codingplanx.ai/v1/chat/completions
  • Método HTTP: POST
  • Status: Publicado (Released)

Cabeçalhos da Requisição (Headers)

ParâmetroObrigatórioTipoExemploDescrição
Content-TypeSimStringapplication/jsonFormato do corpo da requisição
AcceptSimStringapplication/jsonFormato do corpo da resposta
AuthorizationNãoStringBearer {{YOUR_API_KEY}}Chave de API utilizada para autenticação

Corpo da Requisição (Request Body)

ParâmetroObrigatórioTipoPadrãoDescrição
modelSimString-ID do modelo a ser utilizado (ex: gpt-4o).
messagesSimArray-Lista de mensagens do chat. Para análise de imagens, o content deve receber um array de objetos.
temperatureNãoNumber1Temperatura de amostragem (0 a 2). Valores mais altos tornam o resultado mais aleatório; mais baixos, mais determinísticos.
top_pNãoNumber1Probabilidade de amostragem de núcleo (nucleus sampling). Recomenda-se alterar este parâmetro ou temperature, mas não ambos.
max_tokensNãoIntegerinfNúmero máximo de Tokens a serem gerados.
nNãoInteger1Quantidade de respostas alternativas geradas para cada entrada de prompt.
streamNãoBooleanfalseSe deve usar saída em streaming. Fixo como false para este endpoint.
stopNãoString/ArraynullSequência(s) de parada. Suporta até 4 sequências onde a API interromperá a geração.
presence_penaltyNãoNumber0Penalidade de presença (-2.0 a 2.0). Aumenta a probabilidade do modelo falar sobre novos tópicos.
frequency_penaltyNãoNumber0Penalidade de frequência (-2.0 a 2.0). Diminui a probabilidade do modelo repetir as mesmas frases ou termos.
response_formatNãoObject-Especifica o formato de saída, ex: { "type": "json_object" } para ativar o modo JSON.
userNãoString-Identificador único do usuário final.
toolsNãoArray-Lista de ferramentas que o modelo pode chamar (atualmente suporta apenas functions).
tool_choiceNãoObject-Controla o comportamento do modelo ao chamar ferramentas (none/auto/função específica).

Estrutura do Objeto de Imagem em messages (Content Array)

Ao realizar uma requisição com reconhecimento de imagem, o messages.content deve conter a seguinte estrutura:

  • type: "text" ou "image_url"
  • text: Quando o type for "text", insira a pergunta ou prompt em texto.
  • image_url: Quando o type for "image_url", insira o objeto { "url": "URL_da_imagem" }.

Exemplo de Requisição (Request)

{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
            "role": "user",
            "content": [
                {
                    "type": "text", 
                    "text": "O que há nesta imagem? Por favor, descreva em detalhes."
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
                    }
                }
            ]
        }
    ]
}

Parâmetros de Resposta (Response Body)

ParâmetroTipoDescrição
idStringIdentificador único desta requisição.
objectStringTipo de objeto, fixo como chat.completion.
createdIntegerTimestamp Unix (em segundos).
choicesArrayLista contendo as múltiplas opções geradas.
└ indexIntegerÍndice da opção.
└ messageObjectObjeto de mensagem retornado pelo modelo (contém role e content).
└ finish_reasonStringMotivo pelo qual o modelo parou de gerar (ex: stop, length).
usageObjectEstatísticas de uso de Tokens.
└ prompt_tokensIntegerTokens consumidos pelo prompt (entrada).
└ completion_tokensIntegerTokens consumidos pelo resultado gerado.
└ total_tokensIntegerTotal de Tokens consumidos na requisição.

Exemplo de Resposta (Response)

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Esta imagem mostra uma mesa de escritório arrumada com um laptop, uma xícara de café e uma planta suculenta."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 120,
        "completion_tokens": 45,
        "total_tokens": 165
    }
}

Perguntas Frequentes (FAQs)

P: Quais modelos suportam a funcionalidade de reconhecimento de imagem? R: Atualmente, o suporte principal é para modelos multimodais como gpt-4o, gpt-4-turbo e gpt-4-vision-preview. Certifique-se de passar o ID correto no campo model.

P: Quais formatos de imagem são suportados? R: Suportamos os formatos de imagem mais comuns da web, como PNG, JPEG, WEBP e arquivos GIF não animados.

P: Existem restrições de permissão para os links das imagens? R: A URL da imagem fornecida deve ser publicamente acessível. Se a imagem estiver hospedada em um armazenamento em nuvem privado, gere um link de acesso temporário assinado ou converta a imagem para codificação Base64 antes de enviá-la (Nota: O Base64 deve seguir o formato URI de dados data:image/jpeg;base64,...).

P: Como funciona o faturamento (cobrança) do reconhecimento de imagens? R: As imagens são convertidas em Tokens para faturamento com base em sua resolução e nível de detalhes. Geralmente, imagens de baixa resolução consomem uma quantidade pequena e fixa de Tokens, enquanto imagens de alta resolução têm seu custo em Tokens calculado com base no número de recortes (tiles) de 512x512 pixels.

P: O que devo fazer se quiser uma saída em streaming (efeito de máquina de escrever)? R: Por favor, defina o parâmetro stream como true no corpo da requisição. No entanto, observe que as instruções desta documentação são focadas em retornos não-streaming. O formato de dados para respostas em streaming mudará para Server-Sent Events (SSE).

P: Por que a API retornou "finish_reason": "length"? R: Isso indica que a resposta gerada atingiu o limite que você definiu no parâmetro max_tokens ou excedeu a capacidade (janela de contexto) do modelo, fazendo com que o conteúdo fosse truncado/cortado.