Documentos similares
A veces no hay ninguna consulta que escribir: ya tiene el documento que importa, y lo que busca es todo lo demás en su corpus que se le parezca. Este endpoint recibe un documento de referencia en lugar de una frase de búsqueda y devuelve los otros documentos de su conjunto que son conceptualmente más cercanos a él.
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.
Un problema de búsqueda sin consulta natural
La mayoría de las búsquedas asumen a una persona escribiendo unas pocas palabras que describen lo que busca, pero muchas necesidades reales de recuperación parten de un documento, no de una frase: un lector acaba de terminar un artículo y quiere más como ese, un equipo legal tiene un contrato y necesita todo acuerdo similar en el archivo, un agente de soporte tiene un ticket resuelto y quiere tickets anteriores con el mismo problema de fondo. Comprimir un documento entero en una consulta corta pierde lo que lo hace distintivo, y esa es la información que este endpoint usa en vez de descartarla.
Cómo funciona la coincidencia
Envía por POST un documento de referencia junto con el conjunto de candidatos a /search/similar-docs, y la tarea representa el contenido completo del documento como un punto en un espacio de significado, mide qué tan cerca está cada candidato de ese punto y devuelve los candidatos ordenados por cercanía. No hay extracción de palabras clave ni necesidad de resumir el documento en una consulta primero; el documento entero es la consulta, lo cual hace que las coincidencias reflejen su contenido real y no un puñado de términos que alguien adivinó como importantes.
Similitud entre elementos, una idea vieja con forma nueva
Esta es la prima orientada a documentos del patrón 'clientes que compraron esto también compraron' que los sistemas de recomendación usan desde hace décadas, aplicado aquí a similitud de texto en lugar de historial de compras. Lo que cambió es la representación: en vez de depender de etiquetas compartidas o estadísticas de coocurrencia, la comparación ocurre sobre el significado capturado del contenido del documento, así encuentra material genuinamente similar incluso entre documentos que casi no comparten vocabulario.
Dónde 'más como este' se gana su lugar
Las plataformas de contenido lo usan para impulsar módulos de artículos o productos relacionados sin etiquetar cada elemento a mano; los equipos legales y de cumplimiento lo usan para encontrar todo contrato, política o expediente similar a uno de referencia en un archivo grande; los equipos de soporte lo usan para encontrar tickets anteriores que coincidan en fondo con uno nuevo, no solo en palabras. En todos estos casos, el punto de partida es un documento que la persona ya tiene en mano, no una frase que tendría que redactar.
Precio y cómo se factura
El costo es una tarifa base pequeña por solicitud más un cargo por consulta, publicado en esta página sin importar cuántos candidatos se comparen contra el documento de referencia. La tarea funciona de forma asíncrona: envía el documento de referencia y los candidatos, recibe un task_id de inmediato, y recolecta las coincidencias ordenadas mediante webhook firmado o un enlace firmado válido por 24 horas; una tarea fallida reintenta automáticamente hasta tres veces y nunca se cobra si sigue sin completarse.
Qué puede hacer con ella
Artículos relacionados y recomendaciones de contenido
Un medio muestra a sus lectores más artículos similares al que acaban de terminar, generados automáticamente a partir del contenido del artículo en lugar de etiquetado manual.
Búsqueda de similitud entre contratos y políticas
Un equipo legal encuentra todo acuerdo en un archivo grande que se parece a un contrato de referencia dado, agilizando la debida diligencia y la revisión de precedentes.
Coincidencia de precedentes en tickets de soporte
Una mesa de ayuda encuentra tickets anteriores similares en fondo a uno nuevo, mostrando resoluciones que solucionaron el mismo problema de base aunque con otra redacción.
Detección de contenido duplicado o casi duplicado
Un equipo de contenido escanea un conjunto grande de documentos en busca de entradas muy parecidas a un archivo de referencia conocido, marcando casi duplicados para revisión o limpieza.
Preguntas frecuentes
¿Qué hace una API de documentos similares?
Recibe un documento de referencia y un conjunto de candidatos, y devuelve los candidatos ordenados según qué tan similares son conceptualmente al documento de referencia, sin necesidad de una consulta de búsqueda.
¿Necesito escribir una consulta de búsqueda para usarla?
No, el documento de referencia en sí es la entrada; el endpoint compara su contenido completo contra sus candidatos y los ordena por similitud.
¿La API de documentos similares es gratuita?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿En qué se diferencia de la búsqueda semántica?
La búsqueda semántica parte de una consulta de texto corta; los documentos similares parten de un documento de referencia completo y encuentran otros documentos parecidos, lo cual captura más matices de los que suele permitir una consulta corta.
¿Cómo recibo los resultados?
La tarea devuelve un task_id de inmediato y procesa de forma asíncrona, entregando las coincidencias ordenadas por webhook firmado o un enlace firmado válido por 24 horas.
¿Puede encontrar documentos duplicados o casi duplicados?
Sí, al ordenar los candidatos por cercanía a un documento de referencia, los casi duplicados naturalmente aparecen cerca del primer lugar de los resultados, lo cual es útil para revisiones de deduplicación.
¿Puedo comparar un documento de referencia contra un archivo grande?
Sí, envía el documento de referencia junto con todo su conjunto de candidatos en una sola solicitud; el precio es por solicitud y por consulta, sin límite artificial en el tamaño del conjunto de candidatos.
¿Qué pasa si falla una solicitud de documentos similares?
La tarea reintenta automáticamente hasta tres veces antes de devolver un error claro, y una solicitud fallida nunca se cobra.
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/similar-docs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/similar-docs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/similar-docs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/similar-docs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/similar-docs", 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
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.similar_docs",
"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. |