PostgresEngine(
key: object,
engine: sqlalchemy.ext.asyncio.engine.AsyncEngine,
loop: typing.Optional[asyncio.events.AbstractEventLoop],
thread: typing.Optional[threading.Thread],
)
A class for managing connections to a Cloud SQL for Postgres database.
Methods
PostgresEngine
PostgresEngine(
key: object,
engine: sqlalchemy.ext.asyncio.engine.AsyncEngine,
loop: typing.Optional[asyncio.events.AbstractEventLoop],
thread: typing.Optional[threading.Thread],
)
PostgresEngine constructor.
Parameters | |
---|---|
Name | Description |
key |
object
Prevent direct constructor usage. |
engine |
AsyncEngine
Async engine connection pool. |
loop |
Optional[asyncio.AbstractEventLoop]
Async event loop used to create the engine. |
thread |
Optional[Thread] = None
Thread used to create the engine async. |
Exceptions | |
---|---|
Type | Description |
Exception |
If the constructor is called directly by the user. |
_aexecute
_aexecute(query: str, params: typing.Optional[dict] = None)
Execute a SQL query.
_aexecute_outside_tx
_aexecute_outside_tx(query: str)
Execute a SQL query.
_afetch
_afetch(query: str, params: typing.Optional[dict] = None)
Fetch results from a SQL query.
_aload_table_schema
_aload_table_schema(table_name: str) -> sqlalchemy.sql.schema.Table
Load table schema from existing table in PgSQL database.
Returns | |
---|---|
Type | Description |
(sqlalchemy.Table) |
The loaded table. |
_create
_create(
project_id: str,
region: str,
instance: str,
database: str,
ip_type: typing.Union[str, google.cloud.sql.connector.enums.IPTypes],
user: typing.Optional[str] = None,
password: typing.Optional[str] = None,
loop: typing.Optional[asyncio.events.AbstractEventLoop] = None,
thread: typing.Optional[threading.Thread] = None,
quota_project: typing.Optional[str] = None,
iam_account_email: typing.Optional[str] = None,
) -> langchain_google_cloud_sql_pg.engine.PostgresEngine
Create a PostgresEngine instance.
Parameters | |
---|---|
Name | Description |
project_id |
str
GCP project ID. |
region |
str
Postgres instance region. |
instance |
str
Postgres instance name. |
database |
str
Database name. |
ip_type |
Union[str, IPTypes], optional
IP address type. Defaults to IPTypes.PUBLIC. |
user |
Optional[str], optional
Postgres user name. Defaults to None. |
password |
Optional[str], optional
Postgres user password. Defaults to None. |
loop |
Optional[asyncio.AbstractEventLoop]
Async event loop used to create the engine. |
thread |
Optional[Thread] = None
Thread used to create the engine async. |
quota_project |
Optional[str]
Project that provides quota for API calls. |
iam_account_email |
Optional[str], optional
IAM service account email. Defaults to None. |
Exceptions | |
---|---|
Type | Description |
ValueError |
If only one of user and password is specified. |
_execute
_execute(query: str, params: typing.Optional[dict] = None)
Execute a SQL query.
_fetch
_fetch(query: str, params: typing.Optional[dict] = None)
Fetch results from a SQL query.
_run_as_sync
_run_as_sync(
coro: typing.Awaitable[langchain_google_cloud_sql_pg.engine.T],
) -> langchain_google_cloud_sql_pg.engine.T
Run an async coroutine synchronously
afrom_instance
afrom_instance(
project_id: str,
region: str,
instance: str,
database: str,
user: typing.Optional[str] = None,
password: typing.Optional[str] = None,
ip_type: typing.Union[
str, google.cloud.sql.connector.enums.IPTypes
] = IPTypes.PUBLIC,
quota_project: typing.Optional[str] = None,
iam_account_email: typing.Optional[str] = None,
) -> langchain_google_cloud_sql_pg.engine.PostgresEngine
Create a PostgresEngine from a Postgres instance.
Parameters | |
---|---|
Name | Description |
project_id |
str
GCP project ID. |
region |
str
Postgres instance region. |
instance |
str
Postgres instance name. |
database |
str
Database name. |
user |
Optional[str], optional
Postgres user name. Defaults to None. |
password |
Optional[str], optional
Postgres user password. Defaults to None. |
ip_type |
Union[str, IPTypes], optional
IP address type. Defaults to IPTypes.PUBLIC. |
quota_project |
Optional[str]
Project that provides quota for API calls. |
iam_account_email |
Optional[str], optional
IAM service account email. Defaults to None. |
Returns | |
---|---|
Type | Description |
PostgresEngine |
A newly created PostgresEngine instance. |
ainit_chat_history_table
ainit_chat_history_table(table_name) -> None
Create a Cloud SQL table to store chat history.
Parameter | |
---|---|
Name | Description |
table_name |
str
Table name to store chat history. |
ainit_document_table
ainit_document_table(
table_name: str,
content_column: str = "page_content",
metadata_columns: typing.List[langchain_google_cloud_sql_pg.engine.Column] = [],
metadata_json_column: str = "langchain_metadata",
store_metadata: bool = True,
) -> None
Create a table for saving of langchain documents.
Parameters | |
---|---|
Name | Description |
table_name |
str
The PgSQL database table name. |
content_column |
str
Name of the column to store document content. Default: "page_content". |
metadata_columns |
List[sqlalchemy.Column]
A list of SQLAlchemy Columns to create for custom metadata. Optional. |
metadata_json_column |
str
The column to store extra metadata in JSON format. Default: "langchain_metadata". Optional. |
store_metadata |
bool
Whether to store extra metadata in a metadata column if not described in 'metadata' field list (Default: True). |
Exceptions | |
---|---|
Type | Description |
DuplicateTableErro |
ainit_vectorstore_table
ainit_vectorstore_table(
table_name: str,
vector_size: int,
content_column: str = "content",
embedding_column: str = "embedding",
metadata_columns: typing.List[langchain_google_cloud_sql_pg.engine.Column] = [],
metadata_json_column: str = "langchain_metadata",
id_column: str = "langchain_id",
overwrite_existing: bool = False,
store_metadata: bool = True,
) -> None
Create a table for saving of vectors to be used with PostgresVectorStore.
Parameters | |
---|---|
Name | Description |
table_name |
str
The Postgres database table name. |
vector_size |
int
Vector size for the embedding model to be used. |
content_column |
str
Name of the column to store document content. Default: "page_content". |
embedding_column |
str
Name of the column to store vector embeddings. Default: "embedding". |
metadata_columns |
List[Column]
A list of Columns to create for custom metadata. Default: []. Optional. |
metadata_json_column |
str
The column to store extra metadata in JSON format. Default: "langchain_metadata". Optional. |
id_column |
str
Name of the column to store ids. Default: "langchain_id". Optional, |
overwrite_existing |
bool
Whether to drop existing table. Default: False. |
store_metadata |
bool
Whether to store metadata in the table. Default: True. |
Exceptions | |
---|---|
Type | Description |
DuplicateTableErro |
from_engine
from_engine(
engine: sqlalchemy.ext.asyncio.engine.AsyncEngine,
) -> langchain_google_cloud_sql_pg.engine.PostgresEngine
Create an PostgresEngine instance from an AsyncEngine.
from_instance
from_instance(
project_id: str,
region: str,
instance: str,
database: str,
user: typing.Optional[str] = None,
password: typing.Optional[str] = None,
ip_type: typing.Union[
str, google.cloud.sql.connector.enums.IPTypes
] = IPTypes.PUBLIC,
quota_project: typing.Optional[str] = None,
iam_account_email: typing.Optional[str] = None,
) -> langchain_google_cloud_sql_pg.engine.PostgresEngine
Create a PostgresEngine from a Postgres instance.
Parameters | |
---|---|
Name | Description |
project_id |
str
GCP project ID. |
region |
str
Postgres instance region. |
instance |
str
Postgres instance name. |
database |
str
Database name. |
user |
Optional[str], optional
Postgres user name. Defaults to None. |
password |
Optional[str], optional
Postgres user password. Defaults to None. |
ip_type |
Union[str, IPTypes], optional
IP address type. Defaults to IPTypes.PUBLIC. |
quota_project |
Optional[str]
Project that provides quota for API calls. |
iam_account_email |
Optional[str], optional
IAM service account email. Defaults to None. |
Returns | |
---|---|
Type | Description |
PostgresEngine |
A newly created PostgresEngine instance. |
init_chat_history_table
init_chat_history_table(table_name) -> None
Create a Cloud SQL table to store chat history.
Parameter | |
---|---|
Name | Description |
table_name |
str
Table name to store chat history. |
init_document_table
init_document_table(
table_name: str,
content_column: str = "page_content",
metadata_columns: typing.List[langchain_google_cloud_sql_pg.engine.Column] = [],
metadata_json_column: str = "langchain_metadata",
store_metadata: bool = True,
) -> None
Create a table for saving of langchain documents.
Parameters | |
---|---|
Name | Description |
table_name |
str
The PgSQL database table name. |
content_column |
str
Name of the column to store document content. |
metadata_columns |
List[sqlalchemy.Column]
A list of SQLAlchemy Columns to create for custom metadata. Optional. |
store_metadata |
bool
Whether to store extra metadata in a metadata column if not described in 'metadata' field list (Default: True). |
init_vectorstore_table
init_vectorstore_table(
table_name: str,
vector_size: int,
content_column: str = "content",
embedding_column: str = "embedding",
metadata_columns: typing.List[langchain_google_cloud_sql_pg.engine.Column] = [],
metadata_json_column: str = "langchain_metadata",
id_column: str = "langchain_id",
overwrite_existing: bool = False,
store_metadata: bool = True,
) -> None
Create a table for saving of vectors to be used with PostgresVectorStore.
Parameters | |
---|---|
Name | Description |
table_name |
str
The Postgres database table name. |
vector_size |
int
Vector size for the embedding model to be used. |
content_column |
str
Name of the column to store document content. Default: "page_content". |
embedding_column |
str
Name of the column to store vector embeddings. Default: "embedding". |
metadata_columns |
List[Column]
A list of Columns to create for custom metadata. Default: []. Optional. |
metadata_json_column |
str
The column to store extra metadata in JSON format. Default: "langchain_metadata". Optional. |
id_column |
str
Name of the column to store ids. Default: "langchain_id". Optional, |
overwrite_existing |
bool
Whether to drop existing table. Default: False. |
store_metadata |
bool
Whether to store metadata in the table. Default: True. |