diff --git a/backend/open_webui/retrieval/vector/dbs/pgvector.py b/backend/open_webui/retrieval/vector/dbs/pgvector.py index 0d45b10f60..c1e120a4da 100644 --- a/backend/open_webui/retrieval/vector/dbs/pgvector.py +++ b/backend/open_webui/retrieval/vector/dbs/pgvector.py @@ -421,10 +421,12 @@ class PgvectorClient(VectorDBBase): documents[qid].append(row.text) metadatas[qid].append(row.vmetadata) + self.session.rollback() # read-only transaction return SearchResult( ids=ids, distances=distances, documents=documents, metadatas=metadatas ) except Exception as e: + self.session.rollback() log.exception(f"Error during search: {e}") return None @@ -477,12 +479,14 @@ class PgvectorClient(VectorDBBase): documents = [[result.text for result in results]] metadatas = [[result.vmetadata for result in results]] + self.session.rollback() # read-only transaction return GetResult( ids=ids, documents=documents, metadatas=metadatas, ) except Exception as e: + self.session.rollback() log.exception(f"Error during query: {e}") return None @@ -523,8 +527,10 @@ class PgvectorClient(VectorDBBase): documents = [[result.text for result in results]] metadatas = [[result.vmetadata for result in results]] + self.session.rollback() # read-only transaction return GetResult(ids=ids, documents=documents, metadatas=metadatas) except Exception as e: + self.session.rollback() log.exception(f"Error during get: {e}") return None @@ -592,8 +598,10 @@ class PgvectorClient(VectorDBBase): .first() is not None ) + self.session.rollback() # read-only transaction return exists except Exception as e: + self.session.rollback() log.exception(f"Error checking collection existence: {e}") return False