Sreethar<lakshmi@timescale.com>", "date": "Tue Sep 5 21:03:21 2023 +0530", "change summary": "Fix segfault in set_integer_now_func", "change details": "When an invalid function oid is passed to set_integer_now_func, it finds out that the function oid is invalid but before throwing the error, it calls ReleaseSysCache on an invalid tuple causing a segfault. Fixed that by removing the invalid call to ReleaseSysCache.  Fixes #6037 "}' metadata={'source': '/Users/avtharsewrathan/sideprojects2023/timescaleai/tsv-langchain/ts_git_log.json', 'seq_num': 1, 'id': '8b407680-4c01-11ee-96a6-b82284ddccc6', 'date': '2023-09-5 21:03:21+0850', 'author_name': 'Lakshmi Narayanan Sreethar', 'author_email': 'lakshmi@timescale.com', 'commit_hash': '44e41c12ab25e36c202f58e068ced262eadc8d16'}Load documents and metadata into TimescaleVector vectorstore‚ÄãNow that we have prepared our documents, let's process them and load them, along with their vector embedding representations into our TimescaleVector vectorstore.Since this is a demo, we will only load the first 500 records. In practice, you can load as many records as you want.NUM_RECORDS = 500documents = documents[:NUM_RECORDS]Then we use the CharacterTextSplitter to split the documents into smaller chunks if needed for easier embedding. Note that this splitting process retains the metadata for each document.# Split the documents into chunks for embeddingtext_splitter = CharacterTextSplitter(    chunk_size=1000,    chunk_overlap=200,)docs = text_splitter.split_documents(documents)Next we'll create a Timescale Vector instance from the collection of documents that we finished pre-processsing.First, we'll define a collection name, which will be the name of our table in the PostgreSQL database. We'll also define a time delta, which we pass to the time_partition_interval argument, which will be used to as the interval for partitioning the data by time. Each partition will consist of data for the specified length of time. We'll use 7 days for
This notebook shows how to use the Postgres vector database Timescale Vector. You'll learn how to use TimescaleVector for (1) semantic search, (2) time-based vector search, (3) self-querying, and (4) how to create indexes to speed up queries.
This notebook shows how to use the Postgres vector database Timescale Vector. You'll learn how to use TimescaleVector for (1) semantic search, (2) time-based vector search, (3) self-querying, and (4) how to create indexes to speed up queries. ->: Sreethar<lakshmi@timescale.com>", "date": "Tue Sep 5 21:03:21 2023 +0530", "change summary": "Fix segfault in set_integer_now_func", "change details": "When an invalid function oid is passed to set_integer_now_func, it finds out that the function oid is invalid but before throwing the error, it calls ReleaseSysCache on an invalid tuple causing a segfault. Fixed that by removing the invalid call to ReleaseSysCache.  Fixes #6037 "}' metadata={'source': '/Users/avtharsewrathan/sideprojects2023/timescaleai/tsv-langchain/ts_git_log.json', 'seq_num': 1, 'id': '8b407680-4c01-11ee-96a6-b82284ddccc6', 'date': '2023-09-5 21:03:21+0850', 'author_name': 'Lakshmi Narayanan Sreethar', 'author_email': 'lakshmi@timescale.com', 'commit_hash': '44e41c12ab25e36c202f58e068ced262eadc8d16'}Load documents and metadata into TimescaleVector vectorstore‚ÄãNow that we have prepared our documents, let's process them and load them, along with their vector embedding representations into our TimescaleVector vectorstore.Since this is a demo, we will only load the first 500 records. In practice, you can load as many records as you want.NUM_RECORDS = 500documents = documents[:NUM_RECORDS]Then we use the CharacterTextSplitter to split the documents into smaller chunks if needed for easier embedding. Note that this splitting process retains the metadata for each document.# Split the documents into chunks for embeddingtext_splitter = CharacterTextSplitter(    chunk_size=1000,    chunk_overlap=200,)docs = text_splitter.split_documents(documents)Next we'll create a Timescale Vector instance from the collection of documents that we finished pre-processsing.First, we'll define a collection name, which will be the name of our table in the PostgreSQL database. We'll also define a time delta, which we pass to the time_partition_interval argument, which will be used to as the interval for partitioning the data by time. Each partition will consist of data for the specified length of time. We'll use 7 days for