Entity Enricher REST API आपको एंटिटी एनरिच करने, स्कीमा प्रबंधित करने, और रिकॉर्ड प्रोग्रामेटिक रूप से प्राप्त करने देता है। सभी रिस्पॉन्स JSON होते हैं। रीयल-टाइम प्रगति Server-Sent Events (SSE) का उपयोग करती है।
तीन चरणों में Entity Enricher इंटीग्रेट करें:
GET /api/schema/savedसहेजे गए स्कीमा की सूची बनाएँ या नमूना डेटा से एक जेनरेट करें
POST /api/single/enrich/streamएनरिचमेंट शुरू करें, SSE स्ट्रीमिंग के लिए जॉब ID प्राप्त करें
GET /api/records/{id}संरचित आउटपुट के साथ पूर्ण enrichment record प्राप्त करें
सभी API एंडपॉइंट्स (लॉगिन/रजिस्टर को छोड़कर) को प्रमाणीकरण की आवश्यकता होती है। संगठन एक्सेस की के साथ X-API-Key हेडर का उपयोग करें:
curl -H "X-API-Key: ent_your_key_here" \
https://your-instance.example.com/api/enrichment/optionsAPI Keys पेज से या POST /api/auth/api-keys के माध्यम से API की बनाएँ। की के प्रकार और अनुमतियों के विवरण के लिए API Keys गाइड देखें।
| मेथड | Endpoint | विवरण |
|---|---|---|
| GET | /api/enrichment/options | उपलब्ध मॉडल, भाषाएँ, और स्ट्रैटेजी |
| POST | /api/single/enrich/stream | एकल एंटिटी एनरिचमेंट शुरू करें (SSE के लिए job_id लौटाता है) |
| POST | /api/single/enrich/sync | गैर-SSE क्लाइंट्स (Make.com, curl) के लिए ब्लॉकिंग सिंगल एनरिचमेंट |
| POST | /api/enrichment/batch/start | कई एंटिटी के लिए बैच एनरिचमेंट शुरू करें |
| POST | /api/enrichment/batch/fetch | किसी बाहरी URL से एंटिटीज़ फ़ेच करें |
| मेथड | Endpoint | विवरण |
|---|---|---|
| GET | /api/llm/stream/{job_id} | किसी भी LLM जॉब (संवर्धन, स्कीमा, फ्यूज़न) के लिए SSE स्ट्रीम |
| POST | /api/llm/cancel/{job_id} | चल रहे या रुके हुए जॉब को रद्द करें |
| POST | /api/llm/continue/{job_id} | किसी रुके हुए जॉब को फिर से शुरू करें (जैसे, वर्गीकरण मिसमैच के बाद) |
| मेथड | Endpoint | विवरण |
|---|---|---|
| GET | /api/schema/saved | सभी सहेजे गए स्कीमा की सूची बनाएँ |
| POST | /api/schema/saved | एक नया schema बनाएँ |
| POST | /api/schema/generate/stream | सैंपल डेटा से schema जेनरेट करें (SSE) |
| POST | /api/schema/saved/{id}/prompt/stream | नैचुरल लैंग्वेज के साथ स्कीमा को AI-एडिट करें (SSE) |
| मेथड | Endpoint | विवरण |
|---|---|---|
| GET | /api/records | पेजिनेशन और फ़िल्टरिंग के साथ रिकॉर्ड की सूची बनाएँ |
| GET | /api/records/{id} | स्ट्रक्चर्ड आउटपुट के साथ पूर्ण record विवरण प्राप्त करें |
| POST | /api/records/batch-delete | कई record हटाएँ (अधिकतम 100) |
| POST | /api/fusion/merge | कई models के परिणाम मर्ज करें |
| मेथड | Endpoint | विवरण |
|---|---|---|
| POST | /api/attachments | एक या अधिक फ़ाइलें अपलोड करें (multipart/form-data) |
| POST | /api/attachments/base64 | JSON base64 के माध्यम से एक फ़ाइल अपलोड करें (non-multipart क्लाइंट्स के लिए) |
| GET | /api/attachments/{id}/download | मूल फ़ाइल बाइट्स डाउनलोड करें |
| DELETE | /api/attachments/{id} | एक attachment हटाएँ (enrichment के बाद सफ़ाई) |
Enrichment, schema जनरेशन और fusion ऑपरेशन रियल-टाइम प्रगति के लिए Server-Sent Events का उपयोग करते हैं। एक जॉब शुरू करें, एक job_id प्राप्त करें, फिर SSE स्ट्रीम से कनेक्ट करें:
| इवेंट | विवरण |
|---|---|
| model_started | मॉडल प्रोसेसिंग शुरू होती है |
| expertise_completed | एक expertise domain समाप्त हुआ (आंशिक परिणामों के साथ) |
| model_completed | मॉडल result, record_id, और cost के साथ समाप्त हुआ |
| fusion_started / fusion_completed | मल्टी-मॉडल फ्यूज़न लाइफसाइकल इवेंट्स |
| entity_started / entity_completed | बैच-विशिष्ट प्रति-एंटिटी इवेंट्स (entity_index शामिल करें) |
| completed | टर्मिनल इवेंट - कनेक्शन बंद करें |
| error | Job-स्तरीय त्रुटि हुई |
एक संपूर्ण workflow जो schema सूचीबद्ध करता है, enrichment शुरू करता है, परिणाम stream करता है, और अंतिम record प्राप्त करता है:
import httpx
import json
BASE = "https://your-instance.example.com"
KEY = "ent_your_api_key"
HEADERS = {"X-API-Key": KEY, "Content-Type": "application/json"}
# 1. List saved schemas
schemas = httpx.get(f"{BASE}/api/schema/saved", headers=HEADERS).json()
schema_id = schemas["schemas"][0]["id"]
# 2. Start enrichment
resp = httpx.post(f"{BASE}/api/single/enrich/stream", headers=HEADERS, json={
"entity_data": {"name": "Moderna Inc", "country": "US"},
"schema_id": schema_id,
"models": ["anthropic::claude-sonnet-4-5-20250514"],
"strategy": "multi_expertise",
})
job_id = resp.json()["job_id"]
# 3. Stream SSE events
record_id = None
with httpx.stream("GET", f"{BASE}/api/llm/stream/{job_id}", headers=HEADERS) as stream:
for line in stream.iter_lines():
if not line.startswith("data: "):
continue
event = json.loads(line[6:])
if event["type"] == "model_completed" and event.get("record_id"):
record_id = event["record_id"]
elif event["type"] == "completed":
break
# 4. Retrieve the enrichment record
if record_id:
record = httpx.get(f"{BASE}/api/records/{record_id}", headers=HEADERS).json()
print(json.dumps(record["structured_output"], indent=2))दो मॉडल के साथ बैच एनरिचमेंट शुरू करें और परिणाम स्ट्रीम करें:
# Start batch enrichment
JOB_ID=$(curl -s -X POST \
-H "X-API-Key: $KEY" \
-H "Content-Type: application/json" \
"$BASE/api/enrichment/batch/start" \
-d '{
"entities": [
{"name": "Pfizer Inc", "country": "US"},
{"name": "Roche", "country": "CH"}
],
"schema_id": "your-schema-uuid",
"models": ["anthropic::claude-sonnet-4-5-20250514", "openai::gpt-4o"],
"strategy": "multi_expertise",
"arbitration_model": "anthropic::claude-sonnet-4-5-20250514"
}' | jq -r '.job_id')
# Stream events
curl -N -H "X-API-Key: $KEY" "$BASE/api/llm/stream/$JOB_ID"
# List resulting records
curl -s -H "X-API-Key: $KEY" \
"$BASE/api/records?type=enrichment&page_size=10" | jq '.records'| स्थिति | अर्थ | उदाहरण |
|---|---|---|
| 200 | सफल | अनुरोध पूर्ण हुआ |
| 400 | गलत रिक्वेस्ट | अमान्य model key या गुम फ़ील्ड |
| 401 | अनधिकृत | API कुंजी अनुपस्थित या अमान्य है |
| 403 | निषिद्ध | इस एंडपॉइंट के लिए अपर्याप्त भूमिका |
| 404 | नहीं मिला | रिकॉर्ड, स्कीमा, या जॉब नहीं मिला |
| 500 | Server त्रुटि | आंतरिक विफलता |
त्रुटि प्रतिक्रियाओं में एक मानव-पठनीय त्रुटि संदेश के साथ detail फ़ील्ड शामिल होता है। यदि stream के बीच में कुछ विफल होता है तो SSE streams टर्मिनल completed ईवेंट से पहले एक error ईवेंट प्रकार उत्सर्जित करती हैं।
मॉडल की पहचान provider_name::model_name फ़ॉर्मेट में कंपोज़िट कुंजियों द्वारा की जाती है। उपलब्ध मॉडल और उनकी कुंजियाँ सूचीबद्ध करने के लिए GET /api/enrichment/options का उपयोग करें।
anthropic::claude-sonnet-4-5-20250514openai::gpt-4ogoogle::gemini-2.5-prodeepseek::deepseek-chatएप्लिकेशन में रिक्वेस्ट/रिस्पॉन्स उदाहरणों के साथ इंटरैक्टिव API दस्तावेज़ शामिल हैं। एक्सेस के लिए एडमिन प्रमाणीकरण आवश्यक है: