Configuration de l'API personnalisée LangChain

Connectez LangChain ChatOpenAI à TokenHub et vérifiez un appel de modèle minimal avant de créer des chaînes ou des agents.

Qu’est-ce que LangChain ?

LangChain est un cadre d'application permettant de créer des expériences de chat, de récupération, de flux de travail et d'agent basées sur LLM.

Ce guide LangChain configure l'intégration langchain-openai maintenue avec une base API compatible TokenHub. Testez d’abord le chemin d’appel de base, puis validez le streaming, la sortie structurée ou les outils pour les fonctionnalités dont votre application a besoin. Un appel ChatOpenAI minimal vérifie la connectivité de base mais ne valide pas toutes les fonctionnalités utilisées par une application de production. Testez le streaming, la sortie structurée, la liaison d'outils, les tentatives et les délais d'attente indépendamment, puis ajoutez la récupération, les chaînes ou les agents uniquement après que le modèle TokenHub sélectionné ait satisfait aux fonctionnalités requises par votre flux de travail.

L'intégration Python officielle de LangChain pour OpenAI se trouve dans le package langchain-openai distinct. Connectez TokenHub en transmettant un base_url personnalisé à ChatOpenAI. Il s'agit d'une intégration de code ; il n'y a pas d'écran de paramètres d'application.

Étape 1 : installer le package d'intégration officiel

pip install -U langchain-openai

Pour un projet géré par uv, utilisez uv add langchain-openai. L'installation du package de base langchain à elle seule ne fournit pas ChatOpenAI.

Étape 2 : instancier explicitement ChatOpenAI pour TokenHub

export TOKENHUB_API_KEY="sk-..."
import os
from langchain_openai import ChatOpenAI

model = ChatOpenAI(
    base_url="__API_BASE_URL__/v1",
    api_key=os.environ["TOKENHUB_API_KEY"],
    model="YOUR_TOKENHUB_MODEL_ID",
    timeout=60,
    max_retries=2,
)

response = model.invoke("Reply with one sentence to confirm the connection.")
print(response.content)

La résolution de base URL favorise le base_url / openai_api_base du constructeur, puis le OPENAI_API_BASE, suivi du OPENAI_BASE_URL du SDK sous-jacent. Le transmettre empêche explicitement un ancien OpenAI URL dans l'environnement du projet de remplacer TokenHub.

Étape 3 : vérifier une fonctionnalité à la fois

  1. Exécutez l’appel minimum invoke pour confirmer d’abord la fin normale du chat.
  2. Ajoutez stream uniquement lorsque l'appel de base fonctionne. Lorsque OPENAI_BASE_URL pointe vers un point de terminaison tiers, LangChain n'active pas automatiquement stream_usage ; définissez stream_usage=True uniquement si le modèle TokenHub et le point de terminaison prennent en charge l'utilisation du streaming.
  3. Pour un agent, liez un outil minimal à bind_tools et inspectez tool_calls sur l'objet renvoyé. Ne traitez pas le texte qui décrit simplement un appel comme un appel d'outil.
  4. Testez la sortie structurée, les images et le raisonnement uniquement une fois que ces couches ont fonctionné.

ChatOpenAI cible explicitement les champs de la spécification OpenAI API. Les extensions spécifiques au fournisseur telles que reasoning_content, reasoning ou reasoning_details ne peuvent pas être extraites ou conservées. Une réponse textuelle réussie ne prouve pas que ces extensions fonctionnent.

Dépannage au niveau de la couche LangChain qui a échoué

  • Échec de l’importation : confirmez que langchain-openai est installé.
  • 404 : inspectez le base_url effectif, y compris le /v1, et vérifiez les remplacements de variables d'environnement.
  • Erreur de modèle : utilisez l'ID de modèle TokenHub complet dans model.
  • Le texte en streaming fonctionne mais l'utilisation est absente : inspectez stream_usage et vérifiez si le point de terminaison prend en charge stream_options.include_usage.
  • L'outil Agent échoue : isolez-le avec bind_tools ; un invoke de base réussi n’est pas un test d’outil.
  • Le champ de raisonnement non standard est absent : utilisez l'intégration LangChain spécifique au fournisseur ou traitez directement la réponse brute.

Référence officielle

Choisir un modèle

Charge de travailChoix du modèlePourquoi
Tâches complexesModèle de raisonnement avec outilsAdapté à la planification, aux étapes multiples et aux longs contextes.
Usage quotidienModèle équilibréÉquilibre qualité, vitesse et coût.
Résumés et tâches légèresModèle rapide et économiqueRéduit le coût des résumés et itérations simples.
Voir les modèles TokenHub

FAQ LangChain ChatOpenAI

Comment puis-je pointer ChatOpenAI vers TokenHub ?

Définissez base_url sur la racine de l'API TokenHub se terminant par /v1, transmettez la clé TokenHub en tant que api_key et définissez le modèle sur l'ID TokenHub exact.

Puis-je utiliser OPENAI_API_BASE au lieu de base_url ?

LangChain peut lire les variables d'environnement d'URL de base OpenAI documentées, mais une base_url explicite est la plus claire pour une intégration unique.

Un appel d’invocation réussi prouve-t-il qu’un agent fonctionnera ?

Non, cela prouve la connectivité de base du chat. Validez l’appel d’outil, le streaming et la sortie structurée avant d’utiliser ces fonctionnalités.

Ai-je besoin du package langchain-openai ?

Oui. ChatOpenAI est maintenu dans le package d'intégration langchain-openai ; installez une version compatible avec le reste de votre projet LangChain.

Comment dépanner un LangChain 404 ?

Assurez-vous que base_url se termine par /v1, supprimez les chemins de requêtes en double et vérifiez l'ID de modèle exact avant de vérifier les journaux de requêtes TokenHub.

Références

Cette configuration s’appuie sur TokenHub et la documentation officielle ; dernière vérification : 2026-09-08。