कैसे हल करें Cloudflare टर्नस्टाइल LlamaIndex एजेंट्स में

Rajinder Singh
How to use CapSolver
27-Aug-2026
संक्षिप्त निष्कर्ष
- LlamaIndex
FunctionTool.from_defaults()के साथ एक संकीर्ण CapSolver Turnstile फ़ंक्शन को लपेटें। - ठीक पेज URL और साइट की चाबी के साथ दस्तावेज़ीकृत
AntiTurnstileTaskProxyLessकार्य का उपयोग करें। - जब अधिकृत पेज इन वैकल्पिक मानों को प्रदर्शित करता है, तो केवल
actionऔरcdataभेजें। - लंबे समय तक एजेंट मेमोरी में संग्रहीत करने के बजाय निर्धारित ब्राउज़र कोड को समाधान टोकन वापस करें।
- अनुमोदित-होस्ट वैधता, एक सीमित पुन: प्रयास, ट्रेस रेडैक्शन और उपयोगकर्ता समीक्षा शाखा के साथ उत्पादन में जाएं।
परिचय
LlamaIndex एजेंट में Cloudflare Turnstile को हल करने का सबसे सुरक्षित तरीका यह है कि CapSolver को एक प्रकार के कार्य उपकरण के रूप में प्रस्तुत करें जबकि ब्राउज़र स्टेट, गोपनीयता और सत्यापन चेक एजेंट में नहीं हों। LlamaIndex यह निर्णय ले सकता है कि एक समर्थित चुनौती अगले अनुमोदित चरण को रोकती है, लेकिन निर्धारित पायथन को लक्ष्य की पुष्टि करनी चाहिए, दस्तावेज़ीकृत AntiTurnstileTaskProxyLess बनाना चाहिए, और ब्राउज़र कंट्रोलर को एक छोटे जीवनकाल वाला समाधान टोकन वापस करना चाहिए। यह CapSolver AI एजेंट विकास व्यवस्था का अनुसरण करता है: मॉडल निर्णय लेता है, एक उपकरण अनुकूलक क्रिया निर्धारित करता है, और मुख्य समाधान लेयर इसे कार्यान्वित करता है। यह गाइड ठीक Turnstile क्षेत्रों, LlamaIndex FunctionTool के कार्यान्वयन, FunctionAgent के कार्य प्रवाह, सुरक्षित टोकन हस्तांतरण, सीमित पुन: प्रयास और QA, RPA और अनुमति ब्राउज़र ऑटोमेशन के लिए ज़िम्मेदार उपयोग नियंत्रण के साथ दिखाता है।
LlamaIndex FunctionTool क्यों एक अच्छा फिट है
LlamaIndex उपकरणों को एजेंट-संबंधित API के रूप में व्यवहार करता है। इसके आधिकारिक उपकरण दस्तावेज़ीकरण बताता है कि FunctionTool सिंक्रनस या असिंक्रनस पायथन फ़ंक्शन को लपेट सकता है और फ़ंक्शन साइनेचर से स्कीमा निगमित कर सकता है। उपकरण का नाम, वर्णन, अनोटेशन और डॉकस्ट्रिंग मॉडल द्वारा इसका उपयोग कब करना है, इसका निर्णय लेता है।
इस सीमा का उपयोग चुनौती बरामदी के लिए उपयोगी है क्योंकि मॉडल कभी भी अर्थहीन समाधान कोड उत्पन्न नहीं कर सकता है या CapSolver API कुंजी प्राप्त नहीं कर सकता है। एक संकीर्ण फ़ंक्शन केवल अनुमोदित पेज URL, Turnstile साइट की चाबी और वैकल्पिक विज्ञापन मेटाडेटा स्वीकार कर सकता है।
CapSolver AI ब्लॉग एजेंट एकीकरण को कवर करता है, जबकि CapSolver AI और ऑटोमेशन FAQ बताता है कि चुनौती बरामदी कैसे एक मौजूदा एजेंट स्टैक के साथ पूरक हो सकता है।
आधिकारिक Turnstile कार्य की समझ
CapSolver के Cloudflare Turnstile दस्तावेज़ीकरण में AntiTurnstileTaskProxyLess निर्दिष्ट किया गया है। कार्य में websiteURL और websiteKey आवश्यक हैं। वैकल्पिक मेटाडेटा में विज्ञापन के action और cdata मान शामिल हो सकते हैं।
| क्षेत्र | आवश्यक | स्रोत | उद्देश्य |
|---|---|---|---|
type |
हाँ | निश्चित | AntiTurnstileTaskProxyLess |
websiteURL |
हाँ | अनुमोदित वर्तमान पेज | समाधान के साथ पेज का संबंध बनाए रखें |
websiteKey |
हाँ | Turnstile विज्ञापन | विज्ञापन कॉन्फ़िगरेशन की पहचान करें |
metadata.action |
नहीं | data-action |
विज्ञापन कार्य मान के बरकरार रखें |
metadata.cdata |
नहीं | data-cdata |
विज्ञापन द्वारा उपयोग किया गया ग्राहक डेटा बरकरार रखें |
CapSolver स्वचालित रूप से प्रबंधित, गैर-अंतर्क्रियात्मक और अदृश्य Turnstile प्रस्तुतियों का समर्थन करता है, इसलिए कार्य में एक उप-प्रकार की आवश्यकता नहीं होती है। Cloudflare के Turnstile दस्तावेज़ीकरण विज्ञापन और साइट मालिक द्वारा उपयोग किए गए सर्वर-साइड सत्यापन प्रक्रिया का वर्णन करता है।
LlamaIndex और CapSolver स्थापित करें
bash
pip install llama-index llama-index-llms-openai capsolver
उपयोक्ता के दस्तावेज़ीकरण में प्रदान किए गए विस्तृत CapSolver एजेंट व्यवस्था के लिए, कोर और एजेंट पैकेज भी स्थापित करें:
bash
pip install git+https://github.com/capsolver-ai/capsolver-core.git
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
प्रॉम्प्ट के बाहर गोपनीयता को विन्यस्त करें:
bash
export CAPSOLVER_API_KEY="CAP-xxxxxxxxxxxxxxxx"
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
नीचे दिए गए सीधे SDK उदाहरण में ठीक Turnstile कार्य क्षेत्रों का उपयोग किया गया है। LlamaIndex फ्रेमवर्क शेल को प्रदान करता है; CapSolver कार्य करता है।
एक प्रकार के Turnstile फ़ंक्शन बनाएं
कैपसॉल्वर को भेजने से पहले यूआरएल की पुष्टि करें। मॉडल किसी भी अनुमोदित होस्टनाम का चयन नहीं कर सकता है।
python
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",
"qa.example.com",
}
def solve_turnstile(
website_url: Annotated[str, "अनुमोदित HTTPS पेज जिसमें Turnstile है"],
website_key: Annotated[str, "पेज से अनुमोदित Turnstile साइट की चाबी"],
action: Annotated[str, "वैकल्पिक data-action मान"] = "",
cdata: Annotated[str, "वैकल्पिक data-cdata मान"] = "",
) -> dict:
"""अनुमोदित पेज के लिए Cloudflare 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": "कोई टोकन वापस नहीं किया गया"}
return {
"success": True,
"token": token,
"solution_type": solution.get("type", "turnstile"),
}
except Exception as exc:
return {"success": False, "error": str(exc)}
फॉर्मेट जांच एक उपयोगी शुरुआती चेतावनी है, लेकिन अनुमोदित पेज से ठीक पैरामीटर निकालने के स्थान पर नहीं है। विकास के दौरान विज्ञापन के विवरण की जांच करने के लिए CapSolver ब्राउज़र एक्सटेंशन गाइड का उपयोग करें।
फ़ंक्शन को LlamaIndex के साथ लपेटें
FunctionTool.from_defaults() फ़ंक्शन साइनेचर और डॉकस्ट्रिंग को एजेंट उपकरण स्कीमा में बदल देता है।
python
from llama_index.core.tools import FunctionTool
turnstile_tool = FunctionTool.from_defaults(
fn=solve_turnstile,
name="solve_turnstile",
description=(
"केवल अनुमोदित HTTPS पेज के लिए Cloudflare Turnstile हल करें। "
"विश्वसनीय ब्राउज़र कंट्रोलर द्वारा प्रदान किए गए ठीक पेज URL, साइट की चाबी और वैकल्पिक क्रिया/सीडीटीए का उपयोग करें।"
),
)
नाम छोटा रखें और वर्णन ऑपरेशनल रखें। उपकरण को सामान्य पहुंच योग्यता के रूप में वर्णित न करें। मॉडल को यह समझ में आना चाहिए कि यह एक अनुमोदित कार्य प्रवाह में एक बरामदी क्रिया है।
LlamaIndex FunctionAgent में उपकरण जोड़ें
LlamaIndex के FunctionAgent एक LLM के उपकरण कॉल क्षमता का उपयोग करके उपकरण चुनता है और निष्पादित करता है।
python
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai import OpenAI
llm = OpenAI(model="gpt-4o-mini", temperature=0)
agent = FunctionAgent(
tools=[turnstile_tool],
llm=llm,
system_prompt=(
"आप केवल अनुमोदित ब्राउज़र कार्य प्रवाह कार्य करते हैं। "
"विश्वसनीय एप्लिकेशन द्वारा ठीक पेज URL और साइट की चाबी प्रदान करते समय ही solve_turnstile कॉल करें। "
"कभी-भी लक्ष्य, कुंजी, क्रिया या सीडीटीए न बनाएं। एक बार उपकरण कॉल करें। यदि यह विफल रहता है, तो बंद करें और ऑपरेटर समीक्षा मांगें।"
),
)
निर्धारित ब्राउज़र कोड द्वारा उत्पन्न पैरामीटर के साथ चलाएं:
python
import asyncio
async def main():
response = await agent.run(
"अनुमोदित स्टेजिंग कार्य प्रवाह ने https://staging.example.com/account-check पर Turnstile पाया जिसकी साइट की चाबी 0x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA और क्रिया account_check है। "
"रजिस्टर्ड उपकरण को एक बार कॉल करें और संरचित परिणाम वापस करें।"
)
print(response)
asyncio.run(main())
उत्पादन में, अविश्वसनीय उपयोक्ता पाठ से सीधे इस संदेश का निर्माण बचें। ब्राउज़र कंट्रोलर को मान निकालने, पुष्टि करने और सीरियलाइज़ करने की आवश्यकता होती है।
टोकन उपभोग को मॉडल के बाहर रखें
एक Turnstile टोकन छोटे जीवनकाल वाला होता है और साइट कार्य प्रवाह से जुड़ा होता है। जब संभव हो, विश्वसनीय उपकरण परिणाम से सीधे निर्धारित ब्राउज़र कोड में टोकन पारित करें।
python
async def apply_turnstile_token(page, token: str) -> None:
await page.evaluate(
"""
(token) => {
const field = document.querySelector(
'input[name="cf-turnstile-response"]'
);
if (!field) {
throw new Error('Turnstile response field not found');
}
field.value = token;
field.dispatchEvent(new Event('input', { bubbles: true }));
field.dispatchEvent(new Event('change', { bubbles: true }));
}
""",
token,
)
कुछ एप्लिकेशन बुलाने-आधारित रेंडरिंग या सर्वर-प्रबंधित सबमिशन का उपयोग करते हैं। अपने स्वयं के स्टेजिंग एप्लिकेशन के साथ परीक्षण करें और इसके समर्थित एकीकरण का अनुसरण करें। Cloudflare के साइटवेरिफ़ाई दस्तावेज़ीकरण बताता है कि साइट मालिक टोकन के सर्वर-साइड सत्यापन करता है।
CapSolver Turnstile गाइड के लिए अनुप्रयोग संदर्भ प्रदान करता है, और CapSolver समस्या निवारण FAQ अस्वीकृत समाधान के निदान में मदद करता है।
एक सीमित पुन: प्रयास जोड़ें
एजेंट को अनंत रूप से चलाए नहीं रखें। वैधता विफलताओं को अंतिम वर्गीकृत करें, और अस्थायी समय सीमा के लिए अधिकतम एक पुन: प्रयास की अनुमति दें।
python
import asyncio
async def solve_with_policy(params: dict) -> dict:
last_error = "अज्ञात त्रुटि"
for attempt in range(1, 3):
result = solve_turnstile(**params)
if result.get("success"):
return {**result, "attempt": attempt}
last_error = result.get("error", last_error)
normalized = last_error.lower()
if "अनुमति सूची" में है या "साइट-की" में है:
break
if attempt == 1:
await asyncio.sleep(2)
return {
"success": False,
"error": last_error,
"requires_operator_review": True,
}
होस्टनाम, कार्य प्रकार, अवधि, प्रयास संख्या और सामान्य नतीजा के साथ लॉग करें। कभी-भी पूर्ण टोकन, API कुंजी, कुकीज़ या फॉर्म सामग्री न लॉग करें।
टोकन मोड बनाम ब्राउज़र मोड
| मोड | बेस्ट फॉर | इनपुट | आउटपुट |
|---|---|---|---|
| टोकन मोड | ज्ञात Turnstile URL और साइट की चाबी | URL, की, वैकल्पिक मेटाडेटा | समाधान टोकन |
| ब्राउज़र मोड | एक अस्थायी विज्ञापन में एक मौजूदा Playwright सेशन | जीवंत पेज ऑब्जेक्ट | पेज बरामदी परिणाम |
| मानव समीक्षा | बार-बार विफलता या अस्वीकृत अवस्था | रेडैक्टेड त्रुटि और स्क्रीनशॉट संदर्भ | ऑपरेटर निर्णय |
उपयोक्ता प्रदान किए गए CapSolver एजेंट दस्तावेज़ीकरण में solve_captcha को कोर टोकन समाधान के लिए मैप किया गया है और solve_on_page को ब्राउज़र बरामदी के लिए मैप किया गया है। यदि पेज डायनामिक है, तो ब्राउज़र एक्स्ट्रा स्थापित करें और मूल ब्राउज़र सेशन अक्षुण्ण रखें:
bash
pip install "capsolver-agent[browser] @ git+https://github.com/capsolver-ai/capsolver-agent.git"
संबंधित ब्राउज़र कार्य प्रवाह के लिए CapSolver ऑटोमेशन ट्यूटोरियल का उपयोग करें और CapSolver उत्पाद पृष्ठ पर समर्थित समाधान श्रेणियों के लिए देखें।
बोनस कोड: CapSolver डैशबोर्ड पर WEBS कोड का उपयोग करें ताकि प्रत्येक भरोसे पर 5% अतिरिक्त बोनस मिले।
उत्पादन नियंत्रण
एक उत्पादन LlamaIndex Turnstile एकीकरण में अनुमोदित-होस्ट रजिस्टर, गोपनीयता अलगाव, छोटे जीवनकाल वाले टोकन हस्तांतरण, एक सीमित पुन: प्रयास, ट्रेस रेडैक्शन, ऑपरेटर समीक्षा और पठनीय ऑटोमेशन और उच्च प्रभाव वाले कार्यों के बीच सख्त अलगाव का उपयोग करना चाहिए।
| नियंत्रण | सिफारिश किया गया कार्यान्वयन |
|---|---|
| लक्ष्य अनुमति | टेंट विशिष्ट HTTPS अनुमति सूची |
| पैरामीटर स्रोत | विश्वसनीय ब्राउज़र कंट्रोलर |
| गोपनीयता संग्रहण | केवल एक्सीक्यूटर पर्यावरण |
| पुन: प्रयास नीति | अस्थायी त्रुटियों के लिए एक पुन: प्रयास |
| टोकन नियंत्रण | ब्राउज़र को सीधे हस्तांतरित करें; लंबे समय तक संग्रहीत न करें |
| ट्रेसिंग | टोकन और कुकीज़ रेडैक्ट करें |
| अंतिम कार्य | सबमिशन या बदलाव के लिए पुष्टि की आवश्यकता होती है |
CapSolver CAPTCHA-समाधान FAQ कार्य चक्र के बारे में बताता है, और CapSolver वेब-स्क्रैपिंग FAQ ऑपरेशनल विचारों को कवर करता है।
ज़िम्मेदार उपयोग
इस एकीकरण का केवल उपयोग आपके द्वारा स्वामित्व, परीक्षण या ऑटोमेशन के लिए अनुमति दिए गए एप्लिकेशन पर करें। चुनौती समाधान निजी डेटा तक पहुंच, खाता बनाने, लेन-देन जमा करने या साइट की शर्तों को अनदेखा करने की अनुमति नहीं देता है। दर-सीमा लागू करें, एक लेखा ट्रेल बनाए रखें और किसी भी डेटा बदलाव या उपयोक्ता प्रभावित करने वाले कार्य के लिए पुष्टि की आवश्यकता होती है।
निष्कर्ष
LlamaIndex में Cloudflare Turnstile को विश्वसनीय रूप से हल करने के लिए, CapSolver को एक संकीर्ण FunctionTool के रूप में बनाएं और अनुमोदन, गोपनीयता, पुन: प्रयास और टोकन उपभोग को निर्धारित कोड में रखें। LlamaIndex एजेंट निर्णय लेता है कि बरामदी की आवश्यकता है, उपकरण दस्तावेज़ीकृत AntiTurnstileTaskProxyLess बनाता है, और ब्राउज़र वापस वापस आता है जिसमें वापस टोकन के साथ एक ही अनुमोदित कार्य प्रवाह होता है।
CapSolver से शुरू करें, अपने नियंत्रित स्टेजिंग पेज पर एकीकरण की पुष्टि करें, और उत्पादन से पहले अनुमति सूची और ट्रेस रेडैक्शन जोड़ें।
अक्सर पूछे जाने वाले प्रश्न
मैं कौन सा LlamaIndex उपकरण वर्ग उपयोग करूं?
FunctionTool.from_defaults() का उपयोग एक प्रकार के सिंक्रनस या असिंक्रनस पायथन फ़ंक्शन को लपेटने के लिए करें। एक उपकरण-कॉलिंग मॉडल के लिए, परिणामस्वरूप उपकरण को FunctionAgent के साथ पारित करें।
क्या Turnstile कार्य के लिए प्रॉक्सी की आवश्यकता है?
दस्तावेज़ीकृत AntiTurnstileTaskProxyLess के साथ CapSolver के प्रॉक्सी-रहित कार्य पथ का उपयोग करता है, इसलिए कार्य में प्रॉक्सी प्रदान नहीं करना होता है।
कौन से क्षेत्र आवश्यक हैं?
websiteURL और websiteKey आवश्यक हैं। जब अनुमोदित विज्ञापन द्वारा उन्हें प्रदर्शित किया जाता है, तो केवल metadata.action और metadata.cdata शामिल करें।
क्या टोकन को LlamaIndex मेमोरी में संग्रहीत करना चाहिए?
नहीं। विश्वसनीय ब्राउज़र कोड के साथ सीधे हस्तांतरण करें और एजेंट को केवल रेडैक्टेड सफलता या विफलता स्थिति वापस करें।
बार-बार विफलता के बाद क्या होना चाहिए?
यूआरएल, साइट की चाबी, वैकल्पिक मेटाडेटा और पेज स्थिति की पुष्टि करें। एक सीमित पुन: प्रयास के बाद, वर्कफ़्लो को ऑपरेटर समीक्षा के लिए रास्ता दें।
अनुपालन अस्वीकरण: इस ब्लॉग पर प्रदान की गई जानकारी केवल सूचनात्मक उद्देश्यों के लिए है। CapSolver सभी लागू कानूनों और विनियमों का पालन करने के लिए प्रतिबद्ध है। CapSolver नेटवर्क का उपयोग अवैध, धोखाधड़ी या दुरुपयोग करने वाली गतिविधियों के लिए करना सख्त वर्जित है और इसकी जांच की जाएगी। हमारे कैप्चा समाधान उपयोगकर्ता अनुभव को बेहतर बनाने के साथ-साथ सार्वजनिक डेटा क्रॉलिंग के दौरान कैप्चा कठिनाइयों को हल करने में 100% अनुपालन सुनिश्चित करते हैं। हम अपनी सेवाओं के जिम्मेदार उपयोग की प्रोत्साहना करते हैं। अधिक जानकारी के लिए, कृपया हमारी सेवा की शर्तें और गोपनीयता नीति पर जाएं।
अधिक

कैपसॉल्वर एमसीपी कैसे स्थापित करें आधिकारिक एमसीपी रजिस्टरी से
CapSolver MCP के आधिकारिक MCP पंजीकरण में खोजें, uvx या pip के साथ 0.1.3 संस्करण स्थापित करें, एक स्थानीय क्लाइंट को कॉन्फ़िगर करें, और stdio टूल्स की पुष्टि करें।

Rajinder Singh
18-Sep-2026

पायडैंटिक एआई कैप्चा उपकरण: टाइप किए गए इनपुट और सॉल्वर परिणाम
पायडैंटिक एआई में कैप्चा टूल्स जोड़ें, आधिकारिक कैपसॉल्वर एडेप्टर का उपयोग करें, टूल एक्सीक्यूशन को स्थानीय रूप से परीक्षण करें, और टाइप किए गए इनपुट और संरचित सॉल्वर परिणामों को संभालें।

Rajinder Singh
18-Sep-2026

MCP वर्सेस CLI आर्टिफिशियल इंटेलिजेंस एजेंट्स के लिए: संदर्भ लागत और असफलता प्रबंधन
AI एजेंट के लिए MCP और CLI इंटरफेस की उपकरण खोज, संदर्भ लागत, सुरक्षा, डीबगिंग, असफलता प्रबंधन और हाइब्रिड आर्किटेक्चर के बीच तुलना करें।

Rajinder Singh
18-Sep-2026

कैसे कई CAPTCHA विजेट्स के साथ निपटें AI ब्राउज़र एजेंट्स में
एक ही पृष्ठ पर अनेक कैप्चा विजेट्स का प्रबंधन करें स्पष्ट फॉर्म स्वामित्व, समाधानकर्ता पैरामीटर्स, परिणाम राउटिंग, एवं इच्छित एआई एजेंट कार्य के लिए जांच के साथ।

Lucas Mitchell
15-Sep-2026

AI एजेंट्स विरुद्ध स्क्रिप्ट्स: वेब ऑटोमेशन के लिए कैसे चुनें
चयन करें AI एजेंट्स, स्क्रिप्ट्स, और हाइब्रिड वेब ऑटोमेशन कार्य अनिश्चितता, परीक्षणीयता, लागत, और विश्वसनीय कार्यान्वयन के लिए आवश्यक नियंत्रणों पर।

Lucas Mitchell
11-Sep-2026

कैपसॉल्वर एमसीपी सर्वर अब AI एजेंट्स के लिए उपलब्ध है।
PyPI से CapSolver MCP Server स्थापित करें और संगत कृत्रिम बुद्धिमत्ता एजेंट के लिए मॉडल संदर्भ प्रोटोकॉल के माध्यम से अधिकृत CAPTCHA प्रबंधन के लिए पांच उपकरण प्रदान करें।

Rajinder Singh
10-Sep-2026

