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)