1. LLM'lerin Tanıtımı

Büyük Dil Modelleri (LLM'ler), LangChain'in temel bileşenleridir. LangChain kendisi büyük dil modeli yetenekleri sağlamaz; bunun yerine çeşitli yaygın büyük dil modellerini kapsar, büyük dil modelleri için standart bir arayüz sağlayarak geliştiriciler için kolaylık sağlar.

Şu anda, LangChain birçok büyük dil modelini kapsar ve ayrıca özel modelleri de destekler. Geliştiriciler kendi yeni model arabirimlerini kapsayabilirler.

  • Not: Şu anda birçok açık kaynaklı ve ticari büyük model mevcuttur. Maliyet ve model yetenekleri açısından farklı tercihleriniz olabilir. Ayrıca sık model değişiklikleri olabilir ve geliştiriciler model değiştirdiklerinde çok fazla iş kodunu değiştirmek istemeyebilirler. İşte LangChain'in değeri devreye giriyor.

2. Kurulum

2.1 Kurulum

LangChain'de OpenAI LLM'sini kullanabilmek için kullanıcıların aşağıdaki komutları çalıştırarak OpenAI Python paketini yüklemeleri gerekmektedir:

pip install openai

2.2 API Anahtarının Kurulumu

OpenAI API'sine erişim, OpenAI platformunda bir hesap oluşturarak elde edilebilecek bir API anahtarı gerektirir. API anahtarı alındıktan sonra, aşağıdaki komut kullanılarak bir ortam değişkeni olarak ayarlanabilir:

export OPENAI_API_KEY="sizin-api-anahtarınız"

Alternatif olarak, bir ortam değişkeni ayarlamak istemiyorsanız, OpenAI LLM sınıfını başlatırken API anahtarını doğrudan iletebilirsiniz, aşağıdaki gibi:

from langchain_openai import OpenAI

llm = OpenAI(openai_api_key="sizin-api-anahtarınız")

3. LCEL Uygulaması

LangChain'de, LLM'ler LangChain Expression Language (LCEL) için Runnable Arayüzünü uygularlar. Bu, invoke, stream, batch vb. gibi çeşitli işlev çağrılarını destekledikleri anlamına gelir.

LLM'ler, List[BaseMessage] ve PromptValue dahil olmak üzere bir dize giriş veya dizeye dönüştürülebilen nesneleri kabul eder.

4. LLM Kullanımı Örneği

4.1 Çağrı

Belirli bir başlangıç cümlesi ile LLM'yi çağırmak için invoke fonksiyonu kullanılabilir, aşağıdaki gibi:

llm.invoke("Buraya LLM için bir başlangıç cümlesi verin")

4.2 Akış

LLM'lerden gerçek zamanlı olarak metin çıktısı almak ve işlemek için kullanılan yöntem akışdır. Aşağıda LLM'nin akış işlemi için bir örnek bulunmaktadır:

for chunk in llm.stream("LLM için akış için bir başlangıç cümlesi verin"):
    print(chunk, end="", flush=True)

4.3 Toplu İşleme

Toplu işleme, LLM'ler için birden fazla girdinin paralel işlenmesine olanak tanır. Aşağıdaki gibi bir dizi başlangıç cümlesini işleyebilirsiniz:

llm.batch(["başlangıç cümlesi 1", "başlangıç cümlesi 2", "başlangıç cümlesi 3"])

4.4 Asenkron İşlemler

Daha iyi verimlilik için, asenkron işlemler LLM'lerle birlikte kullanılabilir. ainvoke, astream, abatch ve astream_log gibi asenkron işlemler, asenkron yürütme imkanı sağlar. Aşağıda, asenkron akış işlemi için LLM kullanımı örneği bulunmaktadır:

async for chunk in llm.astream("LLM için asenkron bir başlangıç cümlesi verin"):
    print(chunk, end="", flush=True)

Bu örnekler, LangChain çerçevesi içinde doğal dil işleme görevleri için LLM'lerin çeşitli yollarını kullanmanın farklı yöntemlerini göstermektedir.