Hmm I tried a sed and could create a vectors
extension instead of vector
But then it cascaded to more errors. And with the different abstraction layers (langchain, sqlalchemy...) I couln't solve the issue.
I think current implementation tries to ceate a table with a VECTOR type anv vecto.rs expects VECTOR(dimension) (or is maybe not loaded properly)
The above exception was the direct cause of the following exception:
Nov 27 16:17:11 2024-11-27T15:17:11Z
Nov 27 16:17:11 Traceback (most recent call last):
Nov 27 16:17:11 File "/app/code/rag_api/main.py", line 46, in <module>
Nov 27 16:17:11 from psql import PSQLDatabase, ensure_custom_id_index_on_embedding, pg_health_check
Nov 27 16:17:11 File "/app/code/rag_api/psql.py", line 3, in <module>
Nov 27 16:17:11 from config import DSN, logger
Nov 27 16:17:11 File "/app/code/rag_api/config.py", line 232, in <module>
Nov 27 16:17:11 vector_store = get_vector_store(
Nov 27 16:17:11 File "/app/code/rag_api/store_factory.py", line 20, in get_vector_store
Nov 27 16:17:11 return AsyncPgVector(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/langchain_core/_api/deprecation.py", line 183, in warn_if_direct_instance
Nov 27 16:17:11 return wrapped(self, *args, **kwargs)
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/langchain_community/vectorstores/pgvector.py", line 341, in __init__
Nov 27 16:17:11 self.__post_init__()
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/langchain_community/vectorstores/pgvector.py", line 355, in __post_init__
Nov 27 16:17:11 self.create_tables_if_not_exists()
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/langchain_community/vectorstores/pgvector.py", line 390, in create_tables_if_not_exists
Nov 27 16:17:11 Base.metadata.create_all(session.get_bind())
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/schema.py", line 5825, in create_all
Nov 27 16:17:11 bind._run_ddl_visitor(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 3254, in _run_ddl_visitor
Nov 27 16:17:11 conn._run_ddl_visitor(visitorcallable, element, **kwargs)
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 2460, in _run_ddl_visitor
Nov 27 16:17:11 visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/visitors.py", line 664, in traverse_single
Nov 27 16:17:11 return meth(obj, **kw)
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/ddl.py", line 918, in visit_metadata
Nov 27 16:17:11 self.traverse_single(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/visitors.py", line 664, in traverse_single
Nov 27 16:17:11 return meth(obj, **kw)
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/ddl.py", line 956, in visit_table
Nov 27 16:17:11 )._invoke_with(self.connection)
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/ddl.py", line 314, in _invoke_with
Nov 27 16:17:11 return bind.execute(self)
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1421, in execute
Nov 27 16:17:11 return meth(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/ddl.py", line 180, in _execute_on_connection
Nov 27 16:17:11 return connection._execute_ddl(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1532, in _execute_ddl
Nov 27 16:17:11 ret = self._execute_context(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1849, in _execute_context
Nov 27 16:17:11 return self._exec_single_context(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1989, in _exec_single_context
Nov 27 16:17:11 self._handle_dbapi_exception(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 2356, in _handle_dbapi_exception
Nov 27 16:17:11 raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1970, in _exec_single_context
Nov 27 16:17:11 self.dialect.do_execute(
Nov 27 16:17:11 File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/default.py", line 924, in do_execute
Nov 27 16:17:11 cursor.execute(statement, parameters)
Nov 27 16:17:11 sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) type "vector" does not exist
Nov 27 16:17:11 LINE 4: embedding VECTOR,
Nov 27 16:17:11 ^
Nov 27 16:17:11 2024-11-27T15:17:11Z
Nov 27 16:17:11 [SQL:
Nov 27 16:17:11 CREATE TABLE langchain_pg_embedding (
Nov 27 16:17:11 collection_id UUID,
Nov 27 16:17:11 embedding VECTOR,
Nov 27 16:17:11 document VARCHAR,
Nov 27 16:17:11 cmetadata JSON,
Nov 27 16:17:11 custom_id VARCHAR,
Nov 27 16:17:11 uuid UUID NOT NULL,
Nov 27 16:17:11 PRIMARY KEY (uuid),
Nov 27 16:17:11 FOREIGN KEY(collection_id) REFERENCES langchain_pg_collection (uuid) ON DELETE CASCADE
Nov 27 16:17:11 )