2025, Oct 04 23:31

Browser Use एजेंट में Gemini जोड़ते समय 'BaseChatModel' त्रुटि को कैसे ठीक करें

Browser Use एजेंट को Google Gemini से जोड़ते समय आने वाली Expected type 'BaseChatModel' त्रुटि का कारण और समाधान जानें: ChatGoogle एडेप्टर के साथ सेटअप

Browser Use एजेंट को Gemini से जोड़ते समय “Expected type 'BaseChatModel'” त्रुटि को कैसे ठीक करें

UI परीक्षण के लिए AI ऑटोमेशन एजेंट बनाना सामान्यतः सरल होना चाहिए, लेकिन लाइब्रेरीज़ के बीच ज़रा-सा असंगति भी सेटअप को पटरी से उतार सकती है. एक आम ठोकर यह है कि LangChain के जरिए चलने वाले Google Gemini क्लाइंट को सीधे Browser Use Agent में पास करने की कोशिश की जाती है — और नतीजे में टाइप एरर मिलती है. नीचे न्यूनतम उदाहरण और काम करने वाली कॉन्फ़िगरेशन तक पहुँचने का स्पष्ट रास्ता दिया गया है.

समस्या सेटअप

पर्यावरण में Python 3.1x (PyCharm के साथ) उपयोग हो रहा है, और इंस्टॉल की गई लाइब्रेरीज़ में browser-use, pydantic, langchain और google-generative-ai शामिल हैं. Agent को Gemini-समर्थित LLM इंस्टेंस से इनिशियलाइज़ किया गया है:

from browser_use.agent.service import Agent
from langchain_google_genai import ChatGoogleGenerativeAI
async def run_ui_check():
    scenario = (
        'I am a UI automation UI tester validating this task'
        'Open the website https://www.google.com'
    )
    genai_client = ChatGoogleGenerativeAI(model='', api_key='')
    Agent(scenario, genai_client)

यह निम्न अपवाद दिखाता है:

Expected type 'BaseChatModel', got 'ChatGoogleGenerativeAI' instead

ऐसा क्यों होता है

Browser Use अपनी खुद की LLM इंटरफ़ेस और समर्थित मॉडलों के एक चुने हुए सेट के साथ आता है. Agent को ऐसा ऑब्जेक्ट चाहिए जो उसके आंतरिक BaseChatModel अनुबंध का पालन करता हो. LangChain का एडेप्टर ChatGoogleGenerativeAI वह टाइप नहीं है जिसे Agent स्वीकार करने के लिए बना है, इसलिए रनटाइम पर टाइप मिसमैच त्रुटि उठती है. दूसरे शब्दों में, आप Agent को उस एब्स्ट्रैक्शन लेयर का क्लाइंट दे रहे हैं जिसे वह सपोर्ट नहीं करता.

समाधान

Google Gemini के लिए Browser Use द्वारा प्रदान किया गया LLM इंटीग्रेशन इस्तेमाल करें. यह लाइब्रेरी ChatGoogle नाम का क्लास देती है, जो Agent की अपेक्षाओं से मेल खाता है. LangChain क्लाइंट को इस एडेप्टर से बदलें और उसे Agent में पास करें. मॉडल का चयन वही रखें जैसा Browser Use अपने Gemini सपोर्ट के लिए दस्तावेज़ करता है.

from browser_use.agent.service import Agent
from browser_use.llm import ChatGoogle
async def run_ui_check():
    scenario = (
        'I am a UI automation UI tester validating this task'
        'Open the website https://www.google.com'
    )
    llm_adapter = ChatGoogle(model='gemini-2.0-flash-exp')
    Agent(scenario, llm_adapter)

यह सेटअप Agent को संगत LLM इम्प्लीमेंटेशन के साथ संरेखित करता है और टाइप एरर हटाता है.

यह क्यों मायने रखता है

AI टूलिंग का इकोसिस्टम तेज़ी से बदलता है, और अलग-अलग फ़्रेमवर्क अपने-अपने इंटरफ़ेस के पीछे मॉडलों को लपेटते हैं. इकोसिस्टम-क्रॉस एडेप्टर मिलाना इम्पोर्ट स्तर पर ठीक दिख सकता है, पर रनटाइम पर अलग अपेक्षाओं के कारण फेल हो जाता है. यह जानना कि कोई फ़्रेमवर्क किन LLM रैपरों को नैटिव रूप से सपोर्ट करता है, समय बचाता है, नाज़ुक ग्लू-कोड से बचाता है और व्यवहार को पूर्वानुमेय बनाता है.

मुख्य बातें

Browser Use के साथ काम करते समय Agent को उसी LLM क्लास के साथ जोड़ें जिसे यह लाइब्रेरी स्पष्ट रूप से सपोर्ट करती है. Google Gemini के लिए, Browser Use का दिया हुआ ChatGoogle क्लास इंस्टैंशिएट करें और आवश्यक मॉडल सेट करें. अगर टाइप मिसमैच दिखे, तो दोबारा जाँच लें कि LLM ऑब्जेक्ट Browser Use इंटीग्रेशन से आ रहा है, किसी दूसरे SDK से नहीं. एब्स्ट्रैक्शन को सुसंगत रखना ही स्थिर ऑटोमेशन एजेंट तक पहुँचने का सबसे सरल तरीका है.

यह लेख StackOverflow के प्रश्न (लेखक: user12730187) और Selcuk के उत्तर पर आधारित है।