Generar embeddings con text-embedding-3
Use OpenAI text-embedding-3-small/large para convertir cadenas en vectores de 1536 o 3072 dimensiones.
Generar embeddings con text-embedding-3 es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Modelos de embedding de OpenAI
OpenAI ofrece dos modelos de embedding para producción:
- text-embedding-3-small — 1536 dimensiones, económico y rápido
- text-embedding-3-large — 3072 dimensiones, mayor calidad y más lento
Use small en la mayoría de los casos y large únicamente cuando la calidad sea más importante que el coste.
Su primer embedding
Una línea de código del SDK:
from openai import OpenAI
client = OpenAI()
resp = client.embeddings.create(
model='text-embedding-3-small',
input='Hello, world!'
)
vector = resp.data[0].embedding
print(len(vector)) # 1536Embedding por lotes
La API admite listas, lo que es mucho más rápido que hacer una llamada cada vez:
texts = ['cat', 'dog', 'pizza', 'sushi']
resp = client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
vectors = [d.embedding for d in resp.data]
# vectors[0] is for 'cat', vectors[1] for 'dog', etc.Límites de tokens
Cada entrada tiene un límite máximo de tokens (8192 para text-embedding-3). Primero debe dividir los documentos largos en fragmentos.
Reducir las dimensiones
Puede solicitar menos dimensiones (embeddings Matryoshka), lo que resulta útil para el almacenamiento:
resp = client.embeddings.create(
model='text-embedding-3-large',
input='Hello',
dimensions=512 # default would be 3072
)Coste
En el momento de escribir esto:
- text-embedding-3-small: 0,02 $ / 1M de tokens
- text-embedding-3-large: 0,13 $ / 1M de tokens
Generar embeddings para 1M de palabras cuesta aproximadamente 0,025 $ con el modelo small: prácticamente gratis.
Genere embeddings una vez y reutilícelos siempre
Los embeddings no cambian al volver a generarlos; puede calcularlos una vez y almacenarlos. El almacenamiento en caché es esencial para cualquier sistema de producción.
Normalizar vectores
Los embeddings de OpenAI ya están normalizados mediante L2 (longitud = 1). Esto significa que la similitud coseno = el producto escalar, lo que ahorra cálculo:
import numpy as np
a = np.array(vec_a)
b = np.array(vec_b)
sim = np.dot(a, b) # since |a| = |b| = 1Embedding asíncrono
Para un alto rendimiento, use el cliente asíncrono:
from openai import AsyncOpenAI
import asyncio
client = AsyncOpenAI()
async def embed_batch(texts):
resp = await client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
return [d.embedding for d in resp.data]
vectors = asyncio.run(embed_batch(['a', 'b', 'c']))Reintentar en caso de error
Las llamadas para generar embeddings fallan como cualquier llamada HTTP. Envuélvalas en un mecanismo de reintento con retroceso:
from tenacity import retry, wait_exponential, stop_after_attempt
@retry(wait=wait_exponential(multiplier=1, max=10), stop=stop_after_attempt(5))
def safe_embed(text):
return client.embeddings.create(model='text-embedding-3-small', input=text)Almacenar embeddings
Tres opciones habituales de almacenamiento:
- SQLite con la extensión
sqlite-vec - Postgres con la extensión
pgvector - Una base de datos vectorial especializada (Pinecone, Qdrant, Weaviate)
Tener en cuenta los costes
¿Cuánto cuesta aproximadamente generar embeddings para 1 millón de palabras con text-embedding-3-small?
Recapitulación
Elija text-embedding-3-small, agrupe las llamadas por lotes, almacene los vectores y tendrá los fundamentos de la búsqueda semántica.
Preguntas frecuentes
¿La lección «Generar embeddings con text-embedding-3» es gratis?
Sí — el texto completo de «Generar embeddings con text-embedding-3» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Generar embeddings con text-embedding-3»?
Use OpenAI text-embedding-3-small/large para convertir cadenas en vectores de 1536 o 3072 dimensiones. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Generar embeddings con text-embedding-3»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Qué son los embeddings (representaciones vectoriales)
- Generar embeddings con text-embedding-3
- Similitud coseno para la recuperación
- Comparación de modelos de embeddings (OpenAI frente a Cohere y OSS)