Coincidencia de CV
Un flujo que compara CVs con requisitos, calcula coincidencias y devuelve al candidato con mayor ajuste.
+2
graph TD
%%{init: {'theme': 'mc','layout': 'elk'}}%%
TextInput-dvpjv[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Carrera]
style TextInput-dvpjv stroke:#a170ff
TextInput-s2vgd[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Certificados]
style TextInput-s2vgd stroke:#a170ff
TextInput-oz3io[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Habilidades]
style TextInput-oz3io stroke:#a170ff
TextInput-6r3sb[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Experiencia]
style TextInput-6r3sb stroke:#a170ff
TextInput-ep0wz[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Educación]
style TextInput-ep0wz stroke:#a170ff
ChatOutput-zlpn1[<div><img alt="logo" src="/_astro/messages-square.BaSDmT6g.svg" style="height: 20px !important;width: 20px !important"/></div>Chat Output]
style ChatOutput-zlpn1 stroke:#a170ff
OpenAIEmbeddings-5myel[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI Embeddings]
style OpenAIEmbeddings-5myel stroke:#a170ff
GDriveFilesComponent-3xa20[<div><img alt="logo" src="/_astro/google_drive.wKmDsV2c.svg" style="height: 20px !important;width: 20px !important"/></div>Obtener CV]
style GDriveFilesComponent-3xa20 stroke:#a170ff
Prompt-3a8sl[<div><img alt="logo" src="/_astro/square-terminal.BMOXc-nZ.svg" style="height: 20px !important;width: 20px !important"/></div>Requisitos]
style Prompt-3a8sl stroke:#a170ff
OpenAIEmbeddings-6p7a2[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI Embeddings2]
style OpenAIEmbeddings-6p7a2 stroke:#a170ff
LanguageRecursiveTextSplitter-rweqg[Language Recursive Text Splitter]
style LanguageRecursiveTextSplitter-rweqg stroke:#a170ff
AstraDB-un98t[Astra DB]
style AstraDB-un98t stroke:#a170ff
AstraDB-un1f3[Astra DB2]
style AstraDB-un1f3 stroke:#a170ff
LanggraphRAGAgent-cgjw7[RAG Agent]
style LanggraphRAGAgent-cgjw7 stroke:#a170ff
OpenAIModel-448zp[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI]
style OpenAIModel-448zp stroke:#a170ff
TextInput-dvpjv -.- Prompt-3a8sl
linkStyle 0 stroke:#a170ff
TextInput-s2vgd -.- Prompt-3a8sl
linkStyle 1 stroke:#a170ff
TextInput-ep0wz -.- Prompt-3a8sl
linkStyle 2 stroke:#a170ff
TextInput-6r3sb -.- Prompt-3a8sl
linkStyle 3 stroke:#a170ff
TextInput-oz3io -.- Prompt-3a8sl
linkStyle 4 stroke:#a170ff
GDriveFilesComponent-3xa20 -.- LanguageRecursiveTextSplitter-rweqg
linkStyle 5 stroke:#a170ff
LanguageRecursiveTextSplitter-rweqg -.- AstraDB-un98t
linkStyle 6 stroke:#a170ff
OpenAIEmbeddings-5myel -.- AstraDB-un98t
linkStyle 7 stroke:#a170ff
LanggraphRAGAgent-cgjw7 -.- ChatOutput-zlpn1
linkStyle 8 stroke:#a170ff
OpenAIEmbeddings-6p7a2 -.- AstraDB-un1f3
linkStyle 9 stroke:#a170ff
AstraDB-un1f3 -.- LanggraphRAGAgent-cgjw7
linkStyle 10 stroke:#a170ff
Prompt-3a8sl -.- LanggraphRAGAgent-cgjw7
linkStyle 11 stroke:#a170ff
OpenAIModel-448zp -.- LanggraphRAGAgent-cgjw7
linkStyle 12 stroke:#a170ff
🧩 Descripción general
El flujo “Coincidencia de CV” automatiza la búsqueda de currículos que cumplen con un conjunto de requisitos definidos por el usuario. El proceso recoge los parámetros de búsqueda, genera un prompt de consulta, recupera los documentos pertinentes de una base de datos vectorial, los evalúa con un modelo de lenguaje y devuelve la respuesta en un formato de chat.
⚙️ Funcionalidades principales
- Recopila múltiples criterios de búsqueda mediante componentes de entrada de texto.
- Construye dinámicamente un prompt que combina todos los requisitos.
- Extrae y procesa archivos de CV almacenados en Google Drive.
- Divide los documentos en fragmentos y crea embeddings con OpenAI.
- Ingresa los embeddings en Astra DB para indexar el conocimiento.
- Recupera documentos relevantes con un agente RAG que combina búsqueda y generación de lenguaje.
- Presenta la respuesta final al usuario a través de un componente de salida de chat.
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Carrera | Entrada de texto | Texto de la carrera del candidato | Mensaje con la carrera |
| Certificados | Entrada de texto | Lista de certificados deseados | Mensaje con certificados |
| Educación | Entrada de texto | Nivel educativo solicitado | Mensaje con educación |
| Experiencia | Entrada de texto | Años de experiencia requeridos | Mensaje con experiencia |
| Habilidades | Entrada de texto | Habilidades técnicas necesarias | Mensaje con habilidades |
| Requisitos | Generación de prompt | Mensajes de los cinco campos anteriores | Prompt de consulta |
| Obtener CV | Acceso a Google Drive | Parámetros de búsqueda (carpeta, filtro) | Datos de los archivos CV |
| Divisor de texto | División de documentos | Datos de los archivos CV | Fragmentos de texto |
| Embeddings OpenAI (1) | Generación de embeddings para CV | Fragmentos de texto | Embeddings de CV |
| Astra DB (1) | Ingesta de documentos | Embeddings de CV, metadatos | Datos indexados en Astra DB |
| Embeddings OpenAI (2) | Generación de embeddings de consulta | Prompt de consulta | Embeddings de la consulta |
| Astra DB (2) | Recuperación de documentos | Embeddings de la consulta | Documentos relevantes |
| RAG Agent | Orquestación de generación y recuperación | Pregunta de usuario, llm, retrievers | Respuesta del agente |
| Chat Output | Presentación al usuario | Mensaje del agente | Texto mostrado en la interfaz |
🧠 Notas
- Los nombres de los componentes se han derivado de la propiedad name; en caso de faltar, se han extraído de los IDs sin los sufijos.
- Los componentes de Embeddings OpenAI se usan en dos roles: una para preparar los CVs antes de su indexación y otra para generar embeddings de la consulta en tiempo de ejecución.
- Astra DB se emplea tanto para la operación Add (ingestión) como para la Retriever (búsqueda).
- Los parámetros de OpenAI Model y Embeddings están configurados con valores por defecto que pueden ajustarse según la disponibilidad de credenciales y la versión de la API.
- El flujo asume que los CVs están disponibles en la carpeta CVs de Google Drive y que los documentos están en formatos compatibles (PDF, DOCX, TXT, etc.).
- Se han habilitado los controles de skip branch if empty output y skip if empty input en los componentes que lo requieren para evitar fallos cuando no hay resultados o datos de entrada.