Panduan SDK
LangChain
Gunakan model api14 di LangChain untuk Python dan JavaScript dengan mengatur base URL dan API key pada integrasi OpenAI.
Integrasi OpenAI milik LangChain bekerja dengan api14 tanpa perubahan: atur base URL dan key, lalu gunakan ID model apa pun (misalnya openai/gpt-5-mini). Contoh ditampilkan untuk Python (langchain-openai) dan JavaScript (@langchain/openai).
Instalasi
pip install langchain-openai
# or
npm install @langchain/openai @langchain/core
export API14_API_KEY="sk-api14-..."
Konfigurasi (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)
Konfigurasi (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));
}
Tool dan structured output
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
Sebagian besar model embedding di api14 bukan model OpenAI, jadi matikan pemeriksaan panjang tiktoken di sisi klien:
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"])
Parameter gateway
Teruskan field khusus gateway lewat extra_body (Python) atau 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"}},
)
Error
LangChain menampilkan exception dari OpenAI SDK. 402 insufficient_balance memunculkan openai.APIStatusError; 429 rate_limited memunculkan openai.RateLimitError setelah retry bawaan (max_retries= pada ChatOpenAI). Lihat Error.