API संदर्भ - Entity Enricher दस्तावेज़ीकरण

API संदर्भ

Entity Enricher REST API आपको एंटिटी एनरिच करने, स्कीमा प्रबंधित करने, और रिकॉर्ड प्रोग्रामेटिक रूप से प्राप्त करने देता है। सभी रिस्पॉन्स JSON होते हैं। रीयल-टाइम प्रगति Server-Sent Events (SSE) का उपयोग करती है।

त्वरित शुरुआत

तीन चरणों में Entity Enricher इंटीग्रेट करें:

1

Schema प्राप्त करें

GET /api/schema/saved

सहेजे गए स्कीमा की सूची बनाएँ या नमूना डेटा से एक जेनरेट करें

2

एनरिच करें

POST /api/single/enrich/stream

एनरिचमेंट शुरू करें, SSE स्ट्रीमिंग के लिए जॉब ID प्राप्त करें

3

परिणाम प्राप्त करें

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/options

API 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 से एंटिटीज़ फ़ेच करें

Job प्रबंधन

मेथडEndpointविवरण
GET/api/llm/stream/{job_id}किसी भी LLM जॉब (संवर्धन, स्कीमा, फ्यूज़न) के लिए SSE स्ट्रीम
POST/api/llm/cancel/{job_id}चल रहे या रुके हुए जॉब को रद्द करें
POST/api/llm/continue/{job_id}किसी रुके हुए जॉब को फिर से शुरू करें (जैसे, वर्गीकरण मिसमैच के बाद)

Schema

मेथड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/base64JSON base64 के माध्यम से एक फ़ाइल अपलोड करें (non-multipart क्लाइंट्स के लिए)
GET/api/attachments/{id}/downloadमूल फ़ाइल बाइट्स डाउनलोड करें
DELETE/api/attachments/{id}एक attachment हटाएँ (enrichment के बाद सफ़ाई)

SSE स्ट्रीमिंग

Enrichment, schema जनरेशन और fusion ऑपरेशन रियल-टाइम प्रगति के लिए Server-Sent Events का उपयोग करते हैं। एक जॉब शुरू करें, एक job_id प्राप्त करें, फिर SSE स्ट्रीम से कनेक्ट करें:

SSE इवेंट फ्लो

data: {"type":"model_started","model":"anthropic::claude-sonnet-4-5"}
data: {"type":"expertise_completed","expertise_key":"financial","partial_result":{...}}
data: {"type":"model_completed","success":true,"result":{...},"record_id":"uuid"}
data: {"type":"completed"}

प्रमुख इवेंट प्रकार

इवेंटविवरण
model_startedमॉडल प्रोसेसिंग शुरू होती है
expertise_completedएक expertise domain समाप्त हुआ (आंशिक परिणामों के साथ)
model_completedमॉडल result, record_id, और cost के साथ समाप्त हुआ
fusion_started / fusion_completedमल्टी-मॉडल फ्यूज़न लाइफसाइकल इवेंट्स
entity_started / entity_completedबैच-विशिष्ट प्रति-एंटिटी इवेंट्स (entity_index शामिल करें)
completedटर्मिनल इवेंट - कनेक्शन बंद करें
errorJob-स्तरीय त्रुटि हुई

Python उदाहरण

एक संपूर्ण 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))

curl उदाहरण

दो मॉडल के साथ बैच एनरिचमेंट शुरू करें और परिणाम स्ट्रीम करें:

# 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नहीं मिलारिकॉर्ड, स्कीमा, या जॉब नहीं मिला
500Server त्रुटिआंतरिक विफलता

त्रुटि प्रतिक्रियाओं में एक मानव-पठनीय त्रुटि संदेश के साथ detail फ़ील्ड शामिल होता है। यदि stream के बीच में कुछ विफल होता है तो SSE streams टर्मिनल completed ईवेंट से पहले एक error ईवेंट प्रकार उत्सर्जित करती हैं।

मॉडल कंपोज़िट कुंजियाँ

मॉडल की पहचान provider_name::model_name फ़ॉर्मेट में कंपोज़िट कुंजियों द्वारा की जाती है। उपलब्ध मॉडल और उनकी कुंजियाँ सूचीबद्ध करने के लिए GET /api/enrichment/options का उपयोग करें।

Anthropic
anthropic::claude-sonnet-4-5-20250514
OpenAI
openai::gpt-4o
Google
google::gemini-2.5-pro
DeepSeek
deepseek::deepseek-chat

इंटरैक्टिव API डॉक्युमेंटेशन

एप्लिकेशन में रिक्वेस्ट/रिस्पॉन्स उदाहरणों के साथ इंटरैक्टिव API दस्तावेज़ शामिल हैं। एक्सेस के लिए एडमिन प्रमाणीकरण आवश्यक है:

अगले चरण