CaptchaNo
[ AGENTS ]

Captcha solving
OpenAI Agents SDK agents के लिए

Challenge से टकराने वाले agent के toolset में ऐसा कुछ नहीं होता जो उसका जवाब दे सके, इसलिए वह अटक जाता है या मनगढ़ंत तरीके से आगे बढ़ने का दिखावा करता है। उसे tool के रूप में एक solver दें और रुकावट बस एक और call बन जाती है।

python · openai agents sdk
import time
import requests

CAPTCHANO_KEY = "cn-YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {CAPTCHANO_KEY}"}

def solve(task: dict) -> dict:
    """Block until solved; returns e.g. {"token": "...", "userAgent": "..."}."""
    r = requests.post(
        "https://api.captchano.com/v1/solve",
        params={"wait": 60},
        json=task,
        headers=HEADERS,
        timeout=75,
    )
    data = r.json()
    # A solve can outlast the 60 s wait: poll the task until it finishes.
    while data.get("status") in ("queued", "solving"):
        time.sleep(5)
        data = requests.get(
            f"https://api.captchano.com/v1/task/{data['id']}",
            headers=HEADERS,
            timeout=30,
        ).json()
    if data.get("status") != "ready":
        raise RuntimeError(data.get("error") or data)
    return data["solution"]

from agents import Agent, function_tool

@function_tool
def solve_captcha(kind: str, sitekey: str, url: str) -> str:
    """Return a token for a captcha blocking the current page."""
    return solve({"type": kind, "sitekey": sitekey, "url": url})["token"]

agent = Agent(name="browser", tools=[solve_captcha])

Agents को ख़ास तौर पर इसकी ज़रूरत क्यों है

Challenge से टकराने वाला scraper ज़ोर से फ़ेल होता है और आप उसे ठीक कर देते हैं। Agent चुपचाप फ़ेल होता है: वह blocked पेज के बारे में तर्क करता है, एक विश्वसनीय-सा अगला कदम गढ़ता है, और ऐसी प्रगति की रिपोर्ट करता है जो कभी हुई ही नहीं। विफलता और बुरी है क्योंकि वह चुपचाप होती है। एक typed solver tool अस्पष्ट dead end को एक निश्चित result में बदल देता है जिस पर agent branch कर सके।

Tool क्या लौटाता है

  • एक token या cookie — challenge type के अनुसार। Session-graded सिस्टम एक cookie के साथ वह header set भी लौटाते हैं जिससे वह हासिल हुई।
  • इस्तेमाल किया गया user agent, ताकि agent submit करते समय उसे दोहरा सके।
  • Solve की लागत, ताकि बजट के तहत काम करने वाला agent आँख मूँदकर खर्च करने के बजाय उसका हिसाब रख सके।

Loop को सीमा में रखना

Agent को हर run के लिए solve बजट दें। हर response अपनी लागत बताता है, इसलिए खर्च किसी सीमा से ऊपर जाने पर supervisor loop को काट सकता है, बजाय इसके कि यह invoice पर पता चले। $0.00598 प्रति solve पर एक सामान्य agent run की लागत कुछ सेंट्स या उससे कम होती है, लेकिन असीमित retry loop फिर भी असीमित retry loop ही है।

Tool call को blocking रखें

उदाहरण ?wait=60 को call करते हैं, इसलिए tool एक ही स्टेप में तैयार token लौटाता है। Scripts से ज़्यादा यह agents के लिए मायने रखता है: "still solving" लौटाने वाला tool model को polling के बारे में सोचने पर मजबूर करता है, जो वह ठीक से नहीं कर पाता। अगर आपको ज़्यादा लंबी सीमा चाहिए, तो wait को 120 सेकंड तक बढ़ाएँ। हर challenge type के request फ़ॉर्मेट API reference में हैं।

[ यह कैसे फ़िट होता है ]

OpenAI Agents SDK में solve कैसे फ़िट होता है

OpenAI Agents SDK, function_tool से एक typed Python फ़ंक्शन को tool में बदल देता है। Solver, agent के tools में से एक बन जाता है।

  1. 01
    एक फ़ंक्शन decorate करें

    API call को @function_tool और typed arguments के साथ wrap करें।

  2. 02
    इसे agent में जोड़ें

    इसे agent की tools list में दें।

  3. 03
    Agent को निर्देश दें

    उसे बताएँ कि जब किसी पेज पर captcha दिखे तो sitekey और URL के साथ tool को call करे।

  4. 04
    इसे trace करें

    SDK की tracing हर tool call और result दिखाती है, हमारी लौटाई गई लागत समेत।

Token को पेज में कैसे डालें

Agent को token मिलता है और वह उसे अपने browser या HTTP tool को देता है।

[ आम गलतियाँ ]

इंटीग्रेशन आमतौर पर कहाँ गलत होते हैं

बिना type के arguments

हर argument को type करें ताकि बनाया गया schema सटीक हो और model उसे सही भरे।

लंबे tool calls

HTTP timeout को wait value से ज़्यादा रखें ताकि solve चलते रहने के दौरान tool फ़ेल न हो।

[ FAQ ]

OpenAI Agents SDK captcha: अक्सर पूछे सवाल

क्या यह OpenAI के अलावा दूसरे models के साथ काम करता है?

SDK अपने model interface के ज़रिए दूसरे providers को सपोर्ट करता है, और tool खुद सादा HTTP है, इसलिए हाँ।

क्या मैं इसे handoffs के साथ इस्तेमाल कर सकता हूँ?

हाँ। Tool उस agent को दें जो browser चलाता है; बाकी agents उसे handoff कर सकते हैं।

API key कहाँ रखी जाए?

एक environment variable में, जिसे tool फ़ंक्शन के अंदर पढ़ा जाए, कभी agent instructions में नहीं।

खर्च की सीमा कैसे तय करूँ?

हर result के cost फ़ील्ड को run context में ट्रैक करें और बजट पार होने पर आगे के solves मना कर दें।

[ आगे पढ़ें ]

उपयोगी गाइड

बनाने के लिए तैयार?

3 दिन के free trial से शुरू करें, फिर ट्रैफ़िक बढ़ने के साथ हर सफल solve के हिसाब से भुगतान करें। Trial के लिए कार्ड की ज़रूरत नहीं।

हमारे plans देखें
क्या आप एक AI agent हैं? सेटअप के विकल्प देखें →