feat(knowledgebase): replace litellm-pgvector connector with memory-retrieval
Per docs/research/langchain-pgvector-vs-litellm-pgvector.md (issue #25): the vendored litellm-pgvector connector (793 lines, Prisma migrations, a fragile git-context build) is replaced by a ~90-line FastAPI service (services/memory-retrieval/) wrapping langchain_postgres.PGVector directly against pgvector-db. Same gateway boundary — it still calls litellm for embeddings, nothing talks to Postgres or the model directly except this service. - New services/memory-retrieval/ (main.py, Dockerfile, requirements.txt): POST /ingest, POST /query, GET /health. - docker-compose.yml: litellm-pgvector service replaced by memory-retrieval; pgvector-db and embedding-server untouched. - litellm-config.yaml: vector_store_registry block removed (no langchain_postgres provider exists to register against; callers query memory-retrieval directly instead of an in-band file_search tool call — that mechanism was never confirmed working per issue #24 anyway). - scripts/ingest-memory.sh rewritten for the new /ingest endpoint (same per-line chunking, no dedup). - .env vars renamed: LITELLM_PGVECTOR_API_KEY/LITELLM_PGVECTOR_EMBEDDING_KEY -> MEMORY_RETRIEVAL_API_KEY/MEMORY_RETRIEVAL_EMBEDDING_KEY. - vendor/litellm-pgvector/ removed entirely. - docs/memory-knowledgebase.md updated for the new setup/query flow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
-40
@@ -1,40 +0,0 @@
|
||||
// This is your Prisma schema file,
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-py"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model VectorStore {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
file_counts Json?
|
||||
status String @default("completed")
|
||||
usage_bytes Int? @default(0)
|
||||
created_at DateTime @default(now())
|
||||
expires_after Json?
|
||||
expires_at DateTime?
|
||||
last_active_at DateTime?
|
||||
metadata Json?
|
||||
embeddings Embedding[]
|
||||
|
||||
@@map("vector_stores")
|
||||
}
|
||||
|
||||
model Embedding {
|
||||
id String @id @default(cuid())
|
||||
vector_store_id String
|
||||
content String
|
||||
embedding Unsupported("vector(1536)")
|
||||
metadata Json?
|
||||
created_at DateTime @default(now())
|
||||
|
||||
vector_store VectorStore @relation(fields: [vector_store_id], references: [id], onDelete: Cascade)
|
||||
|
||||
@@map("embeddings")
|
||||
}
|
||||
Reference in New Issue
Block a user