Embeddings là biểu diễn số học của văn bản nắm bắt ý nghĩa ngữ nghĩa — chuyển văn bản thành vector (dãy số) có thể dùng cho nhiều tác vụ machine learning. BazaarLink cung cấp một endpoint thống nhất, tương thích với OpenAI Embeddings API, để bạn gọi các mô hình embedding từ nhiều nhà cung cấp qua một giao diện duy nhất.
Phản hồi embedding dùng BazaarLink request ID opaque trùng với x-request-id; dùng nó với GET /v1/generation. Phản hồi không stream cũng có cùng ID trong x-generation-id. usage.cost là số tiền USD đã tính cho khách hàng cho yêu cầu này. Số liệu có thể xuất hiện sau vài giây khi hoàn tất; thử lại 404 trong thời gian ngắn.
Embeddings là gì?
Embeddings biến văn bản thành vector nhiều chiều, trong đó các văn bản có ý nghĩa tương tự nằm gần nhau hơn trong không gian vector — ví dụ, "cat" và "kitten" sẽ có embedding tương tự nhau, còn "cat" và "airplane" sẽ cách xa nhau. Các biểu diễn vector này giúp máy hiểu được mối quan hệ giữa các đoạn văn bản, là nền tảng của nhiều ứng dụng AI.
Các trường hợp sử dụng phổ biến
Trường hợp sử dụng
Mô tả
RAG (Thế hệ tăng cường truy xuất)Xây dựng hệ thống truy xuất ngữ cảnh liên quan từ cơ sở tri thức trước khi tạo câu trả lời — embeddings tìm ra các tài liệu liên quan nhất để đưa vào ngữ cảnh của LLM.
Tìm kiếm ngữ nghĩaChuyển tài liệu và truy vấn thành embeddings, sau đó tìm tài liệu liên quan nhất bằng độ tương đồng vector — hiểu ý nghĩa thay vì chỉ khớp từ khóa, cho kết quả tốt hơn tìm kiếm từ khóa.
Hệ thống đề xuấtTạo embeddings cho các mục (sản phẩm, bài viết, video) và sở thích người dùng để đề xuất các mục tương tự — so sánh vector tìm ra các mục liên quan về ngữ nghĩa ngay cả khi không có từ khóa chung.
Phân cụm & Phân loạiNhóm các tài liệu tương tự hoặc phân loại văn bản bằng cách phân tích các mẫu embedding — tài liệu có embedding tương tự thường thuộc cùng chủ đề hoặc danh mục.
Phát hiện trùng lặpTìm nội dung trùng lặp hoặc gần trùng lặp bằng cách so sánh độ tương đồng embedding — vẫn hoạt động ngay cả khi nội dung đã được diễn đạt lại.
Phát hiện bất thườngNhận diện nội dung bất thường hoặc ngoại lệ bằng cách xác định các embedding lệch đáng kể so với mẫu điển hình của tập dữ liệu.
POST/v1/embeddings
Note
Nếu nguồn upstream không hỗ trợ mô hình embeddings được yêu cầu, yêu cầu có thể thử một nguồn khả dụng khác. Nếu không có nguồn nào hỗ trợ, yêu cầu sẽ trả lỗi.
Tham số
modelbắt buộc
string
Mô hình embedding sử dụng, ví dụ "openai/text-embedding-3-small".
inputbắt buộc
string | string[] | ContentItem[]
Văn bản cần embedding — một chuỗi đơn, mảng chuỗi cho một lệnh gọi hàng loạt, hoặc (với các mô hình hỗ trợ) mảng các mục {content:[...]} kết hợp phần text và image_url.
dimensions
integer
Kích thước vector đầu ra được yêu cầu. Chỉ được áp dụng bởi các mô hình hỗ trợ số chiều thay đổi (ví dụ dòng OpenAI text-embedding-3); được chuyển tiếp nguyên trạng đến nhà cung cấp upstream và bị bỏ qua với các mô hình không hỗ trợ.
encoding_format
string
Định dạng mã hóa embedding được yêu cầu, ví dụ "float" hoặc "base64". Được chuyển tiếp nguyên trạng đến nhà cung cấp upstream — mức hỗ trợ tùy thuộc vào mô hình.
provider
object
Unsupported. The entire object is ignored and removed before forwarding; it cannot select an upstream or price tier.
Yêu Cầu Cơ Bản
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
Xử Lý Hàng Loạt
Gửi một mảng chuỗi để embedding nhiều văn bản trong một yêu cầu duy nhất — rẻ hơn và nhanh hơn so với gọi riêng cho từng văn bản.
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")
Đầu Vào Đa Phương Thức (Hình Ảnh + Văn Bản)
Các mô hình hỗ trợ đầu vào hình ảnh (output_modalities gồm "embeddings" và inputModalities gồm "image") chấp nhận các mục đầu vào có dạng {content:[{type:"text",...}, {type:"image_url",...}]}, cho phép bạn embedding riêng một hình ảnh hoặc kết hợp cùng văn bản.
Tùy thuộc mô hình
Chỉ một số mô hình embedding chấp nhận đầu vào hình ảnh — kiểm tra các phương thức mà mô hình hỗ trợ trên trang Models trước khi gửi nội dung image_url. Mô hình chỉ hỗ trợ văn bản sẽ từ chối dạng này.
Không có endpoint riêng để liệt kê mô hình embedding — gọi GET /v1/models rồi lọc phía client các mục có output_modalities chứa "embeddings", hoặc duyệt trang Models.
Giới Hạn
Không hỗ trợ streaming — embeddings luôn được trả về dưới dạng phản hồi hoàn chỉnh, khác với chat completions.
Mỗi mô hình có độ dài đầu vào tối đa; văn bản vượt quá giới hạn đó sẽ bị cắt bớt hoặc từ chối ở upstream.
Embeddings cho cùng một đầu vào là tất định (deterministic) — không có temperature hay tính ngẫu nhiên.
Thực Hành Tốt Nhất
Chọn mô hình theo cân bằng tốc độ/chất lượng/chi phí — mô hình nhỏ hơn (ví dụ qwen/qwen3-embedding-4b) rẻ và nhanh hơn; mô hình lớn hơn (ví dụ openai/text-embedding-3-large) thường embedding với độ chính xác cao hơn.
Gộp nhiều văn bản vào một yêu cầu thay vì gọi riêng cho từng văn bản — giảm số lượt round trip và overhead.
Lưu cache kết quả — embedding của cùng một đầu vào không bao giờ thay đổi, nên lưu lại thay vì tạo lại.
So sánh bằng cosine similarity thay vì khoảng cách Euclidean — bất biến theo tỷ lệ và hoạt động tốt hơn với vector nhiều chiều.
Chú ý độ dài ngữ cảnh của từng mô hình — tài liệu dài có thể cần chia nhỏ (chunking) trước khi embedding.
Support
Hi! How can we help you? Send a message and we'll get back to you soon.