ishaq101's picture
[NOTICKET] Demo agentic agent
bef5e76
"""PGVector store setup for document embeddings."""
from langchain_postgres import PGVector
from langchain_openai import AzureOpenAIEmbeddings
from src.config.settings import settings
from src.db.postgres.connection import _pgvector_engine
# Initialize embeddings
embeddings = AzureOpenAIEmbeddings(
azure_deployment=settings.azureai_deployment_name_embedding,
openai_api_version=settings.azureai_api_version_embedding,
azure_endpoint=settings.azureai_endpoint_url_embedding,
api_key=settings.azureai_api_key_embedding
)
# Use psycopg3 connection string (not asyncpg engine) with async_mode=True.
# psycopg3 supports multi-statement SQL, which PGVector needs for
# advisory_lock + CREATE EXTENSION vector. asyncpg rejects this as a prepared statement.
vector_store = PGVector(
embeddings=embeddings,
connection=_pgvector_engine,
collection_name="document_embeddings",
use_jsonb=True,
async_mode=True,
create_extension=False, # Extension pre-created in init_db.py (avoids multi-statement asyncpg bug)
)
def get_vector_store():
"""Get the vector store instance."""
return vector_store