Integrations
LangChain
Use AICredits as a drop-in replacement for the OpenAI provider in LangChain. Access any model — Claude, Gemini, DeepSeek — through the same ChatOpenAI interface.
Use this page with an AI assistant
Opens a new chat with this docs URL and the correct AICredits base URLs.
Overview
LangChain's ChatOpenAI class accepts a custom base_url parameter, making AICredits a zero-friction drop-in. All LangChain abstractions — chains, agents, RAG, memory — work unchanged.
pip install langchain-openai langchainChat Model
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
llm = ChatOpenAI(
model="anthropic/claude-sonnet-4.5",
base_url="https://api.aicredits.in/v1",
api_key="sk-your-key-here",
temperature=0.7,
)
messages = [
SystemMessage(content="You are a helpful assistant."),
HumanMessage(content="What is the capital of India?"),
]
response = llm.invoke(messages)
print(response.content)import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage, SystemMessage } from "@langchain/core/messages";
const llm = new ChatOpenAI({
model: "anthropic/claude-sonnet-4.5",
configuration: {
baseURL: "https://api.aicredits.in/v1",
apiKey: "sk-your-key-here",
},
temperature: 0.7,
});
const response = await llm.invoke([
new SystemMessage("You are a helpful assistant."),
new HumanMessage("What is the capital of India?"),
]);
console.log(response.content);Chains
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
llm = ChatOpenAI(
model="openai/gpt-4o-mini",
base_url="https://api.aicredits.in/v1",
api_key="sk-your-key-here",
)
prompt = ChatPromptTemplate.from_template(
"Summarise the following text in {num_sentences} sentences:\n\n{text}"
)
chain = prompt | llm | StrOutputParser()
result = chain.invoke({
"text": "LangChain is a framework for developing applications powered by language models...",
"num_sentences": 2,
})
print(result)Agents
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.tools import tool
@tool
def get_word_count(text: str) -> int:
"""Count the number of words in a text."""
return len(text.split())
@tool
def reverse_text(text: str) -> str:
"""Reverse the characters in a text."""
return text[::-1]
llm = ChatOpenAI(
model="openai/gpt-4o-mini",
base_url="https://api.aicredits.in/v1",
api_key="sk-your-key-here",
)
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant with text processing tools."),
("human", "{input}"),
MessagesPlaceholder("agent_scratchpad"),
])
agent = create_openai_tools_agent(llm, [get_word_count, reverse_text], prompt)
executor = AgentExecutor(agent=agent, tools=[get_word_count, reverse_text], verbose=True)
result = executor.invoke({"input": "How many words are in 'Hello World from AICredits'?"})
print(result["output"])RAG Pipeline
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(
model="anthropic/claude-sonnet-4.5",
base_url="https://api.aicredits.in/v1",
api_key="sk-your-key-here",
)
embeddings = OpenAIEmbeddings(api_key="your-openai-key-for-embeddings")
texts = [
"AICredits is a unified LLM gateway for India.",
"Credits are billed in INR and valid for 1 year.",
"The API is OpenAI-compatible — just change the base URL.",
]
vectorstore = FAISS.from_texts(texts, embeddings)
retriever = vectorstore.as_retriever()
prompt = ChatPromptTemplate.from_template("""Answer based on the context:
Context: {context}
Question: {question}""")
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
rag_chain = (
{"context": retriever | format_docs, "question": RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
answer = rag_chain.invoke("How long are credits valid?")
print(answer)Streaming
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
llm = ChatOpenAI(
model="openai/gpt-4o-mini",
base_url="https://api.aicredits.in/v1",
api_key="sk-your-key-here",
streaming=True,
)
for chunk in llm.stream([HumanMessage(content="Tell me about the Himalayas")]):
print(chunk.content, end="", flush=True)
print()Switch between models by changing the model parameter. Claude, GPT-4o, Gemini, DeepSeek — all work through the same LangChain code.