Manejo de documentos
¿Qué es context aware splitting?
Obtención de datos de la web con LangChain: Context aware data extraction
Context aware data extraction: PDF, XML, DOCX
Context aware splitting de documentos
Quiz: Manejo de documentos
Indexación de vectores
Evitar duplicidad de datos con indexación de vectores
Tipos de indexación de vectores: incremental, full y con BaseLoader
Quiz: Indexación de vectores
Recuperación de documentos
Parent Retriever
Parent Retriever: recuperación de fragmentos largos en lugar de documentos completos
Self-retriever: etiquetado de documentos
Self-retriever: ejecución de recuperación
MultiQuery retriever
Ensemble retriever
Quiz: Recuperación de documentos
Re-ranking semántico
Semantic re-ranking
DiversityRanker (MMR)
LostInTheMiddleRanker
Quiz: Re-ranking semántico
RAG
Integración de retrieval-augmented generation (RAG)
Ejecución del buscador con Streamlit
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La implementación de un Celler Tver puede proporcionar una precisión destacable al filtrar grandes cantidades de datos. Este tipo de herramienta es fundamental para crear librerías de documentos más específicas, mejorando la eficiencia en modelos de lenguaje natural. Aquí aprenderás cómo llevar a cabo esta tarea de manera eficaz.
El principal objetivo de un Celler Tver es crear un motor de búsqueda que, utilizando etiquetas y metadatos, pueda seleccionar documentos específicos de un vasto conjunto de datos. Este enfoque no solo ayuda a filtrar, sino que también focaliza los esfuerzos en obtener solo los datos relevantes.
Para construir un Celler Tver eficaz, es esencial pasar un esquema de atributos que represente los metadatos. Este esquema permite definir parámetros críticos para el filtrado:
atribut_info = {
'complet': {
'description': 'Descripción del parámetro complet',
'type': 'enum',
'levels': ['muy completo', 'poco completo', 'no completo']
}
}
Hay que estar conscientes de que estos atributos dependen de cómo están escritos en los metadatos originales, ya que no siempre se tiene el control sobre ello.
Luego de definir los metadatos necesarios, se prosigue a crear el retriever usando un modelo de lenguaje de nuestra elección, por ejemplo, ChatOpen:
modelo_lenguaje = 'ChatOpen' # O cualquier otro modelo preferido
retriever = Celler.from_lm(
model=modelo_lenguaje,
document_store=store, # Tu almacenamiento de vectores
content_desc="Documentación sobre lunch",
metadata_fields=atribut_info,
verbose=True
)
Este proceso indica que se fusiona el modelo de lenguaje para transformar queries en parámetros entendibles por el almacenamiento de vectores.
Una vez configurado el retriever, puedes proceder con la búsqueda efectiva de documentos. Es crucial entender que los términos utilizados impactan significativamente en los resultados:
# Ejemplo de búsqueda
query = "Code Snippets"
retriever.retrieve(query)
Este proceso va a generar un warning inicialmente, pero es solo una alerta que puede ser ignorada.
Cuando las queries no dan resultados óptimos, puede ser debido a filtros poco aceptados o que simplemente no existen registros que cumplan con todos los términos. Se recomienda:
Probar distintas combinaciones: Es una práctica útil adaptar el texto de las queries hasta que se obtengan resultados satisfactorios.
Ajustar los filtros: Implementar filtros más flexibles que no restrinjan excesivamente la búsqueda.
Explora combinaciones para encontrar documentos que cumplan múltiples atributos. Este ajuste fino es clave para una indexación precisa y eficiente.
Los motores de búsqueda impulsados por modelos de lenguaje natural tienen un alcance enorme en la filtración de datos complejos. Te animo a seguir explorando y ajustando queries, favoreciendo una fluidez y adaptabilidad en tus proyectos. A largo plazo, estos conocimientos potenciarán tu capacidad de gestionar y analizar grandes volúmenes de información con precisión.
Aportes 1
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?