Интеграция для разработчиков и ИИ

Подключите FTIR.fun к любому AI-инструменту или приложению

Предоставьте своему ИИ-ассистенту или собственному коду прямой доступ к 320,000+ эталонным спектрам, рассуждениям о пиках на основе графа знаний и интерпретациям, подтверждённым научной литературой. Выберите один из трёх способов подключения — MCP для ИИ-ассистентов, REST API для кода или готовый Skill для платформ без программирования. Ниже для каждого варианта приведены пошаговые инструкции для начинающих пользователей.

Указано на

Перед началом — получите ваш API-ключ

MCP и REST API используют один API-ключ FTIR.fun. Coze/Doubao использует сервисный ключ, настроенный издателем плагина, поэтому конечные пользователи работают через плагин, не вводя личный ключ. Получение личного ключа занимает около минуты:

  1. Войти в FTIR.fun Создайте бесплатную учётную запись (новые учётные записи получают бесплатные пробные кредиты).
  2. Открыть панель API-ключей Перейти к Аккаунт → Ключи API и нажмите «Создать».
  3. Просмотреть или скопировать ваш API-ключ Полный ключ (он начинается с ftir_) остается доступным в панели управления API-ключами. Вы можете вернуться туда, чтобы просмотреть, скопировать или отозвать его.
🔑 Готовы? Откройте панель управления ключами API в новой вкладке, затем вернитесь и следуйте выбранному выше пути.

Шаг 1 — Какое подключение подходит вам?

Все три варианта подключаются к одному и тому же движку: 320,000+ спектров, рассуждения на основе графа знаний и цитирование литературы. Вам нужен только один вариант. Выберите путь, соответствующий вашему рабочему процессу; MCP — удобный вариант для пользователей ИИ-ассистентов.

Что ваш ИИ на самом деле может делать

Унифицированные сервисы MCP и REST предоставляют один и тот же каталог операций FTIR.fun. API-ключи могут иметь более ограниченный набор возможностей, тогда как объявления, специфичные для платформы, могут намеренно публиковать только подмножество. Перечисленные ниже операции используют одни и те же сервисы FTIR.fun.

Задача Инструмент MCP REST-эндпоинт Скажите это вашему ИИ
Прочитать файл прибора parse_ftir_spectrum POST /parse-spectrum Разобрать sample.spc и перечислить обнаруженные пики.
Конвертировать нативные данные и сохранить метаданные convert_native_spectrum POST /native-spectrum/convert Преобразовать sample.spa в JDX и сохранить исходные метаданные.
Идентифицировать неизвестный спектр analyze_ftir_spectrum POST /ftir/analyze_spectrum Определите, какой полимер представляет этот спектр.
Отправить полный трехосевой отчет submit_ftir_report POST /ftir/reports Отправьте sample.spa для полного отчета в режиме ATR.
Опрашивайте и получайте этот отчет get_ftir_report_status GET /ftir/reports/{task_id} Проверьте задачу отчета и дайте мне ссылку, когда она будет готова.
Объяснить пики explain_peaks POST /ftir/explain_peak_assignments О чем свидетельствуют пики на 1715 и 1450 см-1?
Найти известный эталонный спектр find_spectra POST /ftir/find_spectra Найдите эталонные спектры для полистирола.
Откройте более ранний результат заново fetch_result GET /ftir/result/{result_num} Получить результат 20260528100755416137536.
🎓 Академическое отнесение пиков — Для образцов с известным составом расширенная возможность FTIR.fun REST/MCP назначает каждому измеренному пику подтверждение на основе данных литературы с отслеживаемыми источниками. Каждая отправка стоит 30 баллов или является бесплатной при активной подписке; запросы статуса не тарифицируются. Опишите задачу естественным образом (например: «Назначьте все измеренные пики FTIR для этого спектра; образец известен как ПММА; отправьте отчёт мне по электронной почте») — клиент предоставляет файл, и вам никогда не нужно самостоятельно собирать JSON или Base64. Готовые результаты возвращают как статус JSON, так и защищённые адреса отчётов; отчёты не доступны через публичный путь загрузки.

Поддерживаемые расширения имён файлов спектров (36): .spa, .spc, .sp, .abs, .irf, .irs, .dt, .jws, .jdx, .dx, .asc, .dpt, .opju, .opus, .ispd, .[0-9]+, .xlsx, .xls, .ods, .csv, .dat, .txt, .tsv, .json, .tab, .a2r, .asp, .spe, .map, .bsp, .spg, .srs, .smf, .ird, .fsm, .mat. Сохраняйте исходное расширение файла. Неподдерживаемые или нечитаемые файлы возвращают supported_extensions и supported_formats. Допустимые значения sampling_mode: KBr Pellet, Vapor, Solvent, Thin Film, Paraffin Mull, ATR, Diffuse Reflectance, Micro IR и Others. Transmission не является допустимым значением.

пример ответа find_spectra

ответ find_spectra
{
  "success": true,
  "query": "polystyrene",
  "match_mode": "synonym",
  "match_count": 3,
  "summary": "Found 3 reference spectrum candidates for 'polystyrene'.",
  "results": [
    {"num": 555, "spectrum_number": 555, "name": "PS/PPO",
     "cas": "-", "source_type": "instrument_import",
     "peaks": [697, 756, 1028, ...], "x": [...], "y": [...]}
  ]
}

пример ответа explain_peaks

ответ explain_peaks
{
  "success": true,
  "search_mode": "peak_explanation",
  "peak_explanations": [
    {"peaks_cm1": [1715, 1450],
     "assignment": "1715 cm-1 suggests C=O stretching (ester or carboxylic acid)...",
     "evidence_type": "llm_general_knowledge"}
  ],
  "summary": "Peak explanation based on general FTIR knowledge..."
}

Получение полного отчета (асинхронно)

Быстрый скрининг (analyze_spectrum) возвращает результат немедленно. Полный трёхосевой отчёт формируется в фоновом режиме и обычно занимает 30–90 секунд. Сохраните task_id и опрашивайте его, а не отправляйте запрос повторно.

  1. Отправить Вызовите submit_ftir_report (MCP) или POST /ftir/reports (REST). Вы получите task_id и зарезервированный result_num. Поле file_base64 обязательно; другие поля (sampling_mode, prior_context, language_code, sample_name, sample_order_no) необязательны.
    Пример отправки (REST)
    curl -X POST https://ftir.fun/ftir/reports \
      -H "X-API-Key: ftir_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{"file_base64": "V2F2ZW51bWJlci...", "filename": "sample.spa", "sampling_mode": "ATR", "language_code": "en"}'
    Отправить ответ
    {"success": true, "task_id": "rpt_abc123...", "result_num": "20260713...",
     "status": "queued", "status_url": "https://ftir.fun/ftir/reports/rpt_abc123..."}
  2. Опрос Вызывайте get_ftir_report_status (MCP) или GET /ftir/reports/{task_id} каждые 5–10 секунд, пока completed не станет true. Ответ по завершении включает report_url, объект report (структурированное содержимое результата с подробным report_view внутри) и result_num.
    Пример опроса
    curl https://ftir.fun/ftir/reports/rpt_abc123 \
      -H "X-API-Key: ftir_your_key_here"
    Ответ опроса (выполняется)
    {"success": true, "task_id": "rpt_abc123", "status": "running", "progress": 45, "completed": false}
    Ответ опроса (завершено)
    {"success": true, "task_id": "rpt_abc123", "status": "completed", "completed": true,
     "result_num": "20260713...", "report_url": "https://ftir.fun/outputdata/?num=20260713..."}
  3. Открыть итоговый отчет Откройте полный URL https://ftir.fun/outputdata/?num={result_num} в браузере, чтобы просмотреть полную страницу результатов трехосного анализа, созданную FTIR.fun.
⚠️ Сохраните task_id и выполняйте опрос до завершения или сбоя. Повторные отправки, пока задача находится в очереди или выполняется, приводят к излишнему расходу баллов.

Устранение неполадок

Что вы видите Что это значит Что делать
Клиент открывает страницу авторизации в браузере или сообщает, что страница авторизации не существует. Ваш клиент использует старую запись сервера в стиле OAuth. FTIR.fun не использует OAuth — только API-ключ. Удалите старую запись сервера ftirfun, вставьте точную конфигурацию с этой страницы, перезагрузите клиент и снова запустите ftirfun.
401 (MCP) / 401 invalid_api_key (REST) API-ключ отсутствует, истек, отозван или вставлен неправильно. Перезапустите сервер и вставьте только сырой ключ (начинается с ftir_). Создайте новый ключ из Панель управления ключами API если необходимо.
Сервер запускается, но инструменты не появляются. Клиент не обновил свой каталог, или в конфигурации используется неверное имя ключа. Для VS Code убедитесь, что mcp.json использует servers (не mcpServers). Затем остановите и запустите ftirfun или перезагрузите окно.
403 insufficient_balance У аккаунта недостаточно баллов для этого анализа. Проверьте баланс или подписку в FTIR.fun, затем повторите попытку.
429 rate_limit_exceeded Анализ и синтаксический разбор REST разрешают 60 запросов в минуту на один ключ API; чтение результатов REST и статусов отчетов использует отдельный блок на 120 запросов в минуту; MCP разрешает 60 вызовов в минуту для каждого ключа API и инструмента. Дождитесь периода повторной попытки, указанного инструментом, прежде чем вызывать снова.
Отчет остается в очереди или выполняется. Полные отчеты выполняются асинхронно и занимают больше времени, чем быстрый поиск. Используйте тот же task_id и выполняйте опрос. Если вы потеряли task_id, вызовите GET /ftir/tasks, чтобы получить список последних задач и найти его снова.
422 или missing_input Тело запроса не содержит обязательных полей или имеет неверный формат. Для analyze_spectrum необходимо указать хотя бы одно из: peaks, query или file_base64. Убедитесь, что ваш JSON корректен, Content-Type равен application/json, и присутствуют обязательные поля. Смотрите примеры запросов выше.
413 file_too_large Загруженный файл спектра превышает ограничение по размеру. Экспортируйте файл меньшего размера или используйте только позиции пиков через поле spectrum.peaks.

Готовы приступить к разработке?

Полная справка по REST содержит все конечные точки, форматы запросов и ответов, аутентификацию, ограничения скорости, коды ошибок, определения инструментов MCP и примеры кода на Python и curl.

Отправить заявку Форма