IA para una navegación más inteligente: Filtrado de contenidos web con Pixtral, Milvus y el uso del navegador
Como Defensor de los Desarrolladores de Milvus, paso mucho tiempo en las redes sociales, escuchando lo que la gente tiene que decir sobre nosotros y si yo también puedo ayudar. Sin embargo, hay un pequeño choque de mundos cuando se busca "Milvus". Es tanto un vector DB como un género de ave, lo que significa que en un momento estoy metido de lleno en un hilo sobre algoritmos de similitud vectorial y al siguiente estoy admirando impresionantes fotografías de pájaros negros volando por el cielo.
Aunque ambos temas son interesantes, mezclarlos no es realmente útil en mi caso, ¿y si hubiera una forma inteligente de resolver este problema sin que yo tuviera que comprobarlo manualmente?
Construyamos algo más inteligente: combinando la comprensión visual con el conocimiento del contexto, podemos construir un asistente que sepa distinguir entre los patrones de migración de un milano negro y un nuevo artículo nuestro.
La pila tecnológica
Combinamos tres tecnologías diferentes:
- Browser-Use: esta herramienta navega por varios sitios web (por ejemplo, Twitter) para buscar contenidos.
- Pixtral: Un modelo de visión-lenguaje que analiza imágenes y contexto. En este ejemplo, distingue entre un diagrama técnico sobre nuestra base de datos vectorial y una impresionante fotografía de un pájaro.
- Milvus: Una base de datos vectorial de alto rendimiento y de código abierto. En ella almacenaremos las entradas relevantes para su posterior consulta.
Verlo en acción
Echemos un vistazo a esos 2 posts:
Para el de la izquierda, Pixtral reconoce que se trata de un post sobre Milvus, el Vector DB. Mencionó algunos detalles de implementación, sino también una imagen que muestra un diagrama del sistema, lo que indica que esto es, en efecto, sobre el Vector DB. Podemos ver a continuación que Pixtral también piensa lo mismo.
INFO [src.agent.custom_agent] 🧠 New Memory: 1. The post by LangChainAI discusses the 'GraphRAG Agent' which uses Neo4j and Milvus vector search to enhance RAG systems.
2. Replies include praise for the use of Milvus in intelligent retrieval and vector search.
3. Specific mention of Milvus as a key component in innovative RAG systems.
4. No content related to birds or photography was found.
INFO [src.agent.custom_agent] ⏳ Task Progress:
1. Navigated to the post URL. 2. Extracted relevant post content. 3. Analyzed the content for relevance to Milvus, the Vector DB.
INFO [src.agent.custom_agent] 📋 Future Plans:
1. Summarize the findings and confirm the relevance to Milvus. 2. Complete the task by providing a clear and concise report.
INFO [src.agent.custom_agent] 🤔 Thought: The task required analyzing the post content for relevance to Milvus, the Vector DB, ignoring any content about birds or photography. The extracted content is entirely relevant to Milvus and its applications in vector search and RAG systems. I will now summarize the findings and complete the task.
INFO [src.agent.custom_agent] 🎯 Summary: The post and its replies are relevant to Milvus, the Vector DB, focusing on its use in intelligent retrieval and vector search. No content about birds or photography was found.
INFO [src.agent.custom_agent] 🛠️ Action 1/1: {"done":{"text":"The post by LangChainAI discusses the 'GraphRAG Agent,' which uses Neo4j and Milvus vector search to enhance RAG systems. Replies highlight the innovative use of Milvus for intelligent retrieval and vector search, with no mention of birds or photography. The content is entirely relevant to Milvus, the Vector DB."}}
INFO [src.agent.custom_agent] 🧠 All Memory:
1. The post by LangChainAI discusses the 'GraphRAG Agent' which uses Neo4j and Milvus vector search to enhance RAG systems.
2. Replies focus on the innovative use of Milvus for intelligent retrieval and vector search alongside other technologies.
3. No posts or replies are related to birds or photography.
1. The post by LangChainAI discusses the 'GraphRAG Agent' which uses Neo4j and Milvus vector search to enhance RAG systems.
2. Replies include praise for the use of Milvus in intelligent retrieval and vector search.
3. Specific mention of Milvus as a key component in innovative RAG systems.
4. No content related to birds or photography was found.
La de la derecha, en cambio, no lo es, podemos ver que esta imagen, por muy bonita que sea, no trata de un Vector DB. Podemos ver un pájaro volando en el cielo, por lo tanto, Pixtral considerará ésta irrelevante.
INFO [src.agent.custom_agent] 🧠 New Memory: The post and comments primarily discuss photography and birds. No references to Milvus the Vector Database are found.
INFO [src.agent.custom_agent] ⏳ Task Progress:
Navigated to the post. Analyzed the content for relevance to Milvus, the Vector DB. No relevant information found.
INFO [src.agent.custom_agent] 🤔 Thought: The content of the post and comments only discusses birds and photography. Since the task specifies ignoring such topics, there is no relevant information for Milvus, the Vector DB. The task can now be concluded.
INFO [src.agent.custom_agent] 🎯 Summary: The post does not contain relevant information for Milvus, the Vector DB. I will conclude the task.
INFO [src.agent.custom_agent] 🛠️ Action 1/1: {"done":{"text":"The post and comments focus on birds and photography. No relevant information related to Milvus, the Vector DB, was found."}}
INFO [src.agent.custom_agent] 🧠 All Memory:
The post and comments primarily discuss photography and birds. No references to Milvus the Vector Database are found.
Ahora que hemos filtrado las entradas que no queremos, podemos guardar las relevantes en Milvus. De este modo, podremos consultarlas más tarde utilizando la Búsqueda vectorial o la Búsqueda de texto completo.
Almacenamiento de datos en Milvus
Los campos dinámicos son imprescindibles en este caso porque no siempre es posible respetar el esquema que espera Milvus. Con Milvus, sólo tiene que utilizar enable_dynamic_field=True al crear su esquema, y eso es todo. He aquí un fragmento de código para mostrar el proceso:
from pymilvus import MilvusClient
# Connect to Milvus
client = MilvusClient(uri=“http://localhost:19530”)
# Create a Schema that handles Dynamic Fields
schema = self.client.create_schema(enable_dynamic_field=True)
schema.add_field(field_name=“id”, datatype=DataType.INT64, is_primary=True, auto_id=True)
schema.add_field(field_name=“text”, datatype=DataType.VARCHAR, max_length=65535, enable_analyzer=True)
schema.add_field(field_name=“vector”, datatype=DataType.FLOAT_VECTOR, dim=384)
schema.add_field(field_name=“sparse”, datatype=DataType.SPARSE_FLOAT_VECTOR)
A continuación definimos los datos a los que queremos tener acceso:
# Prepare data with dynamic fields
data = {
'text': content_str,
'vector': embedding,
'url': url,
'type': content_type,
'metadata': json.dumps(metadata or {})
}
# Insert into Milvus
self.client.insert(
collection_name=self.collection_name,
data=[data]
)
Esta sencilla configuración significa que no tienes que preocuparte de que todos los campos estén perfectamente definidos de antemano. Simplemente configure el esquema para permitir adiciones dinámicas y deje que Milvus haga el trabajo pesado.
Conclusión
Combinando la navegación web de Browser Use, la comprensión visual de Pixtral y el almacenamiento eficiente de Milvus, hemos creado un asistente inteligente que realmente entiende el contexto. Ahora lo estoy utilizando para distinguir entre pájaros y DB vectoriales, pero el mismo enfoque podría ayudarte con otro problema al que te puedas estar enfrentando.
Por mi parte, quiero seguir trabajando en agentes que puedan ayudarme en mi trabajo diario para reducir mi carga cognitiva 😌.
¡Nos encantaría conocer tu opinión!
Si te gusta esta entrada de blog, por favor considera:
- ⭐ Darnos una estrella en GitHub
- 💬 Unirte a nuestra comunidad Milvus Discord para compartir tus experiencias o si necesitas ayuda para construir Agentes
- 🔍 Explorar nuestro repositorio Bootcamp para ver ejemplos de aplicaciones que utilizan Milvus
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



