Документация API DeepSeek-OCR для распознавания текста на изображениях
Данный интерфейс предоставляет функцию распознавания текста на изображениях (OCR) на базе модели DeepSeek-OCR. Этот API использует формат автодополнения чата (Chat Completions), совместимый с OpenAI, и поддерживает загрузку изображений через URL или в кодировке Base64 для их преобразования в текст или формат Markdown.
- Домен сервиса:
https://api.codingplanx.ai - Путь (Endpoint):
/v1/chat/completions - Метод запроса:
POST - Статус: Опубликован (Released)
1. Параметры запроса
1.1 Заголовки запроса (Headers)
| Название | Обязательно | Тип | Пример | Описание |
|---|---|---|---|---|
| Content-Type | Да | String | application/json | Формат тела запроса |
| Accept | Да | String | application/json | Формат тела ответа |
| Authorization | Да | String | Bearer YOUR_API_KEY | API-ключ для аутентификации |
1.2 Тело запроса (Request Body)
| Название | Обязательно | Тип | Описание |
|---|---|---|---|
| model | Да | String | ID используемой модели. Для OCR укажите deepseek-ocr |
| messages | Да | Array | Список сообщений диалога. Для OCR в сообщение необходимо включить информацию об изображении. |
| stream | Нет | Boolean | По умолчанию false. Если true, ответ будет возвращаться в виде потока (stream). |
| temperature | Нет | Number | Температура выборки (0-2). Низкие значения делают генерацию более точной и стабильной, высокие — более случайной. |
| top_p | Нет | Number | Порог вероятности при ядерном сэмплинге (nucleus sampling). |
| max_tokens | Нет | Integer | Максимальное количество генерируемых токенов. |
| response_format | Нет | Object | Задает формат ответа, например, {"type": "json_object"} включает режим JSON. |
| tools | Нет | Array | Список инструментов, доступных для вызова моделью (в настоящее время в основном поддерживается вызов функций). |
2. Пример запроса
2.1 Запрос на распознавание 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"
}
}
]
}
]
}
Примечание: Поле
image_url.urlподдерживает как передачу публичного URL изображения, так и строки данных в кодировке Base64 (в формате:data:image/jpeg;base64,...).
3. Описание ответа
3.1 Структура тела ответа
| Поле | Тип | Описание |
|---|---|---|
| id | String | Уникальный идентификатор запроса. |
| object | String | Тип объекта, обычно chat.completion. |
| created | Integer | Метка времени Unix (в секундах). |
| choices | Array | Массив, содержащий сгенерированные варианты ответа. |
| └─ message | Object | Содержимое ответа модели, включая role и content. |
| └─ finish_reason | String | Причина остановки генерации (например, stop или length). |
| usage | Object | Статистика использования токенов (запрос, генерация и всего). |
3.2 Пример ответа
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Здесь находится распознанный OCR текст. Обычно информация о форматировании изображения возвращается в формате Markdown."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 512,
"completion_tokens": 128,
"total_tokens": 640
}
}
4. ЧАВО (Часто задаваемые вопросы - FAQ)
В1: Какие форматы изображений поддерживает DeepSeek-OCR?
О: В настоящее время поддерживаются основные форматы, такие как JPEG, PNG, WebP и BMP. Для обеспечения высокой точности распознавания рекомендуется использовать четкие изображения с подходящим разрешением.
В2: Как загрузить изображение с использованием Base64?
О: Просто замените значение image_url.url на строку Base64. Пример формата: "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...".
В3: Почему результаты распознавания обрезаются?
О: Проверьте поле finish_reason в ответе. Если его значение length, это означает, что сгенерированный контент превысил лимит max_tokens. Рекомендуется увеличить значение параметра max_tokens.
В4: Поддерживает ли этот API пакетное распознавание изображений?
О: В рамках одного запроса в массиве messages вы можете попытаться добавить несколько объектов image_url. Однако для получения наилучшей обработки контекста и более стабильных ответов рекомендуется отправлять отдельный запрос для каждого изображения.
В5: Как получить более точное форматирование (например, таблиц или формул)?
О: Вы можете добавить дополнительные инструкции (промпты) в сообщения system или user. Например: "Пожалуйста, используйте формат Markdown для сохранения макета таблицы с изображения и распознайте математические формулы внутри неё".
В6: Поддерживается ли потоковый вывод (Streaming)?
О: Да, поддерживается. Установите параметр stream равным true в вашем запросе, и модель будет возвращать распознанные фрагменты текста в реальном времени. Это отлично подходит для сценариев интерактивного взаимодействия, где необходимо снизить задержку до появления первого символа.