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âmetro | Obrigatório | Tipo | Exemplo | Descrição |
|---|---|---|---|---|
| Content-Type | Sim | String | application/json | Formato do corpo da requisição |
| Accept | Sim | String | application/json | Formato do corpo da resposta |
| Authorization | Sim | String | Bearer YOUR_API_KEY | Chave de API para autenticação (API Key) |
1.2 Corpo da Requisição (Request Body)
| Nome do Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| model | Sim | String | ID do modelo a ser utilizado. Para reconhecimento OCR, especifique deepseek-ocr. |
| messages | Sim | Array | Lista contendo as mensagens da conversa. Para OCR, é necessário incluir as informações da imagem na mensagem. |
| stream | Não | Boolean | O padrão é false. Se for true, o conteúdo da resposta será retornado em fluxo (streaming). |
| temperature | Não | Number | Temperatura de amostragem (0-2). Valores baixos são mais focados e estáveis; valores altos são mais aleatórios. |
| top_p | Não | Number | Limite de probabilidade de amostragem de núcleo (nucleus sampling). |
| max_tokens | Não | Integer | Número máximo de Tokens a serem gerados. |
| response_format | Não | Object | Especifica o formato de retorno, por exemplo, {"type": "json_object"} para ativar o modo JSON. |
| tools | Não | Array | Lista 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.urlsuporta 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
| Campo | Tipo | Descrição |
|---|---|---|
| id | String | Identificador único desta requisição. |
| object | String | Tipo do objeto, geralmente chat.completion. |
| created | Integer | Timestamp Unix (em segundos). |
| choices | Array | Contém as múltiplas opções geradas. |
| └─ message | Object | Conteúdo da mensagem retornada pelo modelo, contendo role e content. |
| └─ finish_reason | String | Motivo de parada (ex: stop ou length). |
| usage | Object | Estatí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).