उदाहरण का उपयोग करें

एलएलएम को संदर्भ उदाहरण प्रदान करके आम तौर पर बेहतरीन निकासी की गुणवत्ता को बढ़ाया जा सकता है।

टिप: जबकि यह ट्यूटोरियल टूल कॉलिंग मॉडल के साथ उदाहरण कैसे उपयोग करने पर ध्यान केंद्रित करता है, यह तकनीक सामान्य रूप से लागू है, और जेसन और अधिक प्रम्प्त आधारित तकनीकों के साथ भी काम करेगी।

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder

प्रॉम्प्ट = ChatPromptTemplate.from_messages(
    [
        (
            "सिस्टम",
            "आप एक विशेषज्ञ निकासी ऍल्गोरिदम हैं। "
            "सिर्फ पाठ से संबंधित जानकारी निकालें। "
            "अगर आपको किसी विशेषता की मांग पूछी जाती है तो उसके लिए नल को वापस के लिए null वापस करें।",
        ),
        MessagesPlaceholder("उदाहरण"),  # <-- उदाहरण!
        ("मानव", "{पाठ}"),
    ]
)

टेम्पलेट का परीक्षण करें:

from langchain_core.messages import (
    HumanMessage,
)

प्रॉम्प्ट.invoke(
    {"पाठ": "यह कुछ पाठ है", "उदाहरण": [HumanMessage(content="टेस्टिंग 1 2 3")]}
)
ChatPromptValue(messages=[SystemMessage(content="You are an expert extraction algorithm. Only extract relevant information from the text. If you do not know the value of an attribute asked to extract, return null for the attribute's value."), HumanMessage(content='testing 1 2 3'), HumanMessage(content='this is some text')])

स्कीमा परिभाषित करें

आइए क्विकस्टार्ट से व्यक्ति स्कीमा का पुनर्योग करें।

from typing import List, Optional

from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_openai import ChatOpenAI


class Person(BaseModel):
    """व्यक्ति के बारे में जानकारी."""


    नाम: Optional[str] = Field(..., विवरण="व्यक्ति का नाम")
    बालों_का_रंग: Optional[str] = Field(
        ..., विवरण="यदि ज्ञात है तो व्यक्ति की आंखों का रंग"
    )
    मीटर में ऊचाई: Optional[str] = Field(..., विवरण="मीटर में ऊचाई")
    

class Data(BaseModel):
    """लोगों के बारे में निकाली गई जानकारी।"""

    लोग: List[Person]

उल्लेख उदाहरणों को परिभाषित करें

उदाहरण को इनपुट-आउटपुट जोड़ों की सूची के रूप में परिभाषित किया जा सकता है।

प्रत्येक उदाहरण में एक उदाहरण इनपुट पाठ और एक उदाहरण आउटपुट शामिल होता है जो पाठ से क्या निकाला जाना चाहिए, उसका प्रदर्शन करता है।

इन्फो

यह काफी गहराइयों में है, इसलिए अगर आपको इसका समझने में तकलीफ हो तो कृपया इसे नजरअंदाज करें!

उदाहरण का प्रारूप उपयोग की जाने वाली API (जैसे, उपकरण को कॉल करते समय या JSON मोड आदि) से मेल खाना चाहिए।

यहां, प्रारूपित उदाहरण उल्लेखित उपकरण कॉल API के लिए प्रत्याशित प्रारूप से मेल खाने चाहिए, क्योंकि यही हमारे उपयोग किए जाने वाले API का प्रारूप है।

ChatPromptValue(messages=[SystemMessage(content="तुम एक विशेषज्ञ निकालने एल्गोरिदम हो। सिर्फ़ पाठ से संबंधित जानकारी निकालें। अगर आपको किसी विशेषता की मान्यता नहीं है जो निकालने को कहा गया है, तो उस विशेषता के मान के लिए null लौटाएँ।"), HumanMessage(content="समुंदर विशाल और नीला है। इसका ढेर से अधिक 20,000 फीट गहरा है। इसमें कई मछलियाँ हैं।"), AIMessage(content='', additional_kwargs={'tool_calls': [{'id': 'c75e57cc-8212-4959-81e9-9477b0b79126', 'type': 'function', 'function': {'name': 'Person', 'arguments': '{"name": null, "hair_color": null, "height_in_meters": null}'}}]}), ToolMessage(content='तुमने इस उपकरण को सही ढंग से बुलाया है।', tool_call_id='c75e57cc-8212-4959-81e9-9477b0b79126'), HumanMessage(content='फिओना ने फ्रांस से स्पेन की यात्रा की।'), AIMessage(content='', additional_kwargs={'tool_calls': [{'id': '69da50b5-e427-44be-b396-1e56d821c6b0', 'type': 'function', 'function': {'name': 'Person', 'arguments': '{"name": "Fiona", "hair_color": null, "height_in_meters": null}'}}]}), ToolMessage(content='तुमने इस उपकरण को सही ढंग से बुलाया है।', tool_call_id='69da50b5-e427-44be-b396-1e56d821c6b0'), HumanMessage(content='यह कुछ पाठ है')])

एक निकालक बनाएं

यहां, हम gpt-4 का उपयोग करके एक निकालक बनाएंगे।

llm = ChatOpenAI(
    model="gpt-4-0125-preview",
    temperature=0,
)

runnable = prompt | llm.with_structured_output(
    schema=Data,
    method="function_calling",
    include_raw=False,
)
/Users/harrisonchase/workplace/langchain/libs/core/langchain_core/_api/beta_decorator.py:86: LangChainBetaWarning: The function `with_structured_output` is in beta. It is actively being worked on, so the API may change.
  warn_beta(

उदाहरण के बिना

ध्यान दें कि हालांकि हम gpt-4 का उपयोग कर रहे हैं, यह एक बहुत सरल टेस्ट केस के साथ विफल हो रहा है।

for _ in range(5):
    text = "सौरमंडल बड़ा है, लेकिन पृथ्वी के पास केवल 1 चांद है।"
    print(runnable.invoke({"text": text, "examples": []}))
people=[]
people=[Person(name='earth', hair_color=None, height_in_meters=None)]
people=[Person(name='earth', hair_color=None, height_in_meters=None)]
people=[]
people=[]

उदाहरण के साथ

संदर्भ उदाहरण विफलता को ठीक करने में मदद करते हैं!

for _ in range(5):
    text = "सौरमंडल बड़ा है, लेकिन पृथ्वी के पास केवल 1 चांद है।"
    print(runnable.invoke({"text": text, "examples": messages}))
people=[]
people=[]
people=[]
people=[]
people=[]
runnable.invoke(
    {
        "text": "मेरा नाम है हैरिसन। मेरे बाल काले हैं।",
        "examples": messages,
    }
)
Data(people=[Person(name='Harrison', hair_color='black', height_in_meters=None)])