---
title: "Embeddings"
description: "Generate and store vector embeddings per project using TEI-powered models"
canonical: "https://docs.ainative.studio/docs/zerodb/embeddings"
last-updated: "2026-10-13T21:42:35.442Z"
---

# Embeddings

Source: https://docs.ainative.studio/docs/zerodb/embeddings

> Generate and store vector embeddings per project using TEI-powered models

## 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

```bash
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:

```json
{
  "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

```bash
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

```bash
curl https://api.ainative.studio/api/v1/projects/{project_id}/embeddings/models \
  -H "x-api-key: $API_KEY"
```

## Semantic Search with Text Query

```bash
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

```python
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 |
