fix: RAG vector search SQL syntax error breaking assistant chat
- Use CAST(:embedding AS vector) instead of :embedding::vector to avoid SQLAlchemy named param conflict with PostgreSQL :: cast syntax - Add db.rollback() before recording AI usage on failure to prevent InFailedSQLTransactionError cascade Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -143,13 +143,13 @@ async def search(
|
||||
te.chunk_text,
|
||||
te.chunk_type,
|
||||
te.node_id,
|
||||
1 - (te.embedding <=> :embedding::vector) as similarity
|
||||
1 - (te.embedding <=> CAST(:embedding AS vector)) as similarity
|
||||
FROM tree_embeddings te
|
||||
JOIN trees t ON t.id = te.tree_id
|
||||
WHERE te.account_id = :account_id
|
||||
AND t.deleted_at IS NULL
|
||||
{exclude_clause}
|
||||
ORDER BY te.embedding <=> :embedding::vector
|
||||
ORDER BY te.embedding <=> CAST(:embedding AS vector)
|
||||
LIMIT :limit
|
||||
"""),
|
||||
params,
|
||||
|
||||
Reference in New Issue
Block a user