GENERAR EMBEDDINGS CON PHP: GUÍA PRÁCTICA

Un embedding es una técnica de Inteligencia Artificial que transforma datos complejos (texto, imágenes, audio) en listas de números (vectores) que capturan su significado semántico. Permite que las máquinas entiendan relaciones y similitudes, posicionando conceptos cercanos en un espacio multidimensional. La forma más fácil y recomendada de generar embeddings con PHP es usando OpenAI API.
PHP tiene una librería oficial muy buena: "openai-php/client":

composer require openai-php/client

Código ejemplo

require_once 'vendor/autoload.php';

use OpenAI;

$client = OpenAI::client($_ENV['OPENAI_API_KEY']);   // Mejor usar .env

function generarEmbedding(string $texto, string $modelo = 'text-embedding-3-small'): array
{
    $response = $client->embeddings()->create([
   'model' => $modelo,
   'input' => $texto,
   'encoding_format' => 'float',
    ]);

    return $response->embeddings[0]->embedding;   // Devuelve array de floats (1536 o 3072 dimensiones)
}

// ====================== USO ======================

$texto = "MariaDB es una excelente base de datos que soporta vectores desde la versión 11.7";

$embedding = generarEmbedding($texto);

Modelos recomendados

  • "text-embedding-3-small" → Más barato y rápido (1536 dims)
  • "text-embedding-3-large" → Mejor calidad (3072 dims)

Insertar el embedding directamente en MariaDB

$stmt = $pdo->prepare("
    INSERT INTO articulos (titulo, contenido, embedding)
    VALUES (?, ?, VEC_FromText(?))
");

$embeddingJson = json_encode($embedding);

$stmt->execute([$titulo, $contenido, $embeddingJson]);