
Rajinder Singh
Deep Learning Researcher

LlamaIndex एजेंट विविध स्रोतों के माध्यम से डेटा प्राप्ति, इंडेक्सिंग और प्रश्न प्रवाहों को संगठित करते हैं। जब इन एजेंट वेब-आधारित डेटा स्रोतों तक पहुंचते हैं जो CAPTCHA चुनौतियों द्वारा सुरक्षित होते हैं, तो डेटा एंगेस्टन जारी रखने के लिए एक समाधान योजना की आवश्यकता होती है। CapSolver के capsolver-agent पैकेज लlamaIndex के FunctionTool प्रणाली के साथ संगत टूल स्कीमा प्रदान करते हैं, जो आपके एजेंट के डेटा पाइपलाइन के हिस्से के रूप में reCAPTCHA, Cloudflare Turnstile और अन्य सत्यापन चुनौतियों को साफ करने में सक्षम बनाते हैं।
FunctionTool वॉर्पर के माध्यम से एसिंक्रोनस समाधान के साथ एम्बेड करता हैcapsolver-agent एक्सीक्यूटर समाधान का प्रबंधन करता है और एजेंट के तार्किक लूप के लिए संरचित परिणाम लौटाता हैcreate_executor() और FunctionTool.from_defaults() का उपयोग करके 15 लाइनों से कम समय में एकीकरणLlamaIndex विभिन्न स्रोतों से डेटा की प्राप्ति, इंडेक्सिंग और प्रश्न करने वाले एजेंट बनाने में अच्छा प्रदर्शन करता है। जब इन स्रोतों में वेब पेज, एपीआई या CAPTCHA प्रणालियों द्वारा सुरक्षित डेटाबेस शामिल होते हैं, तो एजेंट के डेटा एंगेस्टन पाइपलाइन टूट जाता है। एक RAG एजेंट जिसे CAPTCHA-सुरक्षित साइट से दस्तावेज़ का इंडेक्सिंग करने की आवश्यकता होती है, या बहुत सारे वेब स्रोतों के साथ प्रश्न करने वाला अनुसंधान एजेंट, बिना सत्यापन साफ किए आगे बढ़ नहीं सकता।
समस्या विशेष रूप से LlamaIndex के डेटा कनेक्टर परिसर के लिए गंभीर होती है। वेब-आधारित कनेक्टर जो इंडेक्सिंग के लिए पृष्ठों को खींचते हैं, दोहरी पहुंच के बाद CAPTCHA का सामना करते हैं। समाधान उपकरण के बिना, एजेंट या तो स्रोत को छोड़ देता है (अपूर्ण डेटा) या पूरी तरह से विफल हो जाता है (टूटा हुआ पाइपलाइन)।
CapSolver के टूल एकीकरण LlamaIndex के मानक पैटर्न का अनुसरण करता है: एक फ़ंक्शन को परिभाषित करें, इसे FunctionTool के रूप में लपेटें, और इसे एजेंट के टूल सूची में जोड़ें। एजेंट के तार्किक इंजन निर्णय लेता है कि कार्य संदर्भ के आधार पर समाधान कब आह्वाहित करना है।
# CapSolver पैकेज
pip install git+https://github.com/capsolver-ai/capsolver-core.git
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
# LlamaIndex
pip install llama-index llama-index-llms-openai
export CAPSOLVER_API_KEY="आपका-capsolver-api-key"
export OPENAI_API_KEY="आपका-openai-api-key"
import asyncio
from llama_index.core.tools import FunctionTool
from capsolver_agent.schema import create_executor
executor = create_executor(api_key="YOUR_CAPSOLVER_API_KEY")
def solve_captcha(captcha_type: str, website_url: str, website_key: str) -> str:
"""एक CAPTCHA चुनौति हल करें और सत्यापन टोकन लौटाएं।
जब किसी CAPTCHA वेरिफिकेशन द्वारा सुरक्षित वेब संसाधन तक पहुंचने की आवश्यकता होती है।
आर्ग्स:
captcha_type: 'reCaptchaV2', 'reCaptchaV3', या 'cloudflare'
website_url: CAPTCHA-सुरक्षित पृष्ठ का पूरा URL
website_key: साइट कुंजी (data-sitekey एट्रिब्यूट मान)
रिटर्न्स:
हल टोकन स्ट्रिंग या त्रुटि संदेश
"""
result = asyncio.run(executor.execute("solve_captcha", {
"captcha_type": captcha_type,
"website_url": website_url,
"website_key": website_key
}))
if result["success"]:
return f"CAPTCHA हल कर दिया गया। टोकन: {result['solution']['token']}"
return f"असफल: {result['error']}"
# LlamaIndex FunctionTool के रूप में लपेटें
captcha_tool = FunctionTool.from_defaults(
fn=solve_captcha,
name="solve_captcha",
description="सुरक्षित वेब पृष्ठों पर reCAPTCHA v2/v3, Cloudflare Turnstile की चुनौतियां हल करें"
)
from llama_index.core.agent import ReActAgent
from llama_index.llms.openai import OpenAI
# LLM बनाएं
llm = OpenAI(model="gpt-4o", temperature=0)
# CAPTCHA समाधान टूल के साथ एजेंट बनाएं
agent = ReActAgent.from_tools(
tools=[captcha_tool],
llm=llm,
verbose=True
)
# एजेंट चलाएं
response = agent.chat(
"मुझे https://example.com/data तक पहुंचने की आवश्यकता है जिसमें reCAPTCHA v2 है। "
"साइट कुंजी 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI है। इसे हल करें और मुझे टोकन दें।"
)
print(response)
एजेंट जो वेब डेटा एंगेस्ट करते हैं, कैप्चा समाधान के साथ डेटा लोडिंग को संयोजित करें:
from llama_index.core import VectorStoreIndex, Document
def fetch_protected_page(url: str, site_key: str) -> str:
"""सबसे पहले सत्यापन के बाद कैप्चा-सुरक्षित पृष्ठ खींचें।"""
# कैप्चा हल करें
token = solve_captcha("reCaptchaV2", url, site_key)
if "असफल" in token:
return ""
# टोकन का उपयोग पृष्ठ तक पहुंचने के लिए करें
import requests
response = requests.post(url, data={"g-recaptcha-response": token.split("टोकन: ")[1]})
return response.text
# सुरक्षित डेटा एंगेस्टिंग के लिए कस्टम टूल बनाएं
protected_fetch_tool = FunctionTool.from_defaults(
fn=fetch_protected_page,
name="fetch_protected_page",
description="सत्यापन पहले हल करके कैप्चा-सुरक्षित वेब पृष्ठ से सामग्री खींचें"
)
# समाधान और डाउनलोडिंग क्षमता वाला एजेंट
data_agent = ReActAgent.from_tools(
tools=[captcha_tool, protected_fetch_tool],
llm=llm,
verbose=True
)
def solve_captcha_with_retry(captcha_type: str, website_url: str, website_key: str, max_retries: int = 3) -> str:
"""उत्पादन-ग्रेड कैप्चा समाधान जिसमें विफलता पर पुन: प्रयास होता है।"""
for attempt in range(max_retries):
result = asyncio.run(executor.execute("solve_captcha", {
"captcha_type": captcha_type,
"website_url": website_url,
"website_key": website_key
}))
if result["success"]:
return f"हल कर दिया गया (प्रयास {attempt+1})। टोकन: {result['solution']['token']}"
if attempt < max_retries - 1:
import time
time.sleep(3)
return f"{max_retries} प्रयासों के बाद असफल: {result.get('error')}"
# पुन: प्रयास के साथ उत्पादन टूल
production_captcha_tool = FunctionTool.from_defaults(
fn=solve_captcha_with_retry,
name="solve_captcha",
description="विफलता पर स्वचालित पुन: प्रयास के साथ कैप्चा समाधान"
)
| कैप्चा प्रकार | पैरामीटर | हल करने का समय | 1K पर लागत |
|---|---|---|---|
| reCAPTCHA v2 | reCaptchaV2 |
5-12 सेकंड | $2-3 |
| reCAPTCHA v3 | reCaptchaV3 |
3-8 सेकंड | $1-2 |
| Cloudflare Turnstile | cloudflare |
2-5 सेकंड | $1-2 |
अपना बोनस कोड ले लें: CapSolver डैशबोर्ड पर कोड WEBS का उपयोग करें ताकि प्रत्येक भरोसे पर 5% अतिरिक्त बोनस मिले।
CapSolver API दस्तावेज़ीकरण में अतिरिक्त पैरामीटर शामिल हैं। कैप्चा प्रकार पहचानने के लिए, CapSolver एक्सटेंशन का उपयोग करें। CapSolver वेब स्क्रैपिंग गाइड LlamaIndex डेटा कनेक्टर के लिए लागू डेटा संग्रह पैटर्न को कवर करता है।
LlamaIndex एजेंट में कैप्चा समाधान के एकीकरण के लिए CapSolver के एक्सीक्यूटर को FunctionTool में लपेटना आवश्यक है और इसे आपके ReAct एजेंट के टूल सूची में जोड़ना आवश्यक है। एजेंट के तार्किक लूप निर्णय लेता है कि कार्य संदर्भ के आधार पर समाधान कब आह्वाहित करना है। CapSolver reCAPTCHA और Cloudflare Turnstile के माध्यम से एकीकृत API के माध्यम से समाधान बुनियादी ढांचा प्रदान करता है, जो आपके LlamaIndex डेटा पाइपलाइन को अवरुद्ध होए बिना चलाए रखता है।
हां। capsolver-agent एक्सीक्यूटर पूरी तरह से एसिंक्रोनस है। LlamaIndex के एसिंक्रोनस एजेंट के लिए, await executor.execute() का उपयोग सीधे करें, asyncio.run() के साथ लपेटने के बजाय।
हां। कैप्चा समाधान टूल के साथ कस्टम वेब रीडर को संयोजित करें जो सत्यापन के पहले सामग्री खींचते हैं। एजेंट पहले कैप्चा हल कर सकता है, फिर टोकन को वेब रीडर को पास कर सकता है ताकि प्राधिकृत पहुंच हो सके।
get_supported_captchas टूल समर्थित प्रकारों की सूची लौटाता है। यदि एजेंट असमर्थित प्रकार का सामना करता है, तो एजेंट को स्पष्ट त्रुटि संदेश मिलता है और यह उपयोगकर्ता को रिपोर्ट कर सकता है बजाय निस्संदेह विफल होने के।
capsolver-mcp में MCP ग्राहक (Claude Desktop, Cursor) के लिए होता है। LlamaIndex एजेंट के लिए कोड में चल रहे हैं, capsolver-agent का उपयोग FunctionTool के साथ करें — यह LlamaIndex फ्रेमवर्क में प्रोग्रामेटिक नियंत्रण प्रदान करता है।
कैपसॉल्वर MCP सेवा को क्लॉड डेस्कटॉप, कर्सर और किसी भी MCP क्लाइंट में शून्य-कोड CAPTCHA हल करने के लिए सेट करें।

OpenAI Agents SDK में CapSolver function_tool का उपयोग करके उच्च स्कोर reCAPTCHA v3 टोकन उत्पन्न करें।
