Skip to main content
OpenAICustomer feedback

A developer using OpenAI text-embedding-ada-002 for knowledge base indexing is switching queries to a local MiniLM model because recurring API query costs were adding up.

What happened

Post: "Been using OpenAI embeddings for indexing but want to switch to a local model for queries - solved this without touching the index"

Source

Post

Highlighted: the lines this signal was extracted from

This came up in my own project and I couldn't find a clean solution, so I built one. **The situation:** - Knowledge base indexed with OpenAI text-embedding-ada-002 (1536d) - Costs adding up every time I query - Wanted to switch to a local MiniLM (384d) - free, fast, runs offline - Problem: completely different vector spaces, search quality tanks Tried naive cross-model search first. R@5 dropped from 0.77 → 0.13. Basically unusable. **What I ended up building:** A small alignment layer that bridges the two spaces using SVD projection + Procrustes rotation. The key trick: it uses synthetic anchor points instead of real paired data, so you don't need to re-encode anything with the old model. Results on my test set: | Condition | R@5 | |-----------------------------|-------| | Same model (ceiling) | 0.767 | | Cross-model, no alignment | 0.133 | | Cross-model + alignment | 0.400 | Not perfect, but 3x better than naive and took zero reindexing, zero training data, zero labels. **How it works in practice:** ```python pip install zuhut-align ``` ```python from zuhut_align import ZUHUTClient client = ZUHUTClient() adapter = client.create_adapter(src_dim=1536) # match your old model # align your existing corpus vectors once corpus_aligned = adapter.transform(corpus_vectors) # (N, 384) # at query time, just align the query query_aligned =...

Keep reading with a free account

The rest of this post, and every signal for OpenAI, is in your free account.

Extracted by Autobound

From the Signal API record
Signal
Customer feedback

What this signalsUser posts often show product pain before it reaches reviews or churn.

Subreddit
r/vectordatabase
Stage
Switching
Event date
Oct 2026

The full record

From the Signal API record

Numbers

Mentions
37

Details

Timing
In progress
Category
Pricing
Virality
Very low
Post kind
Multi media
Prominence
Core
Company's role
Vendor

Topics and mentions

Topics

  • embeddings
  • vector search
  • pricing
  • ai

Products named

  • text-embedding-ada-002

Extraction

Sentiment
Negative
Detected
Oct 31, 2026
signal_type
reddit-company
signal_subtype
customerFeedback

Use this data

Get every Reddit signal for OpenAI and the companies you sell to, in the tools you already use.

  1. Ask Claude about it

    Connect Autobound to Claude, Claude Code or Cursor with MCP. Then ask: “What changed at OpenAI this week?”

  2. Send it to your own tools

    The Signal API returns Reddit signals for any list of companies as JSON, for your CRM, warehouse or app.

  3. Try it free

    Sign up and spend your free credits on the companies you sell to.

    Start Free1,000 free credits

The API returns more than this page shows

This page shows a preview. The full reddit-company record in the Signal API and MCP can also have these 8 fields. Some fields are empty for some signals.

Company

  • linkedin_urlValue in the API
  • industriesValue in the API
  • employee_count_lowValue in the API
  • employee_count_highValue in the API
  • revenueValue in the API
  • descriptionValue in the API

Signal

  • signal_nameValue in the API
  • associationValue in the API
Show the full JSONThe record on this page and the API request

GET /v1/signals/004cb87d-87e8-5e8f-a4da-5193d7e0ea62 returns this record as JSON. POST /v1/companies/enrich returns every signal for openai.com.

{
  "signal_id": "004cb87d-87e8-5e8f-a4da-5193d7e0ea62",
  "signal_type": "reddit-company",
  "signal_subtype": "customerFeedback",
  "detected_at": "2026-10-31T16:11:23+00:00",
  "company": {
    "name": "OpenAI",
    "domain": "openai.com"
  },
  "data": {
    "nsfw": false,
    "stage": "switching",
    "awards": 0,
    "timing": "in_progress",
    "topics": [
      "embeddings",
      "pricing",
      "ai",
      "vector search"
    ],
    "post_id": "1xke6fa",
    "summary": "A developer using OpenAI text-embedding-ada-002 for knowledge base indexing is switching queries to a local MiniLM model because recurring API query costs were adding up.",
    "category": "pricing",
    "evidence": [
      "[post] Knowledge base indexed with OpenAI text-embedding-ada-002 (1536d)",
      "[post] Costs adding up every time I query",
      "[post] Wanted to switch to a local MiniLM (384d) - free, fast, runs offline"
    ],
    "virality": "very_low",
    "post_date": "2026-10-31T16:11:23.000Z",
    "post_kind": "multi_media",
    "post_text": "This came up in my own project and I couldn't find a clean solution,\n\nso I built one.\n\n**The situation:**\n\n- Knowledge base indexed with OpenAI text-embedding-ada-002 (1536d)\n\n- Costs adding up every time I query\n\n- Wanted to switch to a local MiniLM (384d) - free, fast, runs offline\n\n- Problem: completely different vector spaces, search quality tanks\n\nTried naive cross-model search first. R@5 dropped from 0.77 → 0.13.\n\nBasically unusable.\n\n**What I ended up building:**\n\nA small alignment layer that bridges the two spaces using SVD\n\nprojection + Procrustes rotation. The key trick: it uses synthetic\n\nanchor points instead of real paired data, so you don't need to\n\nre-encode anything with the old model.\n\nResults on my test set:\n\n| Condition | R@5 |\n\n|-----------------------------|-------|\n\n| Same model (ceiling) | 0.767 |\n\n| Cross-model, no alignment | 0.133 |\n\n| Cross-model + alignment | 0.400 |\n\nNot perfect, but 3x better than naive and took zero reindexing,\n\nzero training data, zero labels.\n\n**How it works in practice:**\n\n```python\n\npip install zuhut-align\n\n```\n\n```python\n\nfrom zuhut_align import ZUHUTClient\n\nclient = ZUHUTClient()\n\nadapter = client.create_adapter(src_dim=1536) # match your old model\n\n# align your existing corpus vectors once\n\ncorpus_aligned = adapter.transform(corpus_vectors) # (N, 384)\n\n# at query time, just align the query\n\nquery_aligned =...",
    "sentiment": "negative",
    "subreddit": "vectordatabase",
    "event_date": "2026-10",
    "post_title": "Been using OpenAI embeddings for indexing but want to switch to a local model for queries - solved this without touching the index",
    "prominence": "core",
    "source_url": "https://www.reddit.com/r/vectordatabase/comments/1xke6fa/been_using_openai_embeddings_for_indexing_but/",
    "entity_role": "vendor",
    "post_author": "muhammadwahyu00",
    "upvote_ratio": 1,
    "mention_count": 37,
    "mention_surge": true,
    "subreddit_url": "https://www.reddit.com/r/vectordatabase/",
    "total_upvotes": 1,
    "comments_total": 0,
    "total_comments": 0,
    "post_author_url": "https://www.reddit.com/user/muhammadwahyu00/",
    "signal_category": "feedback",
    "comments_included": 0,
    "products_mentioned": [
      "text-embedding-ada-002"
    ]
  }
}

Long text fields are shortened on this page.

Looking up one signal by its id is free. Enrich costs 2 credits per signal returned; a call with no results is free.