Convidar amigos e ganhar tokens grátis!Saiba mais

Documentação da API de Reconhecimento de Imagens DeepSeek-OCR

Esta interface fornece a funcionalidade de reconhecimento óptico de caracteres (OCR) em imagens, baseada no modelo DeepSeek-OCR. A API utiliza um formato de preenchimento de chat (Chat Completions) compatível com a OpenAI, permitindo o upload de imagens via URL ou codificação Base64 para conversão em texto ou formato Markdown.

  • Domínio do Serviço: https://api.codingplanx.ai
  • Caminho do Endpoint: /v1/chat/completions
  • Método de Requisição: POST
  • Status do Endpoint: Publicado (Released)

1. Parâmetros da Requisição

1.1 Cabeçalhos da Requisição (Headers)

Nome do ParâmetroObrigatórioTipoExemploDescrição
Content-TypeSimStringapplication/jsonFormato do corpo da requisição
AcceptSimStringapplication/jsonFormato do corpo da resposta
AuthorizationSimStringBearer YOUR_API_KEYChave de API para autenticação (API Key)

1.2 Corpo da Requisição (Request Body)

Nome do ParâmetroObrigatórioTipoDescrição
modelSimStringID do modelo a ser utilizado. Para reconhecimento OCR, especifique deepseek-ocr.
messagesSimArrayLista contendo as mensagens da conversa. Para OCR, é necessário incluir as informações da imagem na mensagem.
streamNãoBooleanO padrão é false. Se for true, o conteúdo da resposta será retornado em fluxo (streaming).
temperatureNãoNumberTemperatura de amostragem (0-2). Valores baixos são mais focados e estáveis; valores altos são mais aleatórios.
top_pNãoNumberLimite de probabilidade de amostragem de núcleo (nucleus sampling).
max_tokensNãoIntegerNúmero máximo de Tokens a serem gerados.
response_formatNãoObjectEspecifica o formato de retorno, por exemplo, {"type": "json_object"} para ativar o modo JSON.
toolsNãoArrayLista de ferramentas que o modelo pode chamar (atualmente, suporta principalmente chamadas de função).

2. Exemplo de Requisição

2.1 Requisição de Reconhecimento de Imagem OCR (JSON)

{
  "model": "deepseek-ocr",
  "stream": false,
  "messages": [
    {
      "role": "system",
      "content": "<image>\r
Free OCR."
    },
    {
      "role": "user",
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": "https://s3.ffire.cc/files/pdf_to_markdown.jpg" 
          }
        }
      ]
    }
  ]
}

Nota: O campo image_url.url suporta a passagem direta de uma URL pública da imagem ou de uma string de dados codificada em Base64 (no formato: data:image/jpeg;base64,...).


3. Descrição da Resposta

3.1 Estrutura do Corpo da Resposta

CampoTipoDescrição
idStringIdentificador único desta requisição.
objectStringTipo do objeto, geralmente chat.completion.
createdIntegerTimestamp Unix (em segundos).
choicesArrayContém as múltiplas opções geradas.
└─ messageObjectConteúdo da mensagem retornada pelo modelo, contendo role e content.
└─ finish_reasonStringMotivo de parada (ex: stop ou length).
usageObjectEstatísticas de uso de Tokens, incluindo tokens de prompt, conclusão (completion) e total.

3.2 Exemplo de Resposta

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Aqui está o conteúdo de texto reconhecido pelo OCR, que geralmente retorna as informações de layout da imagem em formato Markdown."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 512,
        "completion_tokens": 128,
        "total_tokens": 640
    }
}

4. FAQs (Perguntas Frequentes)

Q1: Quais formatos de imagem o DeepSeek-OCR suporta? R: Atualmente, os principais formatos de imagem como JPEG, PNG, WebP e BMP são suportados. Recomenda-se que a imagem seja nítida e tenha uma resolução adequada para garantir a precisão do reconhecimento.

Q2: Como fazer upload de uma imagem usando Base64? R: Basta substituir o valor de image_url.url pela string Base64. Exemplo de formato: "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...".

Q3: Por que o resultado do reconhecimento foi cortado? R: Verifique o campo finish_reason na resposta. Se for length, significa que o conteúdo gerado excedeu o limite do parâmetro max_tokens. Recomenda-se aumentar o valor de max_tokens.

Q4: Esta API suporta o reconhecimento de imagens em lote? R: Nas messages de uma única requisição, você pode tentar adicionar múltiplos objetos image_url. No entanto, recomenda-se fazer uma chamada separada para cada imagem para obter o melhor processamento de contexto e respostas mais estáveis.

Q5: Como obter um layout mais preciso (como tabelas ou fórmulas)? R: Você pode adicionar prompts (dicas) nas mensagens system ou user, por exemplo: "Por favor, use o formato Markdown para manter o layout da tabela da imagem e reconheça as fórmulas matemáticas nela contidas".

Q6: Suporta saída em fluxo (Streaming)? R: Sim. Ao definir o parâmetro stream como true na requisição, o modelo retornará os fragmentos de texto reconhecidos em tempo real. Isso é ideal para cenários interativos onde é necessário reduzir a latência de entrega do primeiro caractere (Time to First Token).