Embeddings
POST /v1/embeddings returns one vector per input text. The embedding model
is baai/bge-m3 (alias bge-m3): multilingual, up to 8,192 input tokens per
text, 1,024-dimension vectors. Its price is on the
model page.
curl https://api.thetoken.dev/v1/embeddings \ -H "Authorization: Bearer $TOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "baai/bge-m3", "input": ["Where is my order?", "أين طلبي؟"] }'import osfrom openai import OpenAI
client = OpenAI(base_url="https://api.thetoken.dev/v1", api_key=os.environ["TOKEN_API_KEY"])
result = client.embeddings.create( model="baai/bge-m3", input=["Where is my order?", "أين طلبي؟"],)vectors = [item.embedding for item in result.data]print(len(vectors), len(vectors[0])) # 2 1024import OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://api.thetoken.dev/v1', apiKey: process.env.TOKEN_API_KEY })
const result = await client.embeddings.create({ model: 'baai/bge-m3', input: ['Where is my order?', 'أين طلبي؟'],})console.log(result.data.length, result.data[0].embedding.length) // 2 1024The response (vectors shortened):
{ "object": "list", "model": "baai/bge-m3", "data": [ { "object": "embedding", "index": 0, "embedding": [-0.0312, 0.0187, 0.0054] }, { "object": "embedding", "index": 1, "embedding": [-0.0298, 0.0201, 0.0049] } ], "usage": { "prompt_tokens": 12, "total_tokens": 12 }}Good to know
Section titled “Good to know”inputis a string or a list of strings; results come back in the same order (index).- Compare vectors with cosine similarity. Texts in different languages with the same meaning land close together, as in the example.
- Only input tokens are billed; embeddings have no output price.
- Some clients send token numbers instead of text (LangChain’s Python
OpenAIEmbeddingsby default); send text. See the LangChain guide.