Indexar su texto
Operar bien una base de datos vectorial implica elegir una estrategia de troceado, un modelo de embeddings, un tipo de índice y una factura de hosting antes de que corra una sola consulta de búsqueda. Este endpoint se salta ese montaje por completo: envíe texto, obtenga un índice consultable, y consúltelo cuando lo necesite.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Lo que implica realmente operar su propia base vectorial
Un sistema de búsqueda semántica que funcione bien necesita al menos cuatro decisiones acertadas: cómo dividir texto largo en fragmentos, qué modelo de embeddings usar, en qué tipo de índice guardar los vectores y cómo mantener ese índice disponible y respaldado. La mayoría de los equipos que necesitan búsqueda semántica no quieren ser dueños de nada de esa infraestructura: quieren un lugar donde enviar texto y un lugar donde enviar consultas. search.index_text está construido justo para esa brecha.
Qué pasa entre el envío y un índice consultable
Haga POST a /search/index-text con su contenido, reciba un task_id y obtenga confirmación por webhook o mediante un enlace firmado de 24 horas cuando el texto ya haya sido dividido en fragmentos, vectorizado y escrito en un índice asociado a su cuenta. A partir de ahí, el contenido se puede consultar mediante los endpoints de búsqueda sin que usted toque directamente ni un solo vector.
Por qué el troceado es el paso silencioso y decisivo
Cómo se divide el texto importa más de lo que la mayoría espera: un fragmento demasiado grande diluye el significado específico que busca una consulta, y uno demasiado pequeño pierde el contexto que le da sentido. Es la misma tensión con la que los sistemas de recuperación de documentos han lidiado desde antes de que existieran los embeddings, desde cómo las bibliotecas y los primeros buscadores de texto completo decidían qué contaba como unidad recuperable: una página, un párrafo, una sección.
Lo que sigue bajo su control
Usted elige qué enviar y cuándo enviarlo; el índice en sí vive de nuestro lado y se consulta a través de la API de búsqueda, no mediante una conexión de base de datos que usted administre. Si prefiere quedarse con los vectores en bruto —para un índice propio, un almacén de datos o un modelo que esté entrenando— search.embed o search.embed_batch devuelven vectores en lugar de construir un índice por usted.
Dónde encaja en un producto real
La búsqueda en bases de conocimiento, la búsqueda de documentación interna y la recuperación de contexto para RAG son los usos más comunes: indexe el material fuente una vez y luego consúltelo por cada solicitud de usuario. Un equipo de soporte indexa sus artículos de ayuda y su FAQ para que un asistente de chat traiga el pasaje correcto en lugar de adivinar. La facturación es por solicitud más por 1000 fragmentos, así que indexar una FAQ corta e indexar años de documentación interna cuestan exactamente lo que usan, sin nada supuesto de antemano.
Qué puede hacer con ella
Búsqueda en base de conocimiento interna
Una empresa indexa el texto de su wiki interna para que los empleados busquen por significado en lugar de adivinar la frase exacta que usa una página.
Almacén de contexto RAG para un asistente de chat
Un equipo de producto indexa los artículos de su centro de ayuda para que un chatbot de soporte recupere el pasaje correcto antes de que un modelo redacte una respuesta.
Notas y transcripciones consultables
Un equipo de investigación indexa transcripciones de reuniones y notas para que cualquiera pueda buscar después qué se discutió sobre un tema en meses de registros.
Revisión de duplicados de contenido
Una editorial indexa borradores antes de publicarlos para buscar pasajes casi duplicados frente a artículos ya publicados.
Preguntas frecuentes
¿Cómo indexo texto para búsqueda con la API?
Envíe su texto a POST /search/index-text, guarde el task_id devuelto y reciba la confirmación de que el contenido quedó indexado por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API para indexar texto?
No, no hay plan gratuito ni prueba; cuesta $0.010 por solicitud más $0.002 por 1000 fragmentos, y una tarea fallida nunca se cobra.
¿Necesito montar mi propia base de datos vectorial?
No, ese es el sentido de este endpoint: el troceado, la vectorización y el almacenamiento ocurren de nuestro lado, y usted consulta el contenido a través de la API de búsqueda.
¿Cómo se divide el texto en fragmentos?
El contenido se trocea automáticamente en fragmentos dimensionados para conservar el contexto sin perder precisión en la recuperación; no necesita dividirlo usted mismo de antemano.
¿En qué se diferencia esto de search.embed?
search.embed devuelve un vector en bruto para que usted lo guarde; search.index_text combina troceado, vectorización y almacenamiento y le entrega un índice listo para consultar.
¿Puedo actualizar o eliminar contenido indexado después?
Sí, revise la referencia del endpoint para conocer las operaciones de actualización y eliminación sobre una entrada existente del índice.
¿Puedo indexar grandes volúmenes de texto a la vez?
Sí, y para indexar muchos documentos separados en un solo trabajo suele ser más eficiente agrupar los envíos en lote en vez de enviarlos uno por uno.
¿Mi texto indexado se usa para entrenar algún modelo?
No, el contenido indexado se elimina después del período de retención y nunca se usa para entrenamiento.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/search/index-text \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/index-text", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/index-text",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/index-text", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/index-text", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.index_text",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chunks | 10000 |
max_tokens | 20000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |