Model Percakapan

Model percakapan adalah varian dari model bahasa. Meskipun model percakapan menggunakan model bahasa (LLM) pada tingkat dasar, antarmuka publiknya agak berbeda. Alih-alih mengekspos API untuk "masukan teks, keluaran teks", mereka menggunakan antarmuka yang mengambil "pesan percakapan" sebagai masukan dan keluaran. Seluruh proses interaksi model percakapan mirip dengan proses pertukaran pesan percakapan.

Memulai dengan Model Percakapan

Bab ini didasarkan pada model OpenAI.

Konfigurasi

Secara default, LangChain tidak memiliki dependensi model yang terpasang. Pertama, pasang paket Python OpenAI:

pip install langchain-openai

Mengakses API memerlukan kunci API, yang dapat dikonfigurasi melalui variabel lingkungan. Contoh berikut menunjukkan cara mengaturnya di lingkungan Linux:

export OPENAI_API_KEY="..."

Jika Anda lebih suka tidak mengatur variabel lingkungan, Anda dapat langsung melewatkan kunci melalui parameter bernama openai_api_key saat menginisialisasi kelas OpenAI LLM:

from langchain_openai import ChatOpenAI

percakapan = ChatOpenAI(openai_api_key="...")

Atau, Anda dapat menginisialisasinya tanpa parameter apa pun:

from langchain_openai import ChatOpenAI
percakapan = ChatOpenAI()

Pesan

Antarmuka model percakapan didasarkan pada pesan daripada teks mentah. Jenis pesan yang didukung oleh LangChain saat ini termasuk AIMessage, HumanMessage, SystemMessage, FunctionMessage, dan ChatMessage, di mana ChatMessage memerlukan parameter peran sembarang. Dalam kebanyakan kasus, Anda hanya akan berurusan dengan HumanMessage, AIMessage, dan SystemMessage.

LCEL

Model percakapan mengimplementasikan interface Runnable, mendukung metode seperti invoke, ainvoke, stream, astream, batch, abatch, astream_log, sehingga model percakapan juga dapat digunakan untuk ekspresi Bahasa Ekspresi LangChain (LCEL).

Model percakapan menerima List[BaseMessage] sebagai masukan, atau dapat menerima objek yang dapat dipaksa menjadi pesan, termasuk str (dikonversi menjadi HumanMessage) dan PromptValue.

from langchain_core.messages import HumanMessage, SystemMessage

pesan = [
    SystemMessage(content="Anda adalah asisten yang membantu"),
    HumanMessage(content="Apa tujuan regularisasi model?"),
]

Memanggil model dengan array pesan:

percakapan.invoke(pesan)

Contoh pesan yang dikembalikan:

AIMessage(content="Konten respon AI...detail disamarkan...")

Menyampaikan keluaran respon AI secara bertahap:

for bagian in percakapan.stream(pesan):
    print(bagian.content, end="", flush=True)