|

LangChain & LangGraph

Integrate Cencori with LangChain and build stateful agents with LangGraph.

Cencori is fully compatible with LangChain's OpenAI providers in both Node.js and Python.

LangChain JS

npm install @langchain/openai
import { ChatOpenAI } from "@langchain/openai";
 
const chat = new ChatOpenAI({
  openAIApiKey: process.env.CENCORI_API_KEY, // csk_...
  configuration: {
    baseURL: "https://api.cencori.com/v1",
  },
  modelName: "gpt-4o",
});
 
const response = await chat.invoke("Hello from Cencori!");
console.log(response.content);

LangChain Python

pip install langchain-openai
from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI(
    api_key="csk_...",
    base_url="https://api.cencori.com/v1",
    model="gpt-4o"
)
 
response = llm.invoke("Hello from Python!")
print(response.content)

LangGraph (Stateful Agents)

You can use Cencori as the LLM backbone for complex LangGraph agents.

import { StateGraph, MessagesAnnotation } from "@langchain/langgraph";
import { ChatOpenAI } from "@langchain/openai";
 
// 1. Initialize Cencori LLM
const llm = new ChatOpenAI({
  openAIApiKey: process.env.CENCORI_API_KEY,
  configuration: { baseURL: "https://api.cencori.com/v1" },
  modelName: "gpt-4o",
});
 
// 2. Define the graph
const graph = new StateGraph(MessagesAnnotation)
  .addNode("agent", async (state) => {
    const response = await llm.invoke(state.messages);
    return { messages: [response] };
  })
  .addEdge("__start__", "agent")
  .compile();
 
// 3. Run the agent
const result = await graph.invoke({
  messages: [{ role: "user", content: "Build me a roadmap." }]
});

[!TIP] Why use Cencori with LangGraph? Cencori's Memory feature can persist agent state across sessions without needing a separate vector database.