Convidar amigos e ganhar tokens grátis!Saiba mais

Criar Geração de Imagens via Chat (Não-Streaming)

Este endpoint é utilizado para enviar um prompt (contendo texto ou imagem) ao modelo, que retornará uma ou mais respostas geradas. Ele é especialmente adequado para modelos que suportam entradas multimodais (como processamento de imagens, aprimoramento visual e criação baseada em reconhecimento de imagem), como o gpt-4o-image-vip.

Informações do Endpoint

  • URL do Endpoint: https://api.codingplanx.ai/v1/chat/completions
  • Método da Requisição: POST
  • Content-Type: application/json
  • Tipo de Resposta: application/json

Cabeçalhos da Requisição (Headers)

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

Parâmetros da Requisição (Body)

O corpo da requisição é um objeto JSON que contém os seguintes campos:

Nome do ParâmetroTipoObrigatórioPadrãoDescrição
modelStringSim-ID do modelo a ser utilizado. Exemplo: gpt-4o-image-vip.
messagesArraySim-Lista de mensagens do chat. Cada objeto contém role (user/assistant/system) e content. O content pode ser uma string ou um array de objetos contendo o tipo e a URL da imagem.
toolsArraySim-Lista de ferramentas (tools) que o modelo pode chamar. Atualmente, suporta apenas funções.
tool_choiceObjectSimnoneControla qual função o modelo deve chamar. none para não chamar nenhuma, auto para escolha automática.
temperatureNumberNão1Temperatura de amostragem (0-2). Valores mais altos tornam a saída mais aleatória; valores mais baixos a tornam mais focada/determinística.
top_pNumberNão1Amostragem de núcleo (Nucleus sampling). Considera apenas os tokens com probabilidade de massa top P. Recomenda-se alterar este ou temperature, mas não ambos.
nIntegerNão1Número de opções de respostas (completions) a serem geradas para cada entrada.
streamBooleanNãofalseSe a resposta deve ser via streaming. Este endpoint atual é definido como não-streaming.
max_tokensIntegerNãoinfNúmero máximo de tokens a serem gerados.
stopString/ArrayNãonullSequência de parada (stop sequence). A API parará de gerar novos tokens quando encontrá-la.
presence_penaltyNumberNão0Entre -2.0 e 2.0. Penaliza novos tokens com base em sua presença no texto até agora, aumentando a probabilidade de o modelo falar sobre novos tópicos.
frequency_penaltyNumberNão0Entre -2.0 e 2.0. Penaliza novos tokens com base em sua frequência de uso no texto até o momento.
response_formatObjectNão-Especifica o formato de saída, como { "type": "json_object" } para ativar o modo JSON.
userStringNão-Identificador único que representa o usuário final, ajudando a monitorar e prevenir abusos.
seenIntegerNão-(Beta) Especifica o valor da semente (seed) para tentar obter amostragens determinísticas.

Parâmetros de Resposta

Nome do ParâmetroTipoDescrição
idStringIdentificador único para a requisição.
objectStringTipo do objeto, sempre será chat.completion.
createdIntegerCarimbo de data/hora Unix (em segundos).
choicesArrayContém as opções de respostas geradas.
└ indexIntegerO índice da opção no array.
└ messageObjectObjeto de mensagem contendo role e content.
└ finish_reasonStringMotivo da parada da geração (ex: stop, length).
usageObjectEstatísticas de uso de tokens.
└ prompt_tokensIntegerNúmero de tokens consumidos no prompt.
└ completion_tokensIntegerNúmero de tokens consumidos na resposta (completion).
└ total_tokensIntegerTotal de tokens consumidos.

Exemplos

Exemplo de Requisição (Aprimoramento/Criação de Imagem)

{
    "model": "gpt-4o-image-vip",
    "messages": [
      {
            "role": "user",
            "content": [
                {"type": "text", "text": "Aprimore esta imagem, adicione as palavras 'Eu Amo a China' e ajuste a proporção para [4:3] "},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
                    }
                }
            ]
        }
    ],
    "tools": [],
    "tool_choice": "none"
}

Exemplo de Resposta

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Certo, a imagem foi processada para você. Você pode conferir o resultado gerado aqui: [Link da Imagem/Descrição]"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

FAQs (Perguntas Frequentes)

P: Por que a requisição retorna um erro ao usar response_format: { "type": "json_object" }? R: Ao usar o modo JSON, você deve instruir explicitamente o modelo a gerar JSON dentro de messages (por exemplo: adicionando "Por favor, responda no formato JSON" no prompt do sistema). Caso contrário, o modelo pode entrar em um loop infinito ou gerar um erro por produzir um conteúdo não-JSON.

P: Como garantir que os resultados gerados sejam consistentes em cada requisição? R: Embora os modelos de IA possuam aleatoriedade inerente, você pode tentar definir o parâmetro seen (seed) e manter a temperature em 0. Além disso, monitore o campo system_fingerprint na resposta para verificar se o ambiente de back-end sofreu alguma alteração.

P: Qual é o valor ideal para definir em max_tokens? R: Isso depende do seu cenário de uso. Para descrições curtas de imagens, um valor entre 100-300 é suficiente; se precisar de uma análise detalhada ou criação de texto longo, recomenda-se definir acima de 1000. Lembre-se de que a soma dos tokens de entrada (incluindo imagens) e de saída não pode exceder o limite de contexto do modelo.

P: Como lidar com a entrada de imagens? R: No campo content de messages, utilize type: "image_url". Atualmente, é fortemente recomendado o uso de links de imagens HTTPS que sejam publicamente acessíveis na internet.

P: Os parâmetros tools e tool_choice são obrigatórios? R: Com base na definição deste endpoint, esses dois campos estão marcados como obrigatórios. Se você não precisa que o modelo chame uma ferramenta específica, defina tools como um array vazio [] e tool_choice como "none".