APIMaster.ai

BGE-M3 · Gửi yêu cầu

Mô hình đa ngôn ngữ BAAI với 1024 chiều cho truy xuất tài liệu. API này trả vectơ đặc, không cung cấp trọng số thưa hoặc vectơ ColBERT. Truy vấn không cần tiền tố chỉ dẫn đặc biệt.

Mô hình đa ngôn ngữ BAAI với 1024 chiều cho truy xuất tài liệu. API này trả vectơ đặc, không cung cấp trọng số thưa hoặc vectơ ColBERT. Truy vấn không cần tiền tố chỉ dẫn đặc biệt.

Đã xác minh ngày 2026-10-02: tuyến hoạt động từ $0.01 mỗi triệu tokens đầu vào. Đây là giá tuyến APIMaster, không phải giá chính thức chung của nhà cung cấp; thẻ mô hình hiện tại được ưu tiên. Thẻ mô hình hiện tại

Gửi yêu cầu

POST /v1/embeddings · model: bge-m3

cURL

export APIMASTER_API_KEY="YOUR_APIMASTER_API_KEY"
curl --fail-with-body "https://apimaster.ai/v1/embeddings" \
  -H "Authorization: Bearer $APIMASTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "bge-m3", "input": "Semantic search retrieves related documents.", "encoding_format": "float"}'

Python · OpenAI SDK

pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["APIMASTER_API_KEY"],
    base_url="https://apimaster.ai/v1",
)
result = client.embeddings.create(
    model="bge-m3",
    input=["Semantic search retrieves related documents.", "猫在窗边休息。"],
    encoding_format="float",
)
for item in result.data:
    print(item.index, len(item.embedding))  # 1024
print(result.usage.prompt_tokens)

JavaScript · Node.js

const response = await fetch("https://apimaster.ai/v1/embeddings", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.APIMASTER_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "bge-m3",
    input: ["Semantic search retrieves related documents.", "猫在窗边休息。"],
    encoding_format: "float",
  }),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
console.log(result.data.map((item) => [item.index, item.embedding.length]));
console.log(result.usage.prompt_tokens);

Tham số và giới hạn

input nhận chuỗi không rỗng hoặc mảng chuỗi không rỗng. encoding_format: float trả mảng số. Không gửi messages, max_tokens hoặc stream. Giới hạn tham chiếu là 8192 tokens mỗi văn bản; chia tài liệu dài và giữ lô nhỏ. Giới hạn và cách tách token có thể khác theo tuyến.

Với bge-m3, dùng vectơ đặc đủ 1024 chiều và bỏ dimensions. Dùng ID bge-m3 trong yêu cầu; response.model có thể chứa tên khác của nhà cung cấp.

Đọc phản hồi

Đọc data[i].embedding và ghép vectơ với đầu vào bằng data[i].index. usage.prompt_tokens và usage.total_tokens thể hiện mức dùng đầu vào. Vectơ không bị tính phí như tokens văn bản đầu ra. base64 cũng đã kiểm thử, nhưng float dễ kiểm tra hơn.

Đã kiểm thử trực tiếp văn bản đơn, lô tiếng Trung/Anh, độ dài vectơ và tính nhất quán của đầu vào lặp lại. Kiểm thử xác minh API, không bảo đảm chất lượng truy xuất trên mọi dữ liệu.

Tìm kiếm ngữ nghĩa và RAG

Chia tài liệu thành đoạn, tạo và lưu vectơ. Tạo vectơ truy vấn bằng cùng mô hình và số chiều, xếp hạng theo độ tương đồng cosine rồi đưa văn bản tìm được cho mô hình chat riêng. Không trộn mô hình hoặc số chiều trong một chỉ mục; tạo lại chỉ mục khi đổi mô hình.

Khắc phục lỗi

Với 401, kiểm tra khóa API. Với 400, kiểm tra ID mô hình, input không rỗng và tham số. Với 429 hoặc quá thời gian phía nhà cung cấp, giảm đồng thời và thử lại với thời gian chờ tăng dần. Xem marketplace để biết tình trạng tuyến và giá hiện tại.

Bước tiếp theo và tài liệu