LangChain Integration — ML Junction docs

langchain-mljunction is an independent native integration maintained by ML Junction. It subclasses LangChain BaseChatModel and Embeddings directly and calls /v1/responses and /v1/embeddings; it does not wrap ChatOpenAI.

pip install langchain-mljunction
export MLJUNCTION_API_KEY="..."
export MLJUNCTION_BASE_URL="https://api.mljunction.com"
from langchain_mljunction import ChatMLJunction
llm = ChatMLJunction(
    model="gpt-5.5",
    temperature=0.2,
    reasoning={"enabled": True, "effort": "medium"},
    requirements={"reasoning": "preferred", "tools": "preferred"},
    routing={
        "strategy": "balanced",
        "service_tier": "auto",
        "require_zdr": True,
        "max_platform_charge_usd": 0.05,
        "fallbacks": {"provider": True, "model": True, "max_total_attempts": 3},
    },
    context={"mode": "auto_fit", "preserve_tool_chains": True},
    session_name="support-session",
    task_name="triage",
    app_name="support-agent",
)
response = llm.invoke("Triage this incident")
print(response.content)
print(response.response_metadata["routing"])
print(response.response_metadata["receipt"])
Constructor control · Native request field
temperature, top_p, seed, frequency_penalty, presence_penalty · sampling.*
max_tokens and output · output.max_tokens and output format/validation
reasoning · reasoning enabled/effort/intensity/summary
requirements · Required/preferred tools, schema, modalities, reasoning, context
routing · All strategy, provider, tier, privacy, BYOK, cap, fallback, sticky controls
context · Fitting mode, budget/reserve, preservation controls
session/task/app fields · Durable observability identity
metadata, idempotency_key, compatibility · Native metadata and execution controls

Use bind_tools for LangChain tools, with_structured_output for Pydantic or JSON Schema results, stream/astream for SSE, and MLJunctionEmbeddings for governed embeddings. Structured-output streams intentionally return one complete chunk so parsers never receive partial JSON; ordinary text and bound-tool streams remain incremental. include_raw=True returns LangChain's standard raw/parsed/parsing_error dictionary. Standard usage lives in usage_metadata; request ID, route, receipt, warnings, identity, and reasoning state live in response_metadata.

Because this is native, ML Junction features are not compressed into OpenAI fields. The trade-off is that applications intentionally coupled to langchain-mljunction cannot swap to ChatOpenAI without removing ML Junction-specific governance controls.

Canonical URL: https://mljunction.com/docs/langchain-integration