SDK-guider
LangChain
Använd api14-modeller i LangChain för Python och JavaScript genom att byta base URL och nyckel, med exempel för streaming, verktyg och embeddings.
LangChains OpenAI-integration fungerar med api14 utan ändringar: ange base URL och nyckel och använd vilket modell-id som helst (till exempel openai/gpt-5-mini). Exemplen visas för Python (langchain-openai) och JavaScript (@langchain/openai).
Installera
pip install langchain-openai
# or
npm install @langchain/openai @langchain/core
export API14_API_KEY="sk-api14-..."
Konfigurera (Python)
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="anthropic/claude-sonnet-4.5",
base_url="https://api14.com/api/v1",
api_key=os.environ["API14_API_KEY"],
)
print(llm.invoke("Explain vector databases in two sentences.").content)
Konfigurera (JavaScript)
import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "openai/gpt-5-mini",
apiKey: process.env.API14_API_KEY,
configuration: { baseURL: "https://api14.com/api/v1" },
});
const res = await llm.invoke("Explain vector databases in two sentences.");
console.log(res.content);
Streaming
for chunk in llm.stream("Write a haiku about APIs."):
print(chunk.content, end="", flush=True)
for await (const chunk of await llm.stream("Write a haiku about APIs.")) {
process.stdout.write(String(chunk.content));
}
Verktyg och strukturerad utdata
from pydantic import BaseModel
from langchain_core.tools import tool
@tool
def get_weather(city: str) -> str:
"""Get the current weather for a city."""
return f"21°C in {city}"
msg = llm.bind_tools([get_weather]).invoke("What is the weather in Istanbul?")
print(msg.tool_calls)
class Place(BaseModel):
city: str
country: str
place = llm.with_structured_output(Place).invoke('I live in Lisbon, Portugal.')
print(place)
Embeddings
De flesta embedding-modeller i api14 är inte OpenAI-modeller, så stäng av tiktoken-kontrollen av längd på klientsidan:
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(
model="openai/text-embedding-3-small",
base_url="https://api14.com/api/v1",
api_key=os.environ["API14_API_KEY"],
check_embedding_ctx_length=False,
)
vectors = embeddings.embed_documents(["The quick brown fox", "Lorem ipsum"])
Gateway-parametrar
Skicka gatewayspecifika fält via extra_body (Python) eller modelKwargs (JS):
llm = ChatOpenAI(
model="openai/gpt-5-mini",
base_url="https://api14.com/api/v1",
api_key=os.environ["API14_API_KEY"],
extra_body={"models": ["anthropic/claude-sonnet-4.5"], "provider": {"sort": "price"}},
)
Fel
LangChain visar OpenAI SDK:s undantag. Ett 402 insufficient_balance ger openai.APIStatusError, och 429 rate_limited ger openai.RateLimitError efter de inbyggda återförsöken (max_retries= på ChatOpenAI). Se Fel.