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

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

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

Проверено и опубликовано на

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

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

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

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

Все три подключаются к одному движку: 130 000+ спектров, рассуждения на основе графа знаний и ссылки на литературу. Вам нужен только один. Выбирайте по своему стилю работы — не уверены? MCP — самый популярный выбор для тех, кто использует AI-ассистента.

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

Текущие дистрибутивы MCP, REST, n8n и LangChain предоставляют семь операций. Опубликованный плагин Coze предоставляет три инструмента (анализировать, найти, объяснить), а другие шаблоны могут предоставлять меньший объявленный набор; перед использованием проверьте карточку каждой платформы. Приведенные ниже операции используют одни и те же службы FTIR.fun.

Задача Инструмент MCP REST-эндпоинт Скажите это вашему ИИ
Прочитать файл прибора parse_ftir_spectrum POST /parse-spectrum Разобрать sample.spc и перечислить обнаруженные пики.
Идентифицировать неизвестный спектр 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.

Поддерживаемые файлы: SPA, SPC, OPUS, JCAMP-DX, CSV, TSV, Excel, JSON. Допустимые значения sampling_mode: KBr Pellet, Vapor, Solvent, Thin Film, Paraffin Mull, ATR, Diffuse Reflectance, Micro IR и Others. Transmission не является допустимым значением. Сохраняйте исходное расширение файла, чтобы FTIR.fun выбрал правильный парсер.

пример ответа 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": "direct_read:spa",
     "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"}
  2. Опрос Вызывайте get_ftir_report_status (MCP) или GET /ftir/reports/{task_id} каждые 5–10 секунд, пока completed не станет true. Ответ при завершении включает report_url, 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 и продолжайте опрос. Не создавайте дублирующие задачи отчетов.
422 или missing_input Тело запроса не содержит обязательных полей или имеет неверный формат. Для analyze_spectrum необходимо указать хотя бы одно из: peaks, query или file_base64. Убедитесь, что ваш JSON корректен, Content-Type равен application/json, и присутствуют обязательные поля. Смотрите примеры запросов выше.
413 file_too_large Загруженный файл спектра превышает ограничение по размеру. Экспортируйте файл меньшего размера или используйте только позиции пиков через поле spectrum.peaks.

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

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

Отправить запрос Форма