चैट मॉडल
चैट मॉडल भाषा मॉडल का एक वेरिएंट है। हालांकि चैट मॉडल अपने पब्लिक इंटरफेस को कुछ अलग ही रखते हैं। इन्हें "इनपुट टेक्स्ट, आउटपुट टेक्स्ट" के लिए एपीआई निकालने की बजाय, उनका इंटरफेस "चैट मैसेज" को इनपुट और आउटपुट के रूप में लेता है। चैट मॉडल का पूरा इंटरैक्शन प्रक्रिया चैट मैसेज आर्थिक सम्बंधों के तरह है।
चैट मॉडल्स के साथ शुरुआत
इस अध्याय में ओपनएआई मॉडल का उपयोग किया गया है।
कॉन्फ़िगरेशन
डिफ़ॉल्ट रूप से, लैंगचेन मॉडल डिपेंडेंसीज़ इन्स्टॉल नहीं होती है। सबसे पहले, ओपनएआई पायथन पैकेज को इंस्टॉल करें:
pip install langchain-openai
एपीआई तक पहुंचने के लिए एपीआई कुंजी की आवश्यकता होती है, जिसे एनवायरनमेंट वेरिएबल्स के माध्यम से कॉन्फ़िगर किया जा सकता है। निम्नलिखित उदाहरण में दिखाया गया है कि इसे लिनक्स एनवायरनमेंट में कैसे सेट किया जा सकता है:
export OPENAI_API_KEY="..."
यदि आप एनवायरनमेंट वेरिएबल्स सेट नहीं करना चाहते हैं, तो आप ओपनएआई LLM क्लास को आरंभ करते समय openai_api_key
नामक पैरामीटर के माध्यम से कुंजी सीधे पास कर सकते हैं:
from langchain_openai import ChatOpenAI
chat = ChatOpenAI(openai_api_key="...")
या तो, आप इसे किसी भी पैरामीटर के बिना आरंभ कर सकते हैं:
from langchain_openai import ChatOpenAI
chat = ChatOpenAI()
संदेश
चैट मॉडल इंटरफ़ेस मैसेज रूप में आधारित है और सीधे रूप से रॉ टेक्स्ट पर नहीं। लैंगचेन द्वारा वर्तमान में समर्थित मैसेज के प्रकार में AIMessage
, HumanMessage
, SystemMessage
, FunctionMessage
, और ChatMessage
शामिल हैं, जहां ChatMessage
में एक व्यापक भूमिका पैरामीटर की आवश्यकता होती है। अधिकांश मामलों में, आपको केवल HumanMessage
, AIMessage
, and SystemMessage
से निपटना होगा।
LCEL
चैट मॉडल Runnable interface
को लागू करता है, जिसमें invoke
, ainvoke
, stream
, astream
, batch
, abatch
, astream_log
जैसे मेथड का समर्थन करता है, इसलिए चैट मॉडल को लैंगचेन एक्सप्रेशन लैंग्वेज (LCEL) एक्सप्रेशन के लिए भी उपयोग किया जा सकता है।
चैट मॉडल को इनपुट के रूप में List[BaseMessage]
स्वीकार करता है, या str
(को HumanMessage
में बदल देने वाला) और PromptValue
सहित गुजारे जा सकने वाले वस्त्रों को स्वीकार कर सकता है।
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="आप एक सहायक हैं"),
HumanMessage(content="मॉडल संशोधन का उद्देश्य क्या है?"),
]
मैसेज के एक गण के साथ मॉडल को कॉल करना:
chat.invoke(messages)
वापस आई मैसेज का उदाहरण:
AIMessage(content="एआई प्रतिक्रिया सामग्री...विस्तार छोड़ दिया गया है...")
एआई प्रतिक्रिया आउटपुट को स्ट्रीम करना:
for chunk in chat.stream(messages):
print(chunk.content, end="", flush=True)