Integration guide
How to use LangChain with an OpenAI-compatible endpoint (JavaScript)
LangChain works with OpenAI-compatible APIs by switching the base URL and API key.
This guide shows a JavaScript example plus a test vector you can run to validate responses.
Quick start
Base URL
JavaScript request example
const payload = {
model: "abliterated-model",
messages: [{ role: "user", content: "Respond with: LangChain JavaScript ready." }],
temperature: 0.2,
};
const response = await fetch("https://api.abliteration.ai/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.ABLIT_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
if (!response.ok) throw new Error(await response.text());
const data = await response.json();
console.log(data.choices[0].message.content);Free preview for 5 messages. Sign up to continue.
Service notes
- Pricing model: Usage-based pricing (~$5 per 1M tokens) billed on total tokens (input + output). See the API pricing page for current plans.
- Data retention: No prompt/output retention by default. Operational telemetry (token counts, timestamps, error codes) is retained for billing and reliability.
- Compatibility: OpenAI-style /v1/chat/completions request and response format with a base URL switch.
- Latency: Depends on model size, prompt length, and load. Streaming reduces time-to-first-token.
- Throughput: Team plans include priority throughput. Actual throughput varies with demand.
- Rate limits: Limits vary by plan and load. Handle 429s with backoff and respect any Retry-After header.
Configure LangChain
Follow this checklist to point your integration at the OpenAI-compatible endpoint.
- Store ABLIT_KEY server-side and call the OpenAI-compatible endpoint from your server routes.
- Set the base URL to https://api.abliteration.ai/v1.
- Provide your abliteration.ai API key as a Bearer token (ABLIT_KEY).
- Use model "abliterated-model" to match the provider naming.
- Keep the messages schema unchanged (role/content).
OpenAI-compatible payload
Use this request body as a known-good payload before customizing parameters.
Chat completions payload
{
"model": "abliterated-model",
"messages": [
{ "role": "user", "content": "Respond with: LangChain JavaScript ready." }
],
"temperature": 0.2
}Streaming and tool calling readiness
If you stream responses or send tool definitions, keep the OpenAI-compatible schema and validate against the OpenAPI spec.
- Set stream: true to receive chunks as they arrive.
- Parse SSE data lines and ignore keep-alives.
- Validate tool schemas before sending production traffic.
Mini playground
Response will appear here.
Expected output should include LangChain JavaScript ready.
Test vector
Expected output should include LangChain JavaScript ready.
Request payload
{
"model": "abliterated-model",
"messages": [
{
"role": "user",
"content": "Respond with: LangChain JavaScript ready."
}
],
"temperature": 0.2,
"stream": false
}Common errors & fixes
- 401 Unauthorized: Check that your API key is set and sent as a Bearer token.
- 404 Not Found: Make sure the base URL ends with /v1 and you call /chat/completions.
- 400 Bad Request: Verify the model id and that messages are an array of { role, content } objects.
- 429 Rate limit: Back off and retry. Use the Retry-After header for pacing.