Potenciar los resultados de búsqueda de tu empresa sin reemplazar toda la infraestructura es posible gracias al reranking semántico. Esta técnica te permite mantener tu buscador por palabras clave existente y añadir una capa inteligente que reordena los resultados considerando el significado real de la consulta del usuario, no solo las coincidencias textuales.
¿Qué es el reranking semántico y por qué mejora tus búsquedas?
El flujo es directo: primero se ejecuta la búsqueda tradicional por palabras clave, que devuelve documentos relevantes de forma rápida. Después, esos documentos pasan por una segunda etapa donde se reordenan utilizando embeddings [0:20]. Estos embeddings capturan la esencia semántica de la query original, lo que permite que los resultados reflejen mejor la intención del usuario y no solo la coincidencia literal de palabras.
Cohere ofrece un servicio llamado Cohere ReRank que facilita esta implementación. A través de su API, envías una query, los documentos candidatos, el número de resultados deseados y el modelo a utilizar. Con eso obtienes los documentos reordenados semánticamente, listos para alimentar un modelo de lenguaje o para devolverlos directamente en tu sistema de búsqueda [0:52].
¿Cómo obtener tu API key de Cohere?
Para usar el servicio necesitas crear una cuenta en Cohere [1:18]. Una vez dentro del dashboard, busca la sección API Keys. Cohere provee una trial key por defecto que puedes copiar y pegar en tu archivo .env para que tu proyecto la detecte automáticamente [1:40].
¿Qué es BM25 y cómo funciona como buscador por palabras clave?
En la implementación práctica se utiliza el retriever BM25 como simulación del buscador por palabras clave que tu empresa ya podría tener [2:10]. A diferencia de un buscador básico que solo verifica si una palabra existe o no, BM25 considera la frecuencia de aparición de los términos, lo que entrega resultados más precisos. Este componente podría ser reemplazado por cualquier endpoint real, como un sistema con Elasticsearch [2:38].
Los pasos de implementación son:
- Cargar los documentos e inicializar el retriever con el método
from_documents.
- Pasar una query y definir cuántos resultados retornar.
- Obtener los documentos relevantes por coincidencia de palabras clave.
En el ejemplo se obtienen cien documentos rápidamente [3:10], lo cual es típico de las búsquedas por palabras clave: son veloces pero devuelven muchos resultados sin un orden semántico óptimo.
¿Cómo implementar Cohere ReRank en tu código?
Se crea un cliente de Cohere con cohere.Client, que toma la API key desde el archivo de ambiente [3:25]. Una vez listo, se llama al endpoint de Cohere ReRank con los siguientes parámetros:
- query: la pregunta del usuario.
- documents: el texto extraído de los documentos relevantes mediante un list comprehension que obtiene
doc.page_content de cada documento de LangChain [3:55].
- top_n: el número de documentos a retornar, en este caso diez.
- model: el modelo de reranking, como
rerank-multilingual-v2.0 [4:15].
python
reranked_hits = co.rerank(
query=query,
documents=[doc.page_content for doc in relevant_docs],
top_n=10,
model="rerank-multilingual-v2.0"
)
Cada resultado incluye un índice (hit.index) que referencia la posición del documento en la lista original, junto con su metadata y source [4:42].
¿Qué diferencia real produce el reranking en los resultados?
La diferencia es notable. Al preguntar "cómo integrar LangChain Expression Language en mi cadena de generación aumentada", la búsqueda por palabras clave retornaba documentos sobre memoria en las primeras posiciones [5:10]. Tras aplicar el reranking semántico, el primer resultado fue Expression Language Cookbook, que refleja con precisión la intención de la consulta [5:00].
Esto demuestra que el reranking semántico reordena los resultados para alinearlos con el significado de la pregunta, no solo con las palabras que contiene. Tu modelo de lenguaje recibe así un subconjunto compacto y relevante de diez documentos, listo para generar respuestas de calidad.
Si ya tienes un sistema de búsqueda funcionando, integrar Cohere ReRank es una forma práctica de mejorar la precisión sin reconstruir nada. ¿Has probado combinar búsqueda por palabras clave con reranking semántico en tus proyectos?