Embeddings
Each ZeroDB project has a dedicated embeddings endpoint for generating vector representations of text. Embeddings power semantic search, similarity matching, and RAG pipelines.
Generate Embeddings
curl -X POST https://api.ainative.studio/api/v1/projects/{project_id}/embeddings/generate \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": [
"ZeroDB is a managed vector database",
"Semantic search powered by embeddings"
],
"model": "bge-large-en"
}'
Response:
{
"embeddings": [
[0.021, -0.043, 0.118, ...],
[0.034, -0.012, 0.091, ...]
],
"model": "bge-large-en",
"dimensions": 1024
}
Generate and Store in One Call
curl -X POST https://api.ainative.studio/api/v1/projects/{project_id}/embeddings/embed-and-store \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": ["My important document content"],
"namespace": "documents",
"metadata": [{"source": "upload", "doc_id": "doc-42"}],
"model": "bge-large-en"
}'
This generates embeddings and upserts them into the project's vector store in a single request.
List Available Models
curl https://api.ainative.studio/api/v1/projects/{project_id}/embeddings/models \
-H "x-api-key: $API_KEY"
Semantic Search with Text Query
curl -X POST https://api.ainative.studio/api/v1/projects/{project_id}/embeddings/search \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "vector database for AI agents",
"namespace": "documents",
"top_k": 5,
"model": "bge-large-en"
}'
This embeds the query text and runs similarity search — no need to pre-compute query vectors.
Python SDK
import requests
API_KEY = "your-api-key"
PROJECT_ID = "your-project-id"
BASE = f"https://api.ainative.studio/api/v1/projects/{PROJECT_ID}/embeddings"
headers = {"x-api-key": API_KEY, "Content-Type": "application/json"}
# Generate embeddings
r = requests.post(f"{BASE}/generate", headers=headers, json={
"texts": ["Hello world", "Goodbye world"],
"model": "bge-large-en"
})
vectors = r.json()["embeddings"]
print(f"Got {len(vectors)} embeddings of dimension {len(vectors[0])}")
# Embed and store
requests.post(f"{BASE}/embed-and-store", headers=headers, json={
"texts": ["Important document about AI agents"],
"namespace": "docs",
"metadata": [{"source": "manual"}],
"model": "bge-large-en"
})
# Semantic search
results = requests.post(f"{BASE}/search", headers=headers, json={
"query": "AI agent memory",
"namespace": "docs",
"top_k": 3,
"model": "bge-large-en"
}).json()
for r in results["results"]:
print(f"Score {r['score']:.3f}: {r['metadata']}")
Available Models
| Model | Dimensions | Best For |
|---|---|---|
bge-large-en | 1024 | English text, high accuracy |
all-minilm-l6-v2 | 384 | Fast, low-resource use cases |
Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /embeddings/generate | Generate embeddings for text array |
| POST | /embeddings/embed-and-store | Generate and upsert to vector store |
| POST | /embeddings/search | Semantic search with a text query |
| GET | /embeddings/models | List available embedding models |