> ## Documentation Index
> Fetch the complete documentation index at: https://student-213fb9fc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# LangChain

> Use AJ STUDIOZ Cloud Infra with LangChain for AI pipelines and agents

## Overview

LangChain works seamlessly with AJ STUDIOZ Cloud Infra via the OpenAI-compatible API. All 32+ models are hosted in our cloud — no local installation needed. Use `ChatOpenAI` and `OpenAIEmbeddings` by simply pointing `base_url` to `https://api.ajstudioz.co.in/v1`.

## Installation

```bash theme={null}
pip install langchain langchain-openai
```

## Chat Models

```python Basic Chat theme={null}
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gemma3:27b",
    base_url="https://api.ajstudioz.co.in/v1",
    api_key="YOUR_API_KEY",
    temperature=0.7
)

response = llm.invoke("What is the capital of Japan?")
print(response.content)
```

### Streaming

```python Streaming theme={null}
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek-v3.2",
    base_url="https://api.ajstudioz.co.in/v1",
    api_key="YOUR_API_KEY",
    streaming=True
)

for chunk in llm.stream("Explain transformers in machine learning"):
    print(chunk.content, end="", flush=True)
```

***

## Chat Chains with Prompts

```python Chat Chain theme={null}
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

llm = ChatOpenAI(
    model="gemma3:27b",
    base_url="https://api.ajstudioz.co.in/v1",
    api_key="YOUR_API_KEY"
)

prompt = ChatPromptTemplate.from_messages([
    ("system", "You are an expert in {domain}. Answer concisely."),
    ("user", "{question}")
])

chain = prompt | llm | StrOutputParser()

result = chain.invoke({
    "domain": "machine learning",
    "question": "What is gradient descent?"
})
print(result)
```

***

## Embeddings

<Note>All embedding models are cloud-hosted. No local GPU required.</Note>

```python Embeddings theme={null}
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(
    model="gemma3:4b",
    base_url="https://api.ajstudioz.co.in/v1",
    api_key="YOUR_API_KEY"
)

vector = embeddings.embed_query("Hello from AJ STUDIOZ!")
print(f"Dimensions: {len(vector)}")

docs = ["Document one", "Document two", "Document three"]
vectors = embeddings.embed_documents(docs)
print(f"Embedded {len(vectors)} documents")
```

***

## RAG Pipeline

```python Full RAG Pipeline theme={null}
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough

BASE_URL = "https://api.ajstudioz.co.in/v1"
API_KEY = "YOUR_API_KEY"

llm = ChatOpenAI(model="gemma3:27b", base_url=BASE_URL, api_key=API_KEY)
embeddings = OpenAIEmbeddings(model="gemma3:4b", base_url=BASE_URL, api_key=API_KEY)

docs = [
    "AJ STUDIOZ Cloud Infra hosts 32+ AI models in the cloud.",
    "Available models include Gemma, Qwen, Kimi, DeepSeek, GLM, and Mistral families.",
    "Authenticate using a Bearer token in the Authorization header.",
    "Ollama-compatible base URL: https://api.ajstudioz.co.in",
    "OpenAI-compatible base URL: https://api.ajstudioz.co.in/v1",
]

vectorstore = FAISS.from_texts(docs, embedding=embeddings)
retriever = vectorstore.as_retriever()

prompt = ChatPromptTemplate.from_template("""
Answer based only on the following context:
{context}

Question: {question}
""")

chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | llm
    | StrOutputParser()
)

answer = chain.invoke("What APIs does AJ STUDIOZ support?")
print(answer)
```

***

## Next Steps

<CardGroup cols={2}>
  <Card title="LlamaIndex Integration" icon="database" href="/integrations/llamaindex">
    Use LlamaIndex with AJ STUDIOZ
  </Card>

  <Card title="Function Calling Guide" icon="function" href="/guides/function-calling">
    Deep dive into tool calling
  </Card>
</CardGroup>
