Sohbet Modelleri

Sohbet modelleri, dil modellerinin bir varyantıdır. Sohbet modelleri (LLM) alt düzeyde dil modellerini kullansalar da, genel arabirimleri biraz farklıdır. "Giriş metni, çıkış metni" için bir API açığa çıkarmak yerine, giriş olarak "sohbet mesajları" alan ve çıkış yapan bir arabirim kullanırlar. Sohbet modellerinin tüm etkileşim süreci, sohbet mesajları alışverişi sürecine benzer.

Sohbet Modelleri ile Başlarken

Bu bölüm, OpenAI modeline dayanmaktadır.

Yapılandırma

Varsayılan olarak, LangChain'in model bağımlılıkları yüklü değildir. Öncelikle, OpenAI Python paketini yükleyin:

pip install langchain-openai

API'ye erişmek için bir API anahtarı gereklidir; bu da ortam değişkenleri aracılığıyla yapılandırılabilir. Aşağıdaki örnek, bunu Linux ortamında nasıl ayarlayacağınızı göstermektedir:

export OPENAI_API_KEY="..."

Eğer ortam değişkenlerini ayarlamak istemiyorsanız, OpenAI LLM sınıfını başlatırken openai_api_key adlı parametre ile doğrudan anahtarı geçirebilirsiniz:

from langchain_openai import ChatOpenAI

sohbet = ChatOpenAI(openai_api_key="...")

Başka bir seçenek olarak, herhangi bir parametre olmadan başlatabilirsiniz:

from langchain_openai import ChatOpenAI
sohbet = ChatOpenAI()

Mesajlar

Sohbet modeli arabirimi, ham metin yerine mesajlara dayalıdır. Şu anda LangChain tarafından desteklenen mesaj tipleri arasında AIMessage, HumanMessage, SystemMessage, FunctionMessage ve ChatMessage bulunmaktadır; ChatMessage genellikle keyfi bir rol parametresi gerektirir. Çoğu durumda, yalnızca HumanMessage, AIMessage ve SystemMessage ile uğraşacaksınız.

LCEL (LangChain Expression Language)

Sohbet modeli, Runnable arabirimini uygular ve invoke, ainvoke, stream, astream, batch, abatch, astream_log gibi yöntemleri destekler, böylece sohbet modeli aynı zamanda LangChain Expression Language (LCEL) ifadeleri için de kullanılabilir.

Sohbet modeli, giriş olarak List[BaseMessage] alır veya str (İnsan Mesajı'na dönüştürülen) ve PromptValue gibi mesajlara dönüştürülebilecek nesneleri kabul edebilir.

from langchain_core.messages import HumanMessage, SystemMessage

mesajlar = [
    SystemMessage(content="Siz yardımcı bir asistansınız"),
    HumanMessage(content="Model düzenleme amacı nedir?"),
]

Mesaj dizisi ile modeli çağırmak:

sohbet.invoke(mesajlar)

Dönen mesajın örneği:

AIMessage(content="Yapay zeka yanıt içeriği...detaylar çıkarıldı...")

Yapay zeka yanıt çıktısını akıtmak:

for parça in sohbet.stream(mesajlar):
    print(parça.content, end="", flush=True)