NEWVectors or files. Pick a path.Start →
    embedding

    How do I turn text into embeddings?

    How to turn text into embeddings for semantic search and RAG: which model to pick, how many dimensions you need, whether to chunk first, and where to store the vectors. Converts sentences, paragraphs and documents into dense vectors with the same model for queries and passages.

    The short answer

    An embedding model reads a piece of text and returns a fixed-length vector, usually 384 to 3072 numbers, positioned so that texts with similar meaning land close together. You turn text into embeddings by choosing one model, splitting long documents into chunks the model can read whole, running every chunk and every query through that same model, and storing the vectors next to the text they came from in a vector index. The model choice matters more than anything else: it fixes the vector size, the languages covered and the maximum text length, and changing it later means re-embedding the corpus.

    Max file size: 10 MB
    Estimated: < 1 sec per 1000 tokens
    3 input formats

    How It Works

    1

    Provide text content in the request body or upload a text file.

    2

    Text is optionally chunked by token count or semantic boundaries.

    3

    Each chunk is tokenized and processed through the embedding model.

    4

    Dense vectors are returned with chunk text and metadata.

    5

    Optionally, embeddings are stored directly in your namespace.

    Code Examples

    import os, requests
    
    API = "https://api.mixpeek.com"
    H = {"Authorization": f"Bearer {os.environ['MIXPEEK_API_KEY']}",
         "X-Namespace": os.environ["NAMESPACE_ID"]}
    
    # 1. a bucket, with a schema that declares the field you will send
    bucket = requests.post(f"{API}/v1/buckets", headers=H, json={
        "bucket_name": "text-inputs",
        "bucket_schema": {"properties": {"text": {"type": "text"}}},
    }).json()
    
    # 2. land the file as an object. the URL goes in data, on the blob
    requests.post(f"{API}/v1/buckets/{bucket['bucket_id']}/objects", headers=H, json={
        "key_prefix": "run-1",
        "blobs": [{"property": "text", "type": "text",
                   "data": "https://example.com/notes.txt"}],
    })
    
    # 3. a collection over that bucket, running the extractor
    collection = requests.post(f"{API}/v1/collections", headers=H, json={
        "collection_name": "text-to-embeddings",
        "source": {"type": "bucket", "bucket_ids": [bucket["bucket_id"]]},
        "feature_extractor": {"feature_extractor_name": "text_extractor", "version": "v1"},
    }).json()
    
    # 4. run extraction over the bucket
    requests.post(f"{API}/v1/buckets/{bucket['bucket_id']}/batches", headers=H, json={
        "collection_ids": [collection["collection_id"]],
        "auto_submit": True,
    })
    
    # 5. read the output
    docs = requests.get(
        f"{API}/v1/collections/{collection['collection_id']}/documents", headers=H
    ).json()
    print(docs)

    Use Cases

    Your keyword search misses documents that say the same thing in different words
    You are building RAG and need the passages a question is about, not the ones that share its keywords
    Support articles are not found when customers describe the problem instead of the feature
    You need one vector per query that lands in the same space as your documents

    Supported Input Formats

    TXT
    Plain text
    Markdown

    Quick Info

    Categoryembedding
    Max File Size10 MB
    Est. Time< 1 sec per 1000 tokens

    Processing millions of files?

    Run this as a managed pipeline over your whole library, no infrastructure to build or maintain. Talk to us about processing at scale.

    Run it over a library

    Mixpeek runs this conversion as a pipeline over a whole library in your object storage, with the output landing as queryable documents. It is not a single-file converter.

    Frequently Asked Questions

    Ready to convert text to embeddings?

    Start using the Mixpeek Text to Embeddings in minutes. Sign up for a free API key and follow the documentation to get started.