Перейти к статье
ДокументацияПоддержка

Изображения и документы

Как отправить изображение, PDF, DOCX, XLSX или CSV вместе с сообщением.

Копировать и скачать
Все руководства (.md)

Выберите формат входа

Для изображений выберите модель с поддержкой изображений, для PDF — с поддержкой документов. Проверьте input_modalities в каталоге. DOCX, XLSX и CSV Elysium AI разбирает в текст до запроса к модели: для них подходит текстовая модель с достаточным контекстом.

ФайлЧто получает модель
ИзображениеИзображение для визуальных вопросов и OCR.
PDFPDF-документ, если выбранная модель и формат запроса его поддерживают.
DOCXОсновной текст документа и таблицы в исходном порядке.
XLSXНазвания листов, координаты ячеек и сохранённые значения.
CSVЗаписи CSV в UTF-8 с разделителем-запятой, преобразованные в текстовые строки.

Chat Completions

Передавайте изображение через часть image_url, а документ — через file. Стандартное поле имени файла — filename. В file_data передайте data URL с MIME-типом и base64. Вложение и вопрос находятся в одном сообщении.

json
1{2  "model": "your-model-id",3  "messages": [4    {5      "role": "user",6      "content": [7        {8          "type": "text",9          "text": "Read the text in this image."10        },11        {12          "type": "image_url",13          "image_url": {14            "url": "https://example.com/image.png"15          }16        }17      ]18    }19  ]20}

Отправка локального файла из Python

Задайте ELYSIUM_API_KEY и ELYSIUM_MODEL на своём сервере. Сохраните скрипт как send_document.py и запустите python send_document.py report.docx. Можно также передать PDF, XLSX или CSV: имя файла и MIME-тип подставляются автоматически.

python
1import base642import json3import mimetypes4import os5from pathlib import Path6import sys7import urllib.request8 9file = Path(sys.argv[1])10mime = mimetypes.guess_type(file.name)[0] or "application/octet-stream"11data = base64.b64encode(file.read_bytes()).decode("ascii")12body = {13    "model": os.environ["ELYSIUM_MODEL"],14    "messages": [{"role": "user", "content": [15        {"type": "text", "text": "Summarize this document."},16        {"type": "file", "file": {17            "filename": file.name,18            "file_data": f"data:{mime};base64,{data}"19        }}20    ]}]21}22request = urllib.request.Request(23    "https://elysiumai.garden/v1/chat/completions",24    data=json.dumps(body).encode(),25    headers={26        "Authorization": "Bearer " + os.environ["ELYSIUM_API_KEY"],27        "Content-Type": "application/json"28    }29)30with urllib.request.urlopen(request, timeout=180) as response:31    print(json.load(response)["choices"][0]["message"]["content"])

Messages, Responses и Gemini

Используйте формат частей содержимого своего endpoint. Для DOCX/XLSX/CSV формат определяется по MIME-типу или filename. PDF сохраняется при поддерживаемых преобразованиях; если вложение невозможно передать в выбранном формате, сервер вернёт HTTP 400, а не удалит его молча.

json
1{2  "type": "document",3  "title": "report.pdf",4  "source": {5    "type": "base64",6    "media_type": "application/pdf",7    "data": "BASE64_DATA"8  }9}

Ограничения и содержимое разбора

  • До 4 офисных документов в запросе, 10 МиБ на файл и 2 МиБ извлечённого текста суммарно. ZIP-архив документа после распаковки может занимать не более 32 МиБ и содержать не более 2048 записей.
  • Для офисных документов доступны base64 и публичный HTTPS URL в поддерживаемом endpoint поле. Закрытые file_id для такого разбора не разрешаются.
  • Передавайте офисный документ в сообщении пользователя. Офисные вложения внутри результатов инструментов возвращают HTTP 400; перенесите документ в сообщение пользователя перед повтором.
  • Из DOCX извлекаются основной текст и таблицы. Встроенные изображения, диаграммы, колонтитулы, комментарии и вёрстка страниц не извлекаются. Если важен внешний вид, передайте изображения отдельно или экспортируйте документ в PDF.
  • Из XLSX передаются сохранённые значения с координатами ячеек. Формулы не вычисляются; читается сохранённый результат, если он есть. Форматирование, стили отображения дат, диаграммы, макросы и обновление внешних данных не обрабатываются.
  • CSV должен быть в UTF-8 с разделителем-запятой; кавычки и переносы строк внутри записей поддерживаются. Для XLSX доступно до 100000 ячеек, для CSV — до 100000 строк.
  • Зашифрованный, повреждённый, пустой или слишком большой документ возвращает HTTP 400 до генерации. Извлечённый текст учитывается по обычному входному тарифу и занимает контекст выбранной модели. Лимиты PDF и изображений зависят от модели.

Термины на этой странице

Короткая расшифровка обозначений, которые встречаются в этом разделе.

ТерминЧто означает
Base URLБазовый адрес API, к которому клиент добавляет нужный маршрут.
API-ключСекрет для авторизации и списания запросов с вашего баланса.
Model IDТочное системное имя модели из каталога Elysium AI.
EndpointМаршрут конкретной операции после базового адреса API.
RequestОдин запрос клиента к API вместе с его заголовками и телом.
ResponseРезультат обработки запроса: статус, заголовки и данные.

Документация