Intégration Développeur & IA

Connectez FTIR.fun à n'importe quel outil ou application IA

Donnez à votre assistant IA ou à votre propre code un accès direct à 320,000+ spectres de référence, au raisonnement sur les pics fondé sur un graphe de connaissances et à une interprétation étayée par la littérature. Choisissez l’une des trois méthodes de connexion — MCP pour les assistants IA, l’API REST pour le code ou un Skill prêt à l’emploi pour les plateformes sans code. Chaque méthode ci-dessous est accompagnée d’instructions étape par étape conçues pour les utilisateurs débutants.

Répertorié sur

Avant de commencer — obtenez votre clé API

MCP et l’API REST utilisent tous deux une clé API FTIR.fun. Coze/Doubao utilise une clé de service configurée par l’éditeur du plugin ; les utilisateurs finaux utilisent donc le plugin sans saisir de clé personnelle. L’obtention d’une clé personnelle prend environ une minute :

  1. Connectez-vous à FTIR.fun Créez un compte gratuit (les nouveaux comptes incluent des crédits d’essai gratuits).
  2. Ouvrir le tableau de bord des clés API Aller à Compte → Clés API et cliquez sur Générer.
  3. Afficher ou copier votre clé API La clé complète (elle commence par ftir_) reste disponible dans le tableau de bord des clés API. Vous pouvez y retourner pour la voir, la copier ou la révoquer.
🔑 Prêt ? Ouvrir le tableau de bord des clés API dans un nouvel onglet, puis revenez et suivez le chemin que vous avez choisi ci-dessus.

Étape 1 — Quelle connexion vous convient ?

Les trois se connectent au même moteur : 320,000+ spectres, raisonnement fondé sur le graphe de connaissances et citations bibliographiques. Vous n’en avez besoin que d’un seul. Choisissez le chemin correspondant à votre façon de travailler ; MCP est une option pratique pour les utilisateurs d’assistants IA.

Ce que votre IA peut réellement faire

Les services MCP et REST unifiés exposent le même catalogue d’opérations FTIR.fun. Les clés API peuvent recevoir un périmètre de capacités plus restreint, tandis que les déclarations spécifiques à la plateforme peuvent intentionnellement ne publier qu’un sous-ensemble. Les opérations ci-dessous partagent les mêmes services FTIR.fun.

Tâche Outil MCP Point de terminaison REST Dites ceci à votre IA
Lire un fichier d'instrument parse_ftir_spectrum POST /parse-spectrum Analysez sample.spc et listez les pics détectés.
Convertir les données natives et conserver les métadonnées convert_native_spectrum POST /native-spectrum/convert Convertir sample.spa en JDX et conserver les métadonnées sources.
Identifier un spectre inconnu analyze_ftir_spectrum POST /ftir/analyze_spectrum Identifiez de quel polymère est ce spectre.
Soumettre un rapport tri-axial complet submit_ftir_report POST /ftir/reports Soumettez sample.spa pour un rapport complet en mode ATR.
Interrogez et récupérez ce rapport get_ftir_report_status GET /ftir/reports/{task_id} Vérifiez la tâche de rapport et donnez-moi le lien une fois terminé.
Expliquer les pics explain_peaks POST /ftir/explain_peak_assignments Que indiquent les pics à 1715 et 1450 cm-1 ?
Trouver un spectre de référence connu find_spectra POST /ftir/find_spectra Trouvez des spectres de référence pour le polystyrène.
Rouvrez un résultat antérieur fetch_result GET /ftir/result/{result_num} Récupérer le résultat 20260528100755416137536.
🎓 Attribution de pics académique — Pour les échantillons dont la composition est connue, la fonctionnalité avancée REST/MCP de FTIR.fun attribue chaque pic mesuré avec des preuves référencées dans la littérature. Chaque soumission coûte 30 points, ou est gratuite avec un abonnement actif ; les requêtes de statut ne sont pas facturées. Décrivez la tâche naturellement (par exemple : « Attribuez tous les pics FTIR mesurés pour ce spectre ; l'échantillon est connu comme étant du PMMA ; envoyez-moi le rapport par e-mail ») — le client fournit le fichier et vous n'avez jamais besoin de construire vous-même du JSON ou du Base64. Les résultats terminés renvoient à la fois le statut JSON et les adresses de rapport protégées ; les rapports ne sont pas exposés sur un chemin de téléchargement public.

Extensions de nom de fichier de spectre prises en charge (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. Conservez l'extension de nom de fichier d'origine. Les fichiers non pris en charge ou illisibles renvoient supported_extensions et supported_formats. Les valeurs valides de sampling_mode sont Pastille de KBr, Vapeur, Solvant, Film mince, Suspension dans la paraffine, ATR, Réflectance diffuse, Micro-IR et Autres. Transmission n'est pas une valeur valide.

exemple de réponse find_spectra

réponse 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": [...]}
  ]
}

exemple de réponse explain_peaks

réponse 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..."
}

Obtenir le rapport complet (asynchrone)

L’analyse rapide (analyze_spectrum) renvoie immédiatement le résultat. Le rapport complet à trois axes s’exécute en arrière-plan et prend généralement 30 à 90 secondes. Conservez le task_id et interrogez-le au lieu de soumettre à nouveau la demande.

  1. Soumettre Appelez submit_ftir_report (MCP) ou POST /ftir/reports (REST). Vous recevez un task_id et un result_num réservé. Le champ file_base64 est obligatoire ; les autres champs (sampling_mode, prior_context, language_code, sample_name, sample_order_no) sont facultatifs.
    Exemple de soumission (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"}'
    Soumettre la réponse
    {"success": true, "task_id": "rpt_abc123...", "result_num": "20260713...",
     "status": "queued", "status_url": "https://ftir.fun/ftir/reports/rpt_abc123..."}
  2. Sondage Appelez get_ftir_report_status (MCP) ou GET /ftir/reports/{task_id} toutes les 5 à 10 secondes jusqu'à ce que completed soit true. La réponse complète inclut report_url, un objet report (contenu de résultat structuré, avec le report_view détaillé à l'intérieur), et result_num.
    Exemple d'interrogation
    curl https://ftir.fun/ftir/reports/rpt_abc123 \
      -H "X-API-Key: ftir_your_key_here"
    Réponse d'interrogation (en cours)
    {"success": true, "task_id": "rpt_abc123", "status": "running", "progress": 45, "completed": false}
    Réponse de sondage (terminée)
    {"success": true, "task_id": "rpt_abc123", "status": "completed", "completed": true,
     "result_num": "20260713...", "report_url": "https://ftir.fun/outputdata/?num=20260713..."}
  3. Ouvrir le rapport final Ouvrez l'URL complète https://ftir.fun/outputdata/?num={result_num} dans un navigateur pour voir la page complète des résultats tri-axes rendue par FTIR.fun.
⚠️ Conservez le task_id et effectuez des sondages jusqu’à ce que la tâche soit terminée ou échoue. Les soumissions en double pendant la mise en file d’attente ou l’exécution gaspillent des points.

Dépannage

Ce que vous voyez Ce que cela signifie Ce qu'il faut faire
Le client ouvre une page d'autorisation dans le navigateur, ou indique que la page d'autorisation n'existe pas. Votre client utilise une ancienne entrée de serveur de type OAuth. FTIR.fun n'utilise pas OAuth — seulement une clé API. Supprimer l'ancienne entrée de serveur ftirfun, coller la configuration exacte de cette page, recharger le client, et relancer ftirfun.
401 (MCP) / 401 invalid_api_key (REST) La clé API est manquante, expirée, révoquée ou collée incorrectement. Redémarrez le serveur et collez uniquement la clé brute (commence par ftir_). Générer une nouvelle clé à partir du Tableau de bord des clés API si nécessaire.
Le serveur démarre mais aucun outil n'apparaît. Le client n'a pas actualisé son catalogue, ou la configuration utilise un nom de clé incorrect. Pour VS Code, confirmez que mcp.json utilise servers (et non mcpServers). Puis arrêtez et redémarrez ftirfun, ou rechargez la fenêtre.
403 insufficient_balance Le compte n'a pas assez de points pour cette analyse. Vérifiez votre solde ou abonnement dans FTIR.fun, puis réessayez.
429 rate_limit_exceeded L'analyse et l'analyse REST autorisent 60 requêtes par minute par clé API ; les lectures de résultat REST et de statut de rapport utilisent un compartiment distinct de 120 requêtes par minute ; MCP autorise 60 appels par minute pour chaque clé API et outil. Attendez la période de nouvelle tentative signalée par l'outil avant d'appeler à nouveau.
Un rapport reste en file d'attente ou en cours d'exécution. Les rapports complets s'exécutent de manière asynchrone et prennent plus de temps qu'un criblage rapide. Conservez le même task_id et interrogez-le. Si vous avez perdu le task_id, appelez GET /ftir/tasks pour lister vos tâches récentes et le retrouver.
422 ou missing_input Le corps de la requête ne contient pas les champs obligatoires ou a un format invalide. Pour analyze_spectrum, vous devez fournir au moins un des éléments suivants : peaks, query ou file_base64. Vérifiez que votre JSON est valide, que Content-Type est application/json et que les champs obligatoires sont présents. Voir les exemples de requêtes ci-dessus.
413 file_too_large Le fichier de spectre téléchargé dépasse la limite de taille. Exportez un fichier plus petit ou utilisez uniquement les positions des pics via le champ spectrum.peaks.

Prêt à construire ?

La référence REST complète contient tous les points de terminaison, les formats de requête et de réponse, l'authentification, les limites de débit, les codes d'erreur, les définitions d'outils MCP et des exemples de code en Python et curl.

Soumettre une demande Formulaire