What You’ll Build
A custom text embedding extractor that:- Generates 128-dimensional embeddings from text (batch + real-time)
- Validates locally with
lintandtest— no API key needed - Powers search through a retriever
Where this runs. Authoring +
lint + test work everywhere. The upload/deploy steps require a dedicated deployment — the shared api.mixpeek.com API does not expose custom-extractor uploads. On the shared API, swap in a built-in extractor (e.g. text_extractor) at Step 4 and skip Step 3, or ship your extractor via Submissions. The ingest + search steps (4–5) run on any plan.These are the same three variables the
plugins.py CLI reads, so the CLI and the raw curl examples below use one consistent convention.Step 1: Create Extractor Files
Create a directorytext_embed/ with three files.
manifest.py
pipeline.py
realtime.py
Embeds the query at search time so it lands in the same space as your indexed vectors.Step 2: Validate Locally (no API key)
lint validates your manifest + runs the security scanner. test runs the pipeline through real Ray Data map_batches and confirms your output column is populated. Both are offline.
Step 3: Deploy (dedicated infrastructure)
Upload/deploy is only available on a dedicated deployment — full HTTP contract in the Custom Extractor API reference. On the shared API, skip to Step 4 with a built-in extractor, or use Submissions.
plugins.py push then deploy). Raw HTTP (custom extractors are addressed as /plugins on this surface):
Step 4: Ingest Data
Buckets, collections, retrievers, and batches are top-level resources keyed by the
X-Namespace header — not nested under /namespaces/{ns}/.Step 5: Create a Retriever and Search
The execute body is
{"inputs": {"query": "..."}}. The feature_uri must match your extractor + feature name (for a built-in, fetch it from GET /v1/namespaces/$MIXPEEK_NAMESPACE/extractors/{extractor_id}).Next Steps
- Custom Extractors — full manifest, SDK, security, and platform-services reference
- Model Registry — load HuggingFace or your own fine-tuned weights
- Taxonomies and Clusters — auto-classify and group your embeddings
- Alerts and Webhooks — monitor new content and processing events

