
Rajinder Singh
Deep Learning Researcher

solve_turnstile पायथन फ़ंक्शन के साथ पंजीकृत करें।websiteURL और websiteKey के साथ CapSolver के दस्तावेज़ीकृत AntiTurnstileTaskProxyLess कार्य का उपयोग करें।action और cdata मौजूद होते हैं, तो उन्हें वैकल्पिक रूप से शामिल करें।AutoGen में Cloudflare Turnstile को सुरक्षित ढंग से हल करने का सबसे अच्छा तरीका यह है कि CapSolver को एक प्रकार के, संकीर्ण रूप से सीमित कार्य टूल के रूप में पंजीकृत करें। AutoGen तय कर सकता है कि वर्कफ़्लो को Turnstile समाधान की आवश्यकता है, लेकिन निर्धारित पायथन कोड को लक्ष्य URL और साइट कुंजी की पुष्टि करनी चाहिए, दस्तावेज़ीकृत AntiTurnstileTaskProxyLess बनाना चाहिए और केवल परिणामी टोकन वापस करना चाहिए। ब्राउज़र लेयर फिर उस टोकन को समान अधिकृत वर्कफ़्लो में लगाता है और जारी रखता है। इस व्यवस्था में CapSolver AI एजेंट दस्तावेज़ के "मॉडल निर्णय, कोर निष्पादन" सीमा का पालन करता है और AutoGen के आधिकारिक टूल-पंजीकरण मॉडल का अनुसरण करता है। इस गाइड में आप सॉल्वर फ़ंक्शन बनाएंगे, इसे कॉलर और एक्सीक्यूटर एजेंट्स के साथ पंजीकृत करेंगे, वैकल्पिक विज़ार्ड मेटाडेटा का निपटारा करेंगे, सीमित पुनर्प्रयास के साथ जोड़ेंगे और उत्पादन नियंत्रण डिज़ाइन करेंगे जो मॉडल तक पासवर्ड या असीमित लक्ष्यों को नहीं पहुंचाएगा।
AutoGen टूल्स पूर्वनिर्धारित फ़ंक्शन होते हैं जिन्हें एजेंट्स कॉल कर सकते हैं। आधिकारिक AutoGen टूल-उपयोग गाइड बताता है कि एजेंट के द्वारा अर्जित कोड के बजाय टूल्स एजेंट के कार्य को अधिक कुशलता से सीमित करते हैं। प्रकार के निर्देश और संक्षिप्त विवरण का उपयोग टूल स्कीमा स्वचालित रूप से बनाने के लिए किया जाता है।
यह सीमा विशेष रूप से चुनौती निपटान के लिए महत्वपूर्ण है। एजेंट को आपके CapSolver API कुंजी, अनुमत वेबसाइट चुनने या ब्राउज़र सत्र को सीधे नियंत्रित करने की अनुमति नहीं होनी चाहिए। इसे केवल एक अधिकृत पृष्ठ के लिए समाधान की अनुरोध करना चाहिए जो स्वचालन वर्कफ़्लो द्वारा पहले से ही मंजूर किया गया है।
CapSolver AI ब्लॉग एजेंट-ओरिएंटेड पैटर्न को कवर करता है, जबकि CapSolver AI और स्वचालन FAQ बताता है कि समाधान टूल्स कैसे नियंत्रित स्वचालन में फिट होते हैं।
CapSolver के आधिकारिक Turnstile दस्तावेज़ीकरण में AntiTurnstileTaskProxyLess टास्क प्रकार बताया गया है। आवश्यक पैरामीटर websiteURL और websiteKey हैं। वैकल्पिक मेटाडेटा में विज़ार्ड के action और cdata मान शामिल हो सकते हैं।
| पैरामीटर | आवश्यक | स्रोत | उद्देश्य |
|---|---|---|---|
type |
हाँ | निर्धारित मान | AntiTurnstileTaskProxyLess होना चाहिए |
websiteURL |
हाँ | वर्तमान अधिकृत पृष्ठ | टोकन को लक्ष्य पृष्ठ से जोड़ता है |
websiteKey |
हाँ | Turnstile विज़ार्ड | साइट के Turnstile कॉन्फ़िगरेशन की पहचान करता है |
metadata.action |
नहीं | data-action विशेषता |
विज़ार्ड द्वारा उपयोग किए गए क्रिया मान को संरक्षित करता है |
metadata.cdata |
नहीं | data-cdata विशेषता |
विज़ार्ड से जुड़े ग्राहक डेटा को संरक्षित करता है |
Cloudflare प्रबंधित, गैर-अंतर्क्रियात्मक और अदृश्य विज़ार्ड मोड के बारे में दस्तावेज़ करता है। Cloudflare Turnstile अवलोकन बताता है कि विज़ार्ड ब्राउज़र संकेतों का मूल्यांकन कैसे करता है और सर्वर-साइड सत्यापन के लिए टोकन जारी करता है। CapSolver समर्थित उप-प्रकार को स्वचालित रूप से संभालता है, इसलिए कार्य के पास उप-प्रकार के क्षेत्र की आवश्यकता नहीं होती है।
pip install pyautogen capsolver
पर्यावरण चर के रूप में प्रमाण-पत्र संग्रहीत करें:
export CAPSOLVER_API_KEY="CAP-xxxxxxxxxxxxxxxx"
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
उपयोक्ता-प्रदत्त दस्तावेज़ में वर्णित नए CapSolver एजेंट व्यवस्था के लिए, टीम नाभिक और एडेप्टर पैकेज भी स्थापित कर सकती हैं:
pip install git+https://github.com/capsolver-ai/capsolver-core.git
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
नीचे दिए गए सीधे capsolver.solve() फ़ंक्शन में आधिकारिक Turnstile कार्य क्षेत्रों का उपयोग किया जाता है और इसे AutoGen टूल के रूप में लपेटा जाता है। इससे फ्रेमवर्क एकीकरण सरल रहता है और कार्य भार आसानी से सुनवाई करने योग्य होता है।
मॉडल को केवल गैर-गोपनीय इनपुट मिलना चाहिए। CapSolver कुंजी फ़ंक्शन के रनटाइम वातावरण में रहती है।
import os
from typing import Annotated
from urllib.parse import urlparse
import capsolver
capsolver.api_key = os.environ["CAPSOLVER_API_KEY"]
ALLOWED_HOSTS = {
"staging.example.com",
"app.example.com",
}
def solve_turnstile(
website_url: Annotated[str, "अनुमोदित पृष्ठ URL जिसमें Turnstile है"],
website_key: Annotated[str, "विज़ार्ड से Turnstile साइट कुंजी"],
action: Annotated[str, "वैकल्पिक data-action मान"] = "",
cdata: Annotated[str, "वैकल्पिक data-cdata मान"] = "",
) -> dict:
"""अनुमोदित पृष्ठ के लिए Turnstile हल करें और टोकन वापस करें।"""
parsed = urlparse(website_url)
if parsed.scheme != "https" or parsed.hostname not in ALLOWED_HOSTS:
return {
"success": False,
"error": "लक्ष्य अनुमोदित होस्ट अनुमति सूची में नहीं है",
}
if not website_key.startswith("0x4"):
return {
"success": False,
"error": "अपेक्षित Turnstile साइट-कुंजी फॉर्मेट नहीं है",
}
task = {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
}
metadata = {}
if action:
metadata["action"] = action
if cdata:
metadata["cdata"] = cdata
if metadata:
task["metadata"] = metadata
try:
solution = capsolver.solve(task)
token = solution.get("token")
if not token:
return {"success": False, "error": "कोई Turnstile टोकन वापस नहीं किया गया"}
return {
"success": True,
"token": token,
"solution_type": solution.get("type", "turnstile"),
}
except Exception as exc:
return {"success": False, "error": str(exc)}
अनुमति सूची इरादत से है। इसके बिना, एक प्रॉम्प्ट एजेंट को असंबंधित लक्ष्यों पर भेज सकता है। उत्पादन प्रणालियां अनुमति सूची को टेंटेंट कॉन्फ़िगरेशन, कार्य अनुमतियों या हस्ताक्षरित वर्कफ़्लो मैनिफेस्ट से बना सकती हैं।
AutoGen के पारंपरिक AgentChat API में एजेंट जो टूल कॉल का प्रस्ताव देता है और एक्सीक्यूटर जो इसे चलाता है, अलग होते हैं। आधिकारिक दस्तावेज़ में register_function() के रूप में एक उपयोगी तरीका प्रदान किया गया है जिसके द्वारा एक ही फ़ंक्शन को दोनों एजेंट्स के साथ पंजीकृत किया जा सकता है।
import os
from autogen import ConversableAgent, register_function
assistant = ConversableAgent(
name="TurnstileCoordinator",
system_message=(
"केवल अनुमोदित स्वचालन वर्कफ़्लो जारी रखें। जब एप्लिकेशन टर्नस्टाइल विज़ार्ड रिपोर्ट करता है और ठीक पृष्ठ URL और साइट कुंजी प्रदान करता है, तो केवल solve_turnstile कॉल करें। कभी-कभी लक्ष्य या पासवर्ड मांगें। अगर टूल दो बार विफल हो जाता है, तो बंद करें और ऑपरेटर समीक्षा मांगें।"
),
llm_config={
"config_list": [{
"model": "gpt-4o-mini",
"api_key": os.environ["OPENAI_API_KEY"],
}]
},
)
executor = ConversableAgent(
name="TurnstileToolExecutor",
llm_config=False,
human_input_mode="NEVER",
)
register_function(
solve_turnstile,
caller=assistant,
executor=executor,
name="solve_turnstile",
description=(
"अनुमोदित HTTPS पृष्ठ के लिए Cloudflare Turnstile को इसके ठीक साइट कुंजी और वैकल्पिक क्रिया/cdata मानों के साथ हल करें।"
),
)
AutoGen फ़ंक्शन साइनेचर और प्रकार निर्देशों से टूल स्कीमा बनाता है। विवरण को ऑपरेशनल और विशिष्ट रखें ताकि मॉडल को पता रहे कि टूल कब उपयुक्त है।
अन्य फ्रेमवर्क पैटर्न के लिए, CapSolver स्वचालन ट्यूटोरियल और CapSolver उत्पाद पृष्ठ की समीक्षा करें।
ब्राउज़र या ओर्केस्ट्रेशन लेयर को विज़ार्ड की खोज करनी चाहिए और ठीक पैरामीटर प्रदान करने चाहिए। मॉडल को सीक्रेट निरीक्षण या अनियंत्रित पृष्ठों के अनुसंधान के माध्यम से लक्ष्य खोजने की अनुमति नहीं होनी चाहिए।
chat_result = executor.initiate_chat(
assistant,
message=(
"अनुमोदित स्टेजिंग वर्कफ़्लो को Cloudflare Turnstile मिला।\n"
"website_url=https://staging.example.com/account-check\n"
"website_key=0x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n"
"action=account_check\n"
"cdata=\n"
"एक बार पंजीकृत टूल कॉल करें और संरचित परिणाम वापस करें।"
),
max_turns=4,
)
उत्पादन डिज़ाइन में, संरचित एप्लिकेशन कोड वैधृत रनटाइम डेटा से इस संदेश का निर्माण करना चाहिए। अनविश्वसनीय प्राकृतिक-भाषा इनपुट से साइट कुंजी या लक्ष्य URL सीधे स्वीकार न करें।
एक Turnstile टोकन आमतौर पर मूल फॉर्म या सर्वर अनुरोध द्वारा उपभोग किया जाता है। ठीक एकीकरण अनुमोदित एप्लिकेशन पर निर्भर करता है। एक ब्राउज़र वर्कफ़्लो के लिए, वापस किए गए टोकन को निर्धारित कोड में वापस भेजें जो विज़ार्ड और सबमिशन पथ को जानता है।
async def apply_turnstile_token(page, token: str):
await page.evaluate(
"""
(token) => {
const response = document.querySelector(
'input[name="cf-turnstile-response"]'
);
if (!response) {
throw new Error('Turnstile response field not found');
}
response.value = token;
response.dispatchEvent(new Event('input', { bubbles: true }));
response.dispatchEvent(new Event('change', { bubbles: true }));
}
""",
token,
)
कुछ एप्लिकेशन कॉलबैक-आधारित रेंडरिंग या सर्वर-प्रबंधित सबमिशन का उपयोग करते हैं। अपने स्वयं के स्टेजिंग एप्लिकेशन के साथ परीक्षण करें और अपने द्वारा समर्थित एकीकरण का अनुसरण करें, बिना यह मानकर कि छिपे क्षेत्र को सेट करना पर्याप्त है। Cloudflare के सर्वर-साइड सत्यापन दस्तावेज़ीकरण बताता है कि साइट मालिक को Siteverify के साथ टोकन की पुष्टि करनी चाहिए।
CapSolver Turnstile गाइड आगे के कार्यात्मक संदर्भ प्रदान करता है, और CapSolver समस्या निवारण FAQ अमान्य या अस्वीकृत टोकन के निदान में मदद करता है।
एजेंट को अनंत रूप से पुनर्प्रयास की अनुमति नहीं दें। प्रयासों की सीमा रखें और विफलताओं को वर्गीकृत करें ताकि स्वचालन सुरक्षित रूप से बंद हो सके।
import asyncio
MAX_ATTEMPTS = 2
async def solve_with_policy(params: dict) -> dict:
last_error = "अज्ञात त्रुटि"
for attempt in range(1, MAX_ATTEMPTS + 1):
result = solve_turnstile(**params)
if result.get("success"):
return {
**result,
"attempt": attempt,
}
last_error = result.get("error", last_error)
if "allowlist" in last_error or "site-key" in last_error:
break
await asyncio.sleep(2 * attempt)
return {
"success": False,
"error": last_error,
"requires_operator_review": True,
}
केवल सुरक्षित मेटाडेटा लॉग करें: लक्ष्य होस्टनाम, कार्य प्रकार, अवधि, परिणाम, सामान्यीकृत त्रुटि और प्रयास संख्या। पूरा समाधान टोकन, API कुंजी, सत्र कुकी या फॉर्म सामग्री को लॉग न करें।
बोनस कोड: CapSolver डैशबोर्ड पर WEBS कोड का उपयोग करें ताकि प्रत्येक भरोसे पर 5% अतिरिक्त बोनस मिले।
| नियंत्रण | सिफारिश किया गया कार्यान्वयन |
|---|---|
| लक्ष्य अधिकृत | HTTPS होस्टनाम अनुमति सूची या हस्ताक्षरित कार्य मैनिफेस्ट |
| गोपनीयता अलगाव | CapSolver कुंजी केवल एक्सीक्यूटर प्रक्रिया तक उपलब्ध हो |
| टूल स्कीमा | टाइप किए गए पैरामीटर और संक्षिप्त विवरण |
| वैकल्पिक मेटाडेटा | जब विज़ार्ड द्वारा उपयोग किए जाते हैं, तो केवल action और cdata भेजें |
| पुनर्प्रयास नीति | अधिकतम दो प्रयास, फिर मानव समीक्षा |
| टोकन नियंत्रण | लॉग में पूरा टोकन कभी न बर्दाश्त करें |
| ब्राउज़र एकीकरण | टोकन को उसी अनुमोदित वर्कफ़्लो में लागू करें |
| सुसंगतता | शर्तों, दर सीमाओं, गोपनीयता और उद्देश्य सीमाओं का सम्मान करें |
CapSolver CAPTCHA-हल करने वाला FAQ सामान्य कार्य व्यवहार के बारे में बताता है, जबकि CapSolver वेब-स्क्रैपिंग FAQ ऑटोमेटेड संग्रह के ऑपरेशनल नियंत्रण के बारे में बताता है।
इस वर्कफ़्लो का उपयोग केवल आपके द्वारा मालिक, परीक्षण या स्पष्ट अनुमति के साथ स्वचालित करने वाले एप्लिकेशन पर ही करें। एक सॉल्वर टोकन निजी डेटा तक पहुंच, लेन-देन जमा करना, खाता बनाना या साइट की शर्तों को अनदेखा करने की अनुमति नहीं देता है। दर सीमाओं को लागू करें, लॉग रखें और डेटा बदलने या उपयोगकर्ताओं पर प्रभाव डालने वाले कार्यों के लिए पुष्टि की आवश्यकता होती है।
AutoGen में Cloudflare Turnstile को विश्वसनीय रूप से हल करने के लिए, CapSolver को खुले एजेंट तर्क के बजाय सीमित टूल के रूप में बनाएं। AutoGen सहायक टूल के उपयोग के उपयुक्त होने का निर्णय लेता है, एक्सीक्यूटर एक वैध AntiTurnstileTaskProxyLess चलाता है, और ब्राउज़र लेयर उसी अनुमोदित वर्कफ़्लो में परिणामी टोकन का उपयोग करता है। इस विभाजन से एकीकरण को आसानी से परीक्षण, सुनवाई और सुरक्षा करना संभव हो जाता है।
CapSolver से शुरू करें, अपने नियंत्रित स्टेजिंग पृष्ठ पर प्रवाह की पुष्टि करें, और उत्पादन डेप्लॉयमेंट से पहले होस्ट अनुमति सूची, सीमित पुनर्प्रयास और टोकन-सुरक्षित लॉगिंग जोड़ें।
दस्तावेज़ीकृत कार्य प्रकार AntiTurnstileTaskProxyLess है, इसलिए आपको कार्य के लिए प्रॉक्सी प्रदान नहीं करना होता है। आपके ब्राउज़र वर्कफ़्लो में अपना नेटवर्क कॉन्फ़िगरेशन हो सकता है।
websiteURL और websiteKey आवश्यक हैं। metadata.action और metadata.cdata वैकल्पिक हैं और विज़ार्ड द्वारा उपयोग किए जाने पर ही प्रदान किए जाने चाहिए।
अधिक सुरक्षित डिज़ाइन में निर्धारित ब्राउज़र या एप्लिकेशन लेयर को साइट कुंजी निकालने और पुष्टि करने के लिए आवश्यक है, फिर इसे टूल को प्रदान करें। मॉडल को मान खोजने या अनुमान लगाने की अनुमति नहीं होनी चाहिए।
कॉलर टूल कॉल का प्रस्ताव दे सकता है, जबकि एक्सीक्यूटर एलएम के बिना नियंत्रित पायथन कोड चला सकता है। इससे गोपनीयता और रनटाइम अनुमतियां रीजनिंग एजेंट से दूर रहती हैं।
पृष्ठ URL, साइट की कुंजी, वैकल्पिक कार्रवाई या cdata, टोकन की ताजगी, और जमा पथ की पुष्टि करें। अधिकतम एक बार या दो बार पुनः प्रयास करें, फिर लूपिंग के बजाय ऑपरेटर समीक्षा के लिए रुकें।
एक प्रमाण-आधारित कॉम्पोसियो समीक्षा जो सत्र, 1,000 से अधिक टूलकिट्स, प्रबंधित प्रमाणीकरण, एमसीपी, मूल्य निर्धारण, लाभ, सीमाएं और विकल्प शामिल करता है।

जानें कैसे कैपसॉल्वर को कॉम्पोसियो, प्लेयराइट और ओपनएआई एजेंट एसडीके के साथ एकीकृत करें अधिकृत reCAPTCHA v2 और छवि CAPTCHA ब्राउज़र ऑटोमेशन के लिए।
