Ana içeriğe geç

LlamaIndex'i kullanmaya başlamanın en kolay yolu: create-llama

LlamaIndex, Next.js ve Ollama ile Hobi Proje Oluşturma

Önceki yazı'larımdan birinde, LLM uygulamaları oluşturmak için güçlü bir framework olan LlamaIndex'i tanıttım. Bu yazıda, yerel LLM'leri çalıştırmak için Ollama sağlayıcısıyla eşleştirilmiş bir Next.js backendini kullanarak bir hobi proje oluşturarak işi bir adım daha ileri taşımak istiyorum.

Hadi başlayalım.


🛠 Gereksinimler

Devam etmek için aşağıdakilerin kurulu olduğundan emin olun:

  • Node.js
  • Ollama (modelleri yerel olarak çalıştırmak için)

💡 İpucu: Node.js Sürüm Yönetimi için "nvm"yi kullanın

Node.js'nin birden çok sürümünü kolayca yönetmek için nvm kullanmanızı önemle tavsiye ederim. Farklı sürüm gereksinimleri olan projeler için cankurtarandır.


🚀 1. Adım: Ollama'yı yükleyin

Ollama'yı resmi sitelerinden indirip yükleyin: 👉 https://ollama.com/download

Ve şu modelleri çekin:

ollama pull llama3.2
ollama pull nomic-embed-text

🧱 Adım 2: Projenin İskelesini Oluşturun

LlamaIndex destekli bir uygulama oluşturarak başlayacağız:

npx create-llama@latest

Projenizin adı, diğer yapılandırma seçenekleriyle birlikte şuna benzer şekilde sorulacaktır:

npm create llama@latest
Need to install the following packages:
  create-llama@latest
Ok to proceed? (y) y
✔ What is your project named? … my-app
✔ What app do you want to build? › Agentic RAG
✔ What language do you want to use? › Next.js
✔ Do you want to use LlamaCloud services? … No / Yes
✔ Please provide your LlamaCloud API key (leave blank to skip): …
✔ Please provide your OpenAI API key (leave blank to skip): …
? How would you like to proceed? › - Use arrow-keys. Return to submit.
    Just generate code (~1 sec)
   Start in VSCode (~1 sec)
❯   Generate code and install dependencies (~2 min)

🔌 Adım 3: Ollama Sağlayıcısını Ekleyin

Ollama'yı entegre etmek için resmi LlamaIndex Ollama bağlamalarını yüklememiz gerekiyor:

npm install @llamaindex/ollama

⚙️ Adım 4: .env Dosyanızı Güncelleyin

.env dosyanızı aşağıdakileri içerecek şekilde düzenleyin:

# The provider for the AI models to use.
MODEL_PROVIDER=ollama

# The name of LLM model to use.
MODEL=llama3.2:latest

# Name of the embedding model to use.
EMBEDDING_MODEL=nomic-embed-text:latest

Model adlarının yerel Ollama kurulumunuzda mevcut olanlarla eşleştiğinden emin olun.


🧩 Adım 5: Sağlayıcıyı Yapılandırın

'app/api/chat/engine/provider.ts' dosyasını aşağıdaki kodla güncelleyin:

import { Ollama } from "@llamaindex/ollama";
import { OllamaEmbedding } from "@llamaindex/ollama";

export function setupProvider() {
  Settings.llm = new Ollama({
    model: process.env.MODEL ?? "gemini-2.5-pro-preview-03-25",
    maxTokens: process.env.LLM_MAX_TOKENS
      ? Number(process.env.LLM_MAX_TOKENS)
      : undefined,
  });

  Settings.embedModel = new OllamaEmbedding({
    model: process.env.EMBEDDING_MODEL,
    dimensions: process.env.EMBEDDING_DIM
      ? parseInt(process.env.EMBEDDING_DIM)
      : undefined,
  });
}

Bu kod, LlamaIndex'e hem LLM çıkarımı hem de yerleştirme oluşturma için Ollama'yı kullanmasını söyler.


🧪 Adım 6: Uygulamayı Oluşturun ve Çalıştırın

Artık uygulamanızı oluşturup çalıştırmanın zamanı geldi:

npm run generate
npm run dev

İşte bu kadar! 🎉 Artık Next.js backendinde LlamaIndex çalıştıran ve Ollama aracılığıyla yerel LLM'ler tarafından desteklenen bir hobi projeniz var.