Skip to main content
In this guide, you’ll learn how to convert text into numerical vectors (embeddings) using OpenAI’s text-embedding-ada-002 model and perform similarity searches with NumPy. This technique is essential for building semantic search, recommendation engines, and context-aware chatbots.

1. Setup

1.1 Install Dependencies

Make sure you have the OpenAI SDK and NumPy installed:

1.2 Import Libraries and Define Helper

Each embedding from text-embedding-ada-002 has a fixed dimension of 1536, regardless of the input length.

2. Sample Phrases

We’ll use four phrases that share keywords but differ in meaning:

3. Generating Embeddings

Convert each phrase to its embedding vector:

4. Defining Cosine Similarity

Cosine similarity measures the angle between two vectors in the semantic space. Identical vectors yield a score of 1.0.

5. Running Similarity Searches

Define a function to find the most similar phrase from our list:

5.1 Example Queries

Expected outputs:
  • Exact riverbank match → similarity ≈ 1.00
  • Biscuits (edible cookies) → ≈ 0.92
  • Financial advice → ≈ 0.84
  • Nature reference → ≈ 0.82
  • GDPR cookies → ≈ 0.83

6. Discussion

  • Embeddings capture semantic context, not just surface-level keywords.
  • All vectors have the same dimensionality (1536) to sit in a common embedding space.
  • Cosine similarity retrieves items by meaning, not by exact word overlap.
This approach powers many AI-driven features such as semantic search, recommendation engines, and dynamic context for chatbots.
Experiment by adding new phrases, querying different sentences, and watching how similarity scores adapt to meaning.

Watch Video