PGVector Node: Similitud vectorial con datos plantillados y aclaración del parámetro "Prompt"

Describir el problema/error/pregunta

Tengo una base de datos vectorial y quiero recuperar vectores similares basándome en los datos que tengo. Tengo 2 preguntas sobre la recuperación de datos vectoriales; la primera es sobre los datos que tengo. Actualmente mis datos son como una plantilla porque hablan sobre un tema específico, a continuación se muestra un ejemplo de mis datos:

1. first data:
Institutional Motivation:
The adaptation appears intended to bridge traditional licensed financial services with blockchain-native infrastructure to support diversified asset management and digital identity verification for retail and SME clients.

Adaptation Objective:
Integrating decentralized digital identity frameworks into regulated financial service and investment workflows.

Institutional Reasoning:
The partnership formalizes an operational shift toward embedding blockchain-native utility—specifically identity and tokenization—into an established licensed financial group. This suggests an institutional effort to modernize service delivery and asset accessibility by aligning regulatory compliant infrastructure with decentralized service protocols.

Operational Capability:
Ability to leverage decentralized identity systems for service access, facilitate stablecoin-based settlement, and manage the tokenization of real-world assets within a regulated framework.

Operational Transformation:
Formalization of a partnership to architect and deploy shared Web3 infrastructure, including digital identity verification, stablecoin settlement, and tokenization services, across the Inveo ecosystem.

2. second data:
Institutional Motivation:
This adaptation appears intended to bridge traditional retail brokerage user interfaces with on-chain, non-custodial execution infrastructure, suggesting an operational shift toward supporting decentralized financial workflows for broader asset classes.

Adaptation Objective:
Integrating decentralized perpetuals exchange infrastructure into self-custodial wallet environments.

Institutional Reasoning:
The investment suggests that eToro is operationally integrating decentralized on-chain perpetuals trading into its existing retail user-experience layer. By combining the Zengo self-custody infrastructure with the Extended derivatives engine, the institution is shifting toward an operational model where non-custodial on-chain execution serves as the backend for multi-asset trading.

Operational Capability:
The institution is developing the capability to offer users the ability to trade perpetual futures on crypto, equities, forex, and commodities using self-custodial wallet infrastructure.

Operational Transformation:
eToro has initiated a technical partnership between the Zengo self-custody wallet and the Extended perpetuals protocol to facilitate cross-asset trading within a self-custodial framework.

3. third data:
Institutional Motivation:
Appears intended to extend existing regional operational footprints—following previous economic zone and exchange-related activities—into planned urban utility infrastructure.

Adaptation Objective:
Integration of blockchain and cryptocurrency infrastructure into the foundational urban planning of a planned digital-first city.

Institutional Reasoning:
This partnership represents a move by a technology provider to embed its operational infrastructure directly into the foundational development of a new city, transitioning from existing regional economic zone activities toward integrated urban digital infrastructure.

Operational Capability:
Ability to architect and deploy blockchain-based systems at a municipal urban scale.

Operational Transformation:
The establishment of a formal agreement to provide technical support and infrastructural development services for a city-scale digital environment.

Nota que los datos consisten en Institutional Motivation, Adaptation Objective y así sucesivamente, y el inicio de la oración es casi el mismo. Mi pregunta es, ¿este tipo de datos se puede usar al buscar similitud vectorial? Porque en este momento los datos que obtengo están entre 0 y 0.2, cuando 0.2 realmente no está relacionado con los datos que quiero buscar.

La segunda pregunta es sobre el nodo en sí. En el nodo PGVector hay un cuadro de indicación, ¿se comporta este indicador como un indicador de sistema o como un indicador de usuario? La diferencia entre un indicador de sistema y un indicador de usuario es que el indicador de sistema trata sobre instrucciones, mientras que el indicador de usuario generalmente consiste en los datos que quiero buscar; en cierto sentido, ¿debería colocar instrucciones allí o debería colocar los datos que quiero buscar allí?
Nota: actualmente pongo la ruta de parámetros allí y se refiere a los datos que quiero buscar.

Por favor comparte tu flujo de trabajo

Comparte el resultado devuelto por el último nodo

Información sobre tu configuración de n8n

  • versión de n8n: 2.18.5
  • Base de datos (predeterminada: SQLite): Postgres
  • Configuración de EXECUTIONS_PROCESS de n8n (predeterminada: own, main): main
  • Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio): Docker
  • Sistema operativo: Windows 11

Hola @ezraluandre
Tomando primero la segunda pregunta ya que es la más clara:
El campo “Prompt” en modo Get Many no es un prompt del sistema ni un prompt del usuario. Es la consulta de búsqueda. n8n incorpora lo que pongas allí y ejecuta la búsqueda de similitud contra tus vectores almacenados, así que {{ $json.text }} apuntando al texto que quieres hacer coincidir es correcto. No hay una división entre instrucción y datos como con un LLM.
Para la primera pregunta, los datos con plantillas funcionan, pero ese andamiaje compartido probablemente sea la razón por la que tus puntuaciones están comprimidas. Cada registro comienza con las mismas etiquetas (“Institutional Motivation:”, “Adaptation Objective:”, y así sucesivamente) y frases estándar casi idénticas, así que gran parte de cada embedding es código repetitivo común a todos los registros. La parte distintiva (Inveo vs eToro vs una ciudad planificada) se diluye y todo termina cerca uno del otro, por lo que nada puntúa fuertemente. Dos cosas que puedes intentar:

  1. Elimina las etiquetas de sección y los inicios estándar antes de incorporar, e incorpora solo el contenido sustancial para que el texto distintivo impulse el vector. Incorporar cada sección como su propio registro en lugar de todo el bloque también ayuda.
  2. Confirma que el mismo modelo de embedding exacto esté conectado cuando insertas y cuando consultas. Una falta de coincidencia de modelo es la razón habitual por la que los puntajes vuelven uniformemente bajos, ya que el vector de consulta y los vectores almacenados ya no comparten el mismo espacio.
    La puntuación de coseno bruta no es una escala de relevancia absoluta, lo que importa es la clasificación, pero 0 a 0.2 en todos los casos señala uno de esos dos problemas en lugar de que los datos sean inutilizables.