Embeddings, अर्थ (semantic meaning) capture करने वाला numerical representation है — यह text को vectors (numbers की array) में बदल देता है, जिसे कई machine learning tasks में इस्तेमाल किया जा सकता है। BazaarLink एक unified, OpenAI Embeddings API-compatible endpoint देता है ताकि आप एक ही interface से कई providers के embedding models call कर सकें।
Embedding response में अपारदर्शी BazaarLink request ID होता है जो x-request-id के समान है; इसे GET /v1/generation के साथ उपयोग करें। non-streaming response में वही ID x-generation-id में भी आता है। usage.cost इस request के लिए ग्राहक से वसूली गई USD राशि है। आँकड़े पूरा होने के कुछ सेकंड बाद मिल सकते हैं; 404 पर थोड़ी देर retry करें।
Embeddings क्या हैं?
Embeddings text को high-dimensional vectors में बदल देते हैं, जहाँ semantically similar text vector space में एक-दूसरे के करीब होते हैं — जैसे "cat" और "kitten" के embeddings मिलते-जुलते होंगे, लेकिन "cat" और "airplane" काफी दूर होंगे। इन vector representations से machines text के बीच के संबंध समझ पाती हैं, जो कई AI applications की नींव है।
आम Use Cases
Use केस
विवरण
RAG (पुनर्प्राप्ति-संवर्धित पीढ़ी)ऐसे systems बनाएं जो answer generate करने से पहले knowledge base से relevant context retrieve करें — embeddings LLM के context में शामिल करने के लिए सबसे relevant documents ढूंढते हैं।
सिमेंटिक खोजdocuments और queries को embeddings में बदलें, फिर vector similarity से सबसे relevant documents ढूंढें — यह सिर्फ keyword matching की बजाय meaning समझता है, इसलिए keyword search से बेहतर results देता है।
सिफारिश प्रणालीitems (products, articles, videos) और user preferences के embeddings बनाकर similar items recommend करें — common keywords न होने पर भी vector comparison semantically related items ढूंढ लेता है।
क्लस्टरिंग और वर्गीकरणembedding patterns analyze करके similar documents को group या classify करें — similar embeddings वाले documents आमतौर पर एक ही topic या category के होते हैं।
डुप्लिकेट डिटेक्शनembedding similarity compare करके duplicate या near-duplicate content ढूंढें — content paraphrase किया गया हो तब भी यह काम करता है।
असामान्यता का पता लगानाdataset के typical pattern से काफी अलग embeddings पहचान कर unusual या outlier content detect करें।
POST/v1/embeddings
Note
यदि अपस्ट्रीम स्रोत माँगे गए embeddings मॉडल का समर्थन नहीं करता, तो अनुरोध कोई दूसरा उपलब्ध स्रोत आज़मा सकता है। ऐसा स्रोत न हो तो अनुरोध में त्रुटि लौटती है।
पैरामीटर्स
modelआवश्यक
string
उपयोग करने के लिए एम्बेडिंग मॉडल, उदा. "openai/text-embedding-3-small"।
एम्बेड करने के लिए
inputआवश्यक
string | string[] | ContentItem[]
Text - एक एकल स्ट्रिंग, एक बैच कॉल के लिए स्ट्रिंग्स की एक सरणी, या (उन मॉडलों के लिए जो इसका समर्थन करते हैं) टेक्स्ट और इमेज_यूआरएल भागों को मिलाकर {content:[...]} आइटम की एक सरणी।
dimensions
integer
अनुरोधित आउटपुट वेक्टर आकार। केवल उन मॉडलों द्वारा सम्मानित किया जाता है जो परिवर्तनीय आयामों का समर्थन करते हैं (उदाहरण के लिए OpenAI टेक्स्ट-एम्बेडिंग-3 परिवार); अपस्ट्रीम प्रदाता को वैसे ही अग्रेषित किया गया और उन मॉडलों द्वारा अनदेखा कर दिया गया जो इसका समर्थन नहीं करते हैं।
encoding_format
string
अनुरोधित एम्बेडिंग एन्कोडिंग, उदा. "फ्लोट" या "बेस64"। अपस्ट्रीम प्रदाता को वैसे ही अग्रेषित किया जाता है - समर्थन मॉडल पर निर्भर करता है।
provider
object
Unsupported. The entire object is ignored and removed before forwarding; it cannot select an upstream or price tier.
बुनियादी अनुरोध
1
2
3
4
5
6
7
8
9
10
11
12
13
from openai import OpenAI
client = OpenAI(
base_url="https://api.bazaarlink.ai/v1",
api_key="sk-bl-YOUR_API_KEY",
)
response = client.embeddings.create(
model="openai/text-embedding-3-small",
input="The quick brown fox jumps over the lazy dog",
)
print(response.data[0].embedding) # 1536-dimensional vector
बैच प्रोसेसिंग
एक ही अनुरोध में एकाधिक टेक्स्ट को एम्बेड करने के लिए स्ट्रिंग्स की एक सरणी भेजें - प्रति टेक्स्ट एक कॉल की तुलना में सस्ता और तेज़।
1
2
3
4
5
6
7
8
9
10
11
response = client.embeddings.create(
model="openai/text-embedding-3-small",
input=[
"Machine learning is a subset of artificial intelligence",
"Deep learning uses neural networks with multiple layers",
"Natural language processing enables computers to understand text",
],
)
for i, item inenumerate(response.data):
print(f"Embedding {i}: {len(item.embedding)} dimensions")
मल्टीमॉडल इनपुट (छवि + टेक्स्ट)
छवि इनपुट समर्थन के साथ
मॉडल (आउटपुट_मोडालिटी में "एम्बेडिंग" और इनपुटमोडालिटी में "इमेज" शामिल है) {content:[{type:"text",...}, {type:"image_url",...}]} के आकार के इनपुट आइटम स्वीकार करते हैं, जिससे आप अकेले या टेक्स्ट के साथ संयुक्त रूप से एक छवि एम्बेड कर सकते हैं।
मॉडल-निर्भर
केवल कुछ एम्बेडिंग मॉडल छवि इनपुट स्वीकार करते हैं - image_url सामग्री भेजने से पहले मॉडल पृष्ठ पर मॉडल के समर्थित तौर-तरीकों की जांच करें। केवल-पाठ मॉडल इस आकृति को अस्वीकार कर देंगे।
कोई समर्पित एम्बेडिंग मॉडल-लिस्टिंग एंडपॉइंट नहीं है - GET /v1/models पर कॉल करें और उन प्रविष्टियों के लिए क्लाइंट-साइड फ़िल्टर करें जिनके आउटपुट_मोडैलिटी में "एम्बेडिंग" शामिल है, या मॉडल पृष्ठ ब्राउज़ करें।
सीमाएँ
कोई स्ट्रीमिंग नहीं - चैट पूर्णता के विपरीत, एम्बेडिंग हमेशा पूर्ण प्रतिक्रिया के रूप में लौटाई जाती है।
प्रत्येक मॉडल की अधिकतम इनपुट लंबाई होती है; उस सीमा से परे पाठ को काट दिया जाता है या अपस्ट्रीम में अस्वीकृत कर दिया जाता है।
Embeddings समान इनपुट के लिए नियतात्मक हैं - इसमें कोई तापमान या यादृच्छिकता शामिल नहीं है।
सर्वोत्तम अभ्यास
अपने speed/quality/लागत ट्रेडऑफ़ के लिए एक मॉडल चुनें - छोटे मॉडल (जैसे qwen/qwen3-embedding-4b) सस्ते और तेज़ हैं; बड़े वाले (उदाहरण के लिए openai/text-embedding-3-large) आम तौर पर उच्च निष्ठा के साथ एम्बेड होते हैं।
प्रति टेक्स्ट एक कॉल के बजाय एकाधिक टेक्स्ट को एक अनुरोध में बैचें - कम राउंड ट्रिप, कम ओवरहेड।
Cache परिणाम - एक ही इनपुट के लिए एम्बेडिंग कभी नहीं बदलती है, इसलिए उन्हें पुन: उत्पन्न करने के बजाय संग्रहीत करें।
कोसाइन समानता से तुलना करें, यूक्लिडियन दूरी से नहीं - यह स्केल-अपरिवर्तनीय है और उच्च-आयामी वैक्टर के लिए बेहतर काम करता है।
प्रत्येक मॉडल की संदर्भ लंबाई देखें - लंबे दस्तावेज़ों को एम्बेड करने से पहले टुकड़े-टुकड़े करने की आवश्यकता हो सकती है।
Support
Hi! How can we help you? Send a message and we'll get back to you soon.