> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neosantara.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# LlamaIndex

> Bangun pipeline RAG dan indeks dokumen dengan Neosantara dan LlamaIndex.

[LlamaIndex](https://www.llamaindex.ai/?utm_source=neosantara-docs\&utm_medium=referral) adalah framework data untuk menghubungkan data kustom ke model bahasa melalui Retrieval-Augmented Generation (RAG). Neosantara menyediakan endpoint chat dan embedding yang kompatibel dengan LlamaIndex.

## Pengaturan

Instal library LlamaIndex dan adapter OpenAI-compatible:

```bash theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
pip install -U llama-index llama-index-llms-openai-like llama-index-embeddings-openai-like
```

<CodeGroup>
  ```bash Bash / zsh icon="terminal" theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
  export NEOSANTARA_API_KEY="nsk_your_api_key_here"
  ```

  ```env .env icon="file-code" theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
  NEOSANTARA_API_KEY=nsk_your_api_key_here
  ```

  ```powershell PowerShell icon="terminal" theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
  $env:NEOSANTARA_API_KEY="nsk_your_api_key_here"
  ```
</CodeGroup>

## Konfigurasi Global Settings

Gunakan modul `Settings` LlamaIndex untuk menetapkan model chat dan embedding Neosantara secara serentak.

```python theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
import os
from llama_index.core import Settings
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.openai_like import OpenAILikeEmbedding

Settings.llm = OpenAILike(
    model="deepseek-v4.1-flash",
    api_key=os.environ["NEOSANTARA_API_KEY"],
    api_base="https://api.neosantara.xyz/v1",
    temperature=0.2,
    max_tokens=1024,
    is_chat_model=True
)

Settings.embed_model = OpenAILikeEmbedding(
    model="text-embedding-3-small",
    api_key=os.environ["NEOSANTARA_API_KEY"],
    api_base="https://api.neosantara.xyz/v1"
)
```

## Contoh Pipeline RAG Lengkap

Contoh berikut membuat indeks vektor dari dokumen teks dan melakukan kueri pencarian informasi:

```python theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
import os
from llama_index.core import Document, VectorStoreIndex, Settings
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.openai_like import OpenAILikeEmbedding

# 1. Konfigurasi provider LLM dan Embedding
Settings.llm = OpenAILike(
    model="deepseek-v4.1-flash",
    api_key=os.environ["NEOSANTARA_API_KEY"],
    api_base="https://api.neosantara.xyz/v1",
    is_chat_model=True
)

Settings.embed_model = OpenAILikeEmbedding(
    model="text-embedding-3-small",
    api_key=os.environ["NEOSANTARA_API_KEY"],
    api_base="https://api.neosantara.xyz/v1"
)

# 2. Siapkan dokumen contoh
documents = [
    Document(text="Neosantara adalah AI Gateway Indonesia dengan dukungan pembayaran Rupiah dan saldo berbasis PAYG."),
    Document(text="Limit rate tier Free adalah 10 RPM, 30.000 ITPM, dan 8.000 OTPM dengan deposit awal minimum Rp 50.000 via Mayar QRIS."),
    Document(text="Fitur Guardrail UU PDP No. 27/2022 Neosantara dapat diaktifkan per-request melalui header X-Guard: on.")
]

# 3. Buat indeks vektor
index = VectorStoreIndex.from_documents(documents)

# 4. Inisialisasi query engine dan jalankan pertanyaan
query_engine = index.as_query_engine(similarity_top_k=2)
response = query_engine.query("Bagaimana cara mengaktifkan guardrail perlindungan data pribadi di Neosantara?")

print("Jawaban:", response)
```

## Streaming Response pada LlamaIndex

Untuk aplikasi chat atau UI interaktif, aktifkan streaming pada query engine:

```python theme={"theme":{"light":"ayu-dark","dark":"catppuccin-latte"}}
query_engine = index.as_query_engine(streaming=True)
streaming_response = query_engine.query("Berapa limit rate untuk pengguna tier Free?")

for text in streaming_response.response_gen:
    print(text, end="", flush=True)
print()
```

## Rekomendasi Pasangan Model RAG

| Kebutuhan RAG                   | Model Embedding          | Model Generasi (LLM)  |
| :------------------------------ | :----------------------- | :-------------------- |
| **Produksi Standar & Efisien**  | `text-embedding-3-small` | `gemini-3.8-flash`    |
| **Sintesis Dokumen Panjang**    | `text-embedding-3-small` | `deepseek-v4.1-flash` |
| **Analisis Regulasi & Kontrak** | `text-embedding-3-large` | `claude-4.5-sonnet`   |

## Langkah Berikutnya

* [Dokumentasi Kemampuan Embeddings](/id/gateway/capabilities/embeddings)
* [Header Guardrail UU PDP](/id/guides/guardrails)
* [Panduan LiteLLM](/id/integrations/litellm)


## Related topics

- [Embeddings](/id/gateway/capabilities/embeddings.md)
- [Data Guardrails & UU PDP](/id/guides/guardrails.md)
- [LiteLLM](/id/integrations/litellm.md)
- [Katalog Model](/id/gateway/models.md)
