9
9
VectorStoreQueryResult ,
10
10
)
11
11
from llama_index .vector_stores .utils import metadata_dict_to_node , node_to_metadata_dict
12
+ from sqlalchemy .orm .session import close_all_sessions
12
13
13
14
14
15
_logger = logging .getLogger (__name__ )
@@ -60,6 +61,7 @@ class IRISVectorStore(BasePydanticVectorStore):
60
61
embed_dim : int
61
62
perform_setup : bool
62
63
debug : bool
64
+ engine_args : Optional [dict ]
63
65
64
66
_base : Any = PrivateAttr ()
65
67
_table_class : Any = PrivateAttr ()
@@ -76,6 +78,7 @@ def __init__(
76
78
embed_dim : int = 1536 ,
77
79
perform_setup : bool = True ,
78
80
debug : bool = False ,
81
+ engine_args : Optional [dict ] = None ,
79
82
) -> None :
80
83
table_name = table_name .lower ()
81
84
schema_name = schema_name .lower ()
@@ -87,13 +90,14 @@ def __init__(
87
90
embed_dim = embed_dim ,
88
91
perform_setup = perform_setup ,
89
92
debug = debug ,
93
+ engine_args = engine_args or {},
90
94
)
91
95
92
96
async def close (self ) -> None :
93
97
if not self ._is_initialized :
94
98
return
95
99
96
- self . _session . close_all ()
100
+ close_all_sessions ()
97
101
self ._engine .dispose ()
98
102
99
103
@classmethod
@@ -114,6 +118,7 @@ def from_params(
114
118
embed_dim : int = 1536 ,
115
119
perform_setup : bool = True ,
116
120
debug : bool = False ,
121
+ engine_args : Optional [dict ] = None ,
117
122
) -> "IRISVectorStore" :
118
123
"""Return connection string from database parameters."""
119
124
conn_str = (
@@ -127,6 +132,7 @@ def from_params(
127
132
embed_dim = embed_dim ,
128
133
perform_setup = perform_setup ,
129
134
debug = debug ,
135
+ engine_args = engine_args ,
130
136
)
131
137
132
138
@property
@@ -139,7 +145,7 @@ def _connect(self) -> Any:
139
145
from sqlalchemy import create_engine
140
146
from sqlalchemy .orm import sessionmaker
141
147
142
- self ._engine = create_engine (self .connection_string , echo = self .debug )
148
+ self ._engine = create_engine (self .connection_string , echo = self .debug , ** self . engine_args )
143
149
self ._session = sessionmaker (self ._engine )
144
150
with self ._engine .connect () as conn :
145
151
self ._native_vector = conn .dialect .supports_vectors
0 commit comments