feat(adk): add vector memory support for psqlpy and PostgreSQL ADBC
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
Línea de trabajo
Comienza con las implementaciones de PsqlpyADKMemoryStore y AdbcADKMemoryStore y con el contrato de embedding compartido de StoredMemory. Revisa las pruebas unitarias y de integración con PostgreSQL existentes y, después, verifica la vinculación de parámetros y el comportamiento de PostgreSQL frente a los controladores ADBC no compatibles. Se considera terminado cuando los embeddings nullable se persisten y se devuelven, el ordenamiento de los vecinos más cercanos funciona, los backends no compatibles fallan claramente y la documentación de capacidades y las pruebas cubren la matriz indicada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
The psqlpy and ADBC ADK memory stores accept StoredMemory.embedding and an embedding search argument through the shared public contract, but currently ignore both.
PsqlpyADKMemoryStorecreates no vector column, omits embeddings from inserts, and performs text-only searches.AdbcADKMemoryStoreis multi-dialect and reduced-scope; its PostgreSQL path likewise has no vector column or search branch and returnsembedding=None.
This makes PostgreSQL vector-memory behavior inconsistent across SQLSpec adapters and silently discards caller data.
Proposed behavior
Add PostgreSQL ADK vector-memory support for psqlpy and the PostgreSQL ADBC backend while preserving reduced-scope behavior for non-PostgreSQL ADBC drivers.
- Persist nullable embeddings in owner and non-owner insert paths.
- Add vector-only nearest-neighbor search with null embeddings excluded.
- Use codec-independent parameter binding. Psqlpy supports explicit SQL casts; determine and document the portable ADBC PostgreSQL binding representation rather than assuming native pgvector codecs.
- Return stored embeddings when the backend exposes them.
- Do not silently ignore a supplied embedding on an unsupported ADBC backend; fail clearly or expose an explicit capability boundary.
- Decide whether
pg_textsearchBM25/hybrid search should reach parity in the same implementation or remain a separately declared capability.
Acceptance criteria
- Unit tests cover SQL, nullable embeddings, owner-column parameter ordering, and vector query operands for both adapters.
- PostgreSQL integrations insert via the public memory-store API and assert nearest-neighbor IDs/order with client pgvector codecs disabled.
- ADBC tests cover PostgreSQL vector decoding and unsupported non-PostgreSQL behavior.
- Adapter documentation and the ADK backend matrix accurately describe vector and BM25 capabilities.
- No public method signatures or shared record types change.
Related: #726, #727
- Lenguaje dominante
- Python
- Estrellas
- 103
- Forks
- 9
- Merge medio
- 17 h 39 min
- PR fusionados (30 d)
- 81
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de litestar-org/sqlspec
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
litestar-org/sqlspec#810 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
litestar-org/sqlspec#509 ·
Los mantenedores suelen responder en 1 día
Todos los issues de litestar-org/sqlspec
Issues similares
-
enhancement good first issue Stellar Wave trivial
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
StellarCanary/ProtocolCanary-Fixtures#258 ·
Los mantenedores suelen responder en 1 día
-
github_actions
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Hochfrequenz/aibap.mcp#578 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mishraprafful/multihull#150 ·
Los mantenedores suelen responder en 1 día
-
mp: /status reports the server class name as engine_type, not the configured enginePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
python-caldav/caldav#735 ·
Los mantenedores suelen responder en 1 día