Выберите формат входа
Для изображений выберите модель с поддержкой изображений, для PDF — с поддержкой документов. Проверьте input_modalities в каталоге. DOCX, XLSX и CSV Elysium AI разбирает в текст до запроса к модели: для них подходит текстовая модель с достаточным контекстом.
| Файл | Что получает модель |
|---|---|
| Изображение | Изображение для визуальных вопросов и OCR. |
| PDF-документ, если выбранная модель и формат запроса его поддерживают. | |
| DOCX | Основной текст документа и таблицы в исходном порядке. |
| XLSX | Названия листов, координаты ячеек и сохранённые значения. |
| CSV | Записи CSV в UTF-8 с разделителем-запятой, преобразованные в текстовые строки. |
Chat Completions
Передавайте изображение через часть image_url, а документ — через file. Стандартное поле имени файла — filename. В file_data передайте data URL с MIME-типом и base64. Вложение и вопрос находятся в одном сообщении.
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-тип подставляются автоматически.
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, а не удалит его молча.
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 | Результат обработки запроса: статус, заголовки и данные. |
