| name | vector-search |
| description | Perform vector similarity search using embeddings. Use when implementing semantic search, finding similar documents, or building recommendation systems. NOT needed for basic content aggregation or API integration. |
Vector Search
Provides patterns for vector-based similarity search.
Embedding Generation
import requests
from typing import List
def get_embeddings(texts: List[str], api_url: str, api_key: str) -> List[List[float]]:
"""
Generate embeddings for texts using embedding API.
Returns list of embedding vectors.
"""
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
payload = {
"model": "text-embedding-ada-002",
"input": texts
}
response = requests.post(api_url, headers=headers, json=payload)
response.raise_for_status()
data = response.json()
return [item["embedding"] for item in data["data"]]
Similarity Calculation
import math
from typing import List
def cosine_similarity(vec1: List[float], vec2: List[float]) -> float:
"""Calculate cosine similarity between two vectors."""
dot_product = sum(a * b for a, b in zip(vec1, vec2))
norm1 = math.sqrt(sum(a * a for a in vec1))
norm2 = math.sqrt(sum(b * b for b in vec2))
return dot_product / (norm1 * norm2) if norm1 and norm2 else 0
def find_similar(query_vec: List[float], vectors: List[List[float]],
top_k: int = 10) -> List[tuple]:
"""Find most similar vectors to query."""
similarities = [
(i, cosine_similarity(query_vec, vec))
for i, vec in enumerate(vectors)
]
return sorted(similarities, key=lambda x: x[1], reverse=True)[:top_k]
Note
Vector search is for advanced semantic similarity use cases. For basic aggregation tasks involving search APIs, use the search-api and content-aggregation skills instead.