Loading...
No results found.

Google Cloud Skills Boost

Apply your skills in Google Cloud console

Select a Google Cloud Database for Your Applications

Get access to 700+ labs and courses

Configuring Vector Search in Cloud SQL for PostgreSQL

Lab 1 hour universal_currency_alt 1 Credit show_chart Introductory
info This lab may incorporate AI tools to support your learning.
Get access to 700+ labs and courses

GSP1287

Overview

Imagine your applications searching your Cloud SQL for PostgreSQL database and quickly identifying related data, even if the provided search phase is not actually included in the stored text! This is now possible by leveraging the power of Vertex AI text embeddings to conduct vector search within Cloud SQL for PostgreSQL.

Cloud SQL for PostgreSQL is a fully managed, cost-effective relational database service for PostgreSQL that is enterprise-ready and developer-friendly. In addition, you can leverage artificial intelligence (AI) functionality in Cloud SQL for PostgreSQL to accomplish tasks such as building Generative AI applications and surfacing data in your Cloud SQL for PostgreSQL database based on relevance to your specific search terms.

Vector search is a methodology that can be used to quickly find similar items based on their semantic meaning (rather than exact keyword matching) and can be applied to many types of data including audio, images, videos, and text. For text specifically, vector search enables you to find similar text items without needing their contents to match the exact text or phrase used in the search.

In this lab, you learn the fundamentals of configuring vector search in Cloud SQL for PostgreSQL by first generating and storing text embeddings (vectors containing numerical representations of semantic meaning of text), and then using those text embeddings to perform fast similarity searches. This hands-on lab uses patent data to highlight how vector search can be leveraged in Cloud SQL for PostgreSQL to search lengthy and technical abstracts that can make it difficult to grasp the core idea quickly and that can result in inaccurate results when using keyword matches.

What you'll learn

In this lab, you learn how to:

  • Configure a Cloud SQL for PostgreSQL database to support vector search
  • Create a table and load data in Cloud SQL for PostgreSQL
  • Generate and store text embeddings in Cloud SQL for PostgreSQL
  • Perform vector search in Cloud SQL for PostgreSQL using text embeddings

Setup and requirements

Before you click the Start Lab button

Read these instructions. Labs are timed and you cannot pause them. The timer, which starts when you click Start Lab, shows how long Google Cloud resources are made available to you.

This hands-on lab lets you do the lab activities in a real cloud environment, not in a simulation or demo environment. It does so by giving you new, temporary credentials you use to sign in and access Google Cloud for the duration of the lab.

To complete this lab, you need:

  • Access to a standard internet browser (Chrome browser recommended).
Note: Use an Incognito (recommended) or private browser window to run this lab. This prevents conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
  • Time to complete the lab—remember, once you start, you cannot pause a lab.
Note: Use only the student account for this lab. If you use a different Google Cloud account, you may incur charges to that account.

How to start your lab and sign in to the Google Cloud console

  1. Click the Start Lab button. If you need to pay for the lab, a dialog opens for you to select your payment method. On the left is the Lab Details pane with the following:

    • The Open Google Cloud console button
    • Time remaining
    • The temporary credentials that you must use for this lab
    • Other information, if needed, to step through this lab
  2. Click Open Google Cloud console (or right-click and select Open Link in Incognito Window if you are running the Chrome browser).

    The lab spins up resources, and then opens another tab that shows the Sign in page.

    Tip: Arrange the tabs in separate windows, side-by-side.

    Note: If you see the Choose an account dialog, click Use Another Account.
  3. If necessary, copy the Username below and paste it into the Sign in dialog.

    {{{user_0.username | "Username"}}}

    You can also find the Username in the Lab Details pane.

  4. Click Next.

  5. Copy the Password below and paste it into the Welcome dialog.

    {{{user_0.password | "Password"}}}

    You can also find the Password in the Lab Details pane.

  6. Click Next.

    Important: You must use the credentials the lab provides you. Do not use your Google Cloud account credentials. Note: Using your own Google Cloud account for this lab may incur extra charges.
  7. Click through the subsequent pages:

    • Accept the terms and conditions.
    • Do not add recovery options or two-factor authentication (because this is a temporary account).
    • Do not sign up for free trials.

After a few moments, the Google Cloud console opens in this tab.

Note: To access Google Cloud products and services, click the Navigation menu or type the service or product name in the Search field.

Activate Cloud Shell

Cloud Shell is a virtual machine that is loaded with development tools. It offers a persistent 5GB home directory and runs on the Google Cloud. Cloud Shell provides command-line access to your Google Cloud resources.

  1. Click Activate Cloud Shell at the top of the Google Cloud console.

  2. Click through the following windows:

    • Continue through the Cloud Shell information window.
    • Authorize Cloud Shell to use your credentials to make Google Cloud API calls.

When you are connected, you are already authenticated, and the project is set to your Project_ID, . The output contains a line that declares the Project_ID for this session:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud is the command-line tool for Google Cloud. It comes pre-installed on Cloud Shell and supports tab-completion.

  1. (Optional) You can list the active account name with this command:
gcloud auth list
  1. Click Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Optional) You can list the project ID with this command:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Note: For full documentation of gcloud, in Google Cloud, refer to the gcloud CLI overview guide.

Task 1. Configure a Cloud SQL for PostgreSQL database to support vector search

A Cloud SQL for PostgreSQL instance named patent-instance and a database named patent-db have been provisioned for you in this lab environment.

In this task, you begin by using Identity and Access Management (IAM) to grant the appropriate Vertex AI role to the Cloud SQL service account used to access Vertex AI resources. Then, you enable key extensions in the default Cloud SQL for PostgreSQL database named patent-db and grant the necessary permissions to support the generation, storage, and querying of text embeddings for vector search.

Grant Vertex AI User role to the Cloud SQL service account

  1. In Cloud Shell, run the following command to identify the Cloud SQL service account:
gcloud sql instances describe patent-instance \ --format="value(serviceAccountEmailAddress)"

Copy this service account to use in the next steps.

The service account resembles the following:

p567201276916-f6skvu@gcp-sa-cloud-sql.iam.gserviceaccount.com
  1. In the Google Cloud console, on the Navigation menu (), select IAM & Admin > IAM.

  2. Click Grant access.

  3. For New principals, enter the Cloud SQL service account ID from step 1 (for example, p567201276916-f6skvu@gcp-sa-cloud-sql.iam.gserviceaccount.com).

  4. For Select a role, select Vertex AI > Vertex AI User.

  5. Click Save.

Configure the Cloud SQL for PostgreSQL database to support vector search

Next, you complete the database integration with Vertex AI by using Cloud SQL Studio to connect to the Cloud SQL for PostgreSQL database named patent-db and enabling the vector and google_ml_integrationextensions to support vectors and allow access to Vertex AI endpoints.

  1. In the Google Cloud console, click on the Navigation menu () > SQL.

  2. Click on the instance ID called patent-instance.

  3. In the Primary Instance menu, click Cloud SQL Studio.

  4. Provide the following details to sign in, and click Authenticate.

Property Value
Database Select patent-db
Authentication method Select Built-in database authentication
User Select postgres
Password supersecret!
  1. On the Cloud SQL Studio page, click New SQL editor tab to open a new query window.

  2. To enable the google_ml_integration extension, copy and paste the following query in the query window, and click Run.

CREATE EXTENSION google_ml_integration;

When the query has executed successfully, you see a message that says Statement executed successfully.

  1. In the query editor window, click Clear (along the same menu bar as Run) to remove the previous query.

  2. To enable the vector extension, copy and paste the following query in the query window, and click Run.

CREATE EXTENSION vector;

When the query has executed successfully, you see a message that says Statement executed successfully.

  1. In the query editor window, click Clear (along the same menu bar as Run) to remove the previous query.

  2. To grant the database user named postgres the permission to execute the embedding function, copy and paste the following query:

GRANT EXECUTE ON FUNCTION embedding TO postgres;

When the query has executed successfully, you see a message that says Statement executed successfully.

Click Check my progress to verify the objective. Configure a Cloud SQL for PostgreSQL database to support vector search.

Task 2. Create a new table and load patents data

The Google Patents Public Data is a large dataset of patent publications that provides the full abstract of each patent and is a great candidate for vector search due to the often lengthy and complex text in these abstracts.

In this task, you create a new table containing the various columns in the patent source data plus an extra column for the vector embeddings for the abstract text (to be generated in the next task). Last, you load a sample of the full patent data into the table in Cloud SQL for PostgreSQL.

  1. In the query editor window, click Clear (along the same menu bar as Run) to remove the previous query.

  2. To create a new table for the patents data, copy and paste the following query in the query window, and click Run.

CREATE TABLE patents_data (id VARCHAR(25), type VARCHAR(25), number VARCHAR(20), country VARCHAR(2), date VARCHAR(20), abstract VARCHAR(300000), title VARCHAR(100000), kind VARCHAR(5), num_claims BIGINT, filename VARCHAR(100), withdrawn BIGINT, abstract_embeddings vector(768));

The last column of the table named abstract_embeddings is of the type vector, which supports storage for the vector values that you create in the next task.

When the query has executed successfully, you see a message that says Statement executed successfully.

  1. In the Cloud SQL Studio query editor, click Clear (along the same menu bar as Run) to remove the previous query.

  2. To load data into the table, copy and paste the following query in the query window, and click Run.

Note that this is a sample of the full patents dataset, but includes all of the information for each of the 50 patents loaded into the table.

insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10326103','utility','10326103','US','6/18/2019','A display device includes a first substrate having a display area and a non-display area around the display area, a seal pattern in the non-display area and offset from the display area, and one or more buffer patterns between the seal pattern and the display area and having a viscosity of 5000 cps to 50000 cps.','Display device having buffer patterns','B2',15,'ipg190618.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10326507','utility','10326507','US','6/18/2019','A network device receives, from a network management system (NMS), a first traffic distribution associated with the FD-MIMO antenna site, and receives a first service reliability requirement associated with the FD-MIMO antenna site. The network device determines, based on physical constraints, a maximum number of a plurality of antenna base blocks that can be placed at a full-dimension multiple input multiple output (FD-MIMO) antenna site, wherein each of the plurality of antenna base blocks includes a plurality of antennas. The network device further determines a first number of antennas to switch into the FD-MIMO antenna site based on the determined maximum number of the plurality of antenna base blocks, the first traffic distribution, and the first service reliability requirement; and causes the first number of antennas to be switched into the FD-MIMO antenna site.','System and method for a dynamically active FD-MIMO antenna array adjustment system','B2',20,'ipg190618.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10328303','utility','10328303','US','6/25/2019','An exercise treadmill is disclosed. The treadmill can be constructed with no obstructing front rails, with one or more side rails, and/or with a structural flat or ramped surface at the front allowing the user to exercise with unconstrained motion. The treadmill can further include one or more accommodations to help the user stay safe, remain longitudinally centered, and/or adjust speed with controls built into the treadmill, or automatically based on body position relative to sensors built into the side rails. The treadmill belt may be motor driven, or be user driven and dynamically moderated by resistance. The treadmill configuration can be utilized to provide a virtualized exercise experience for the user.','Exercise treadmill','B2',27,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10328431','utility','10328431','US','6/25/2019','A storage system for storing samples, such as frozen biological samples in RFID-tagged vials. The storage system has (i) a storage device having a device antenna and (ii) a plurality of storage components adapted to be stored within the storage device, each storage component having a component circuit. Each storage component is configured to store one or more samples. The storage device is configured to (i) transmit electrical power and downlink data signals wirelessly to each storage component via the device antenna and the corresponding component circuit and to (ii) receive uplink data signals from each storage component wirelessly via the corresponding component circuit and the device antenna such that a control system located outside of the dewar can identify any specified storage component stored within the storage device.','Storage devices for RFID-tracked biological and other samples','B2',19,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10328505','utility','10328505','US','6/25/2019','A circular saw includes a worktable, a sliding unit including a mounting base mounted on the worktable and providing an accommodation slot and two sliding shafts axially slidably inserted through the mounting base at two opposite sides of the accommodation slot in a parallel manner, and a cutting unit including a saw arm pivotally connected between the two sliding shafts and providing an accommodation portion and a saw blade pivotally mounted at the saw arm. Thus, when the saw arm is in an upper limit position, the accommodation of the saw arm is partially disposed outside the accommodation slot. When the saw arm is in a lower limit position, the accommodation portion is received in the accommodation slot. Subject to the design described above, the circular saw achieves the effects of reduced overall dimension, low vibration and high cutting accuracy.','Circular saw','B2',3,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10328822','utility','10328822','US','6/25/2019','An improved system to raise and lower a seat by a simplified substantially parallelogram or non-parallelogram motion. By replacing two of the links of a parallelogram seat lift system with an arc, or a straight link as a mechanically defined path for a pivot to follow, space and material can be saved to fit an adjustable seat on an ATV or any type of support system. The system can be useful on many varieties of vehicles and other adjustable supports.','Adjustable seat and support system','B2',9,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10329100','utility','10329100','US','6/25/2019','A tie plate straightener includes a plurality of rollers having varying cross-section and differing elevations. The tie plate straightener includes directional wheels between the rollers and disposed in alignment with the lower elevations of the rollers. The straightener receives tie plates at an input and rotates the tie plates when the tie plate engages the directional wheels. The tie plate is thereby oriented and/or positioned so that the tie plate is supported above the directional wheels.','Plate straightener','B1',19,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10329436','utility','10329436','US','6/25/2019','A self-healing polymer is described herein, including a first carbon nanotube filled with at least a first healing agent, wherein the first carbon nanotube has first and second ends, wherein a first end cap is closed on the first end of the first carbon nanotube and a second end cap is closed on the second end of the first carbon nanotube, and a second carbon nanotube filled with at least a second healing agent, wherein the second carbon nanotube has first and second ends, wherein a first end cap is closed on the first end of the second carbon nanotube and a second end cap is closed on the second end of the second carbon nanotube.','Self-healing polymer compositions','B2',18,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10330945','utility','10330945','US','6/25/2019','There is provided a medical image display apparatus including: a display control section that performs control such that a left-eye image and a right-eye image that form a medical image are displayed in a time division manner on a predetermined display section; and a communication section that transmits a synchronization signal in accordance with display timings of the left-eye image and the right-eye image on the display section to shutter glasses that include a left-eye shutter and a right-eye shutter, and receives a response to the synchronization signal from the shutter glasses. The display control section performs the control such that only any one of the left-eye image and the right-eye image is displayed on the display section in accordance with a reception status of the response.','Medical image display apparatus, medical information processing system, and medical image display control method','B2',10,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10331073','utility','10331073','US','6/25/2019','In an example implementation, a method of cleaning a silicon photoconductor includes contacting the silicon photoconductor with a base-peroxide solution, rinsing the silicon photoconductor with a liquid, and heating the silicon photoconductor to evaporate the liquid.','Cleaning a silicon photoconductor','B2',18,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10331564','utility','10331564','US','6/25/2019','Technologies for secure I/O with MIPI camera devices include a computing device having a camera controller coupled to a camera and a channel identifier filter. The channel identifier filter detects DMA transactions issued by the camera controller and related to the camera. The channel identifier filter determines whether a DMA transaction includes a secure channel identifier or a non-secure channel identifier. If the DMA transaction includes the non-secure channel identifier, the channel identifier filter allows the DMA transaction. If the DMA transaction includes the secure channel identifier, the channel identifier filter determines whether the DMA transaction is targeted to a memory address in a protected memory range associated with the secure channel identifier. If so, the channel identifier filter allows the DMA transaction. If not, the channel identifier filter blocks the DMA transaction. Other embodiments are described and claimed.','Technologies for secure I/O with MIPI camera device','B2',25,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10331881','utility','10331881','US','6/25/2019','Techniques are described herein for loading a user-mode component of a security agent based on an asynchronous procedure call (APC) built by a kernel-mode component of the security agent. The APC is executed while a process loads, causing the process to load the user-mode component. The user-mode component then identifies slack space of the process, stores instructions in the slack space, and hooks function(s) of the process, including modifying instruction(s) of the function(s) to call the instructions stored in the slack space. When those modified instruction(s) call the stored instructions, the stored instructions invoke the user-mode component, which receives data from the hooked function(s). Also, the security agent may bypass a control-flow protection mechanism of the operating system by setting a pointer of the control-flow protection mechanism to point to an alternate verification function.','User-mode component injection techniques','B2',20,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10332201','utility','10332201','US','6/25/2019','A computer-assisted method of presenting a plurality of financial accounts as a unitary financial account. The method includes displaying, on a graphical display, a graphical representation of a first financial account and displaying, on the graphical display, a graphical representation of a second financial account, wherein the graphical representation of the first financial account and the graphical representation of the second financial account are displayed as a unitary graphical representation that conveys to a user that the first financial account and the second financial account are a partitioned unitary financial account. The method also includes enabling the user to transfer monetary funds between the first financial account and the second financial account by manipulation of the unitary graphical representation.','Bundled financial accounts','B1',12,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10333086','utility','10333086','US','6/25/2019','A flexible display panel fabrication method and a flexible display panel where the method first subjects a photoresist layer to patterning to form a plurality of mutually spaced photoresist zones, a through hole being formed between every two adjacent ones of the photoresist zones; and then, subjecting the flexible backing plate to cavity formation with the photoresist zones as a mask so as to form a plurality of mutually parallel backing cavities respectively at locations corresponding to the through holes; and then, depositing a metal film and subsequently removing the photoresist zones and portions of the metal layer located thereon to form a plurality of metal patterns embedded in the plurality of mutually parallel backing cavities, each of the metal patterns including a scan line and a plurality of gate electrodes; and then, forming a plurality of TFTs arranged in an array and OLED light emissive elements.','Flexible display panel fabrication method and flexible display panel','B2',13,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10333126','utility','10333126','US','6/25/2019','The present invention relates to a composite separation membrane for a lithium secondary battery having excellent lifetime and safety improvement effects, and a preparation method therefor and, more specifically, to a composite separation membrane for a lithium secondary battery, including: a porous base layer; a heat resistant layer formed on one surface or both surfaces of the porous base layer; and a fusion layer formed on the outermost layer. Inorganic particles in the heat resistant layer are connected and fixed by a binder polymer, and the fusion layer is prepared by comprising amorphous polymer particles having a glass transition temperature of 30 to 90° C. and a difference between a fusion temperature and the glass transition temperature of 60° C. or lower.','Fusion type composite separation membrane for lithium secondary battery, and preparation method therefor','B2',11,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10333949','utility','10333949','US','6/25/2019','The present disclosure relates to systems and methods for blocking an infection vector. In some embodiments, a method may include detecting, at a first device, a synchronization event with a second device, the first device and the second device operating with a proprietary mobile operating system. In some examples, the method may include recognizing, by the first device, that the first device is attempting to send a data package to the second device, and identifying the data package as malware. The method may further include blocking the data package from being received at the second device based at least in part on the identifying.','Proactive protection of mobile operating system malware via blocking of infection vector','B1',16,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10334023','utility','10334023','US','6/25/2019','The present invention discloses a content distribution method, system and a server. In one embodiment, the method includes: receiving a content distribution request form a client; obtaining all receiving ends designated by the content distribution request, and marking at least a portion of the receiving ends with a first status code; judging whether all the at least a portion of the receiving ends complete the distribution task, if not, controlling an internal distribution process until all the at least a portion of the receiving ends complete the distribution task.','Content distribution method, system and server','B2',18,'ipg190625.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10334962','utility','10334962','US','7/2/2019','A portable, stable and rigid baby changing station which can be easily collapsed for storage or expanded for use and which can be safely and securely worn by a user, to form a firm bed for changing a baby when no other clean or useable surfaces are available.','Wearable portable baby changing table','B2',15,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10335619','utility','10335619','US','7/2/2019','A multifunction NFPA escape and ladder belt having multiple functions for firefighter and rescue worker work. The belt includes a front buckle and right and left side buckles, straps coupling the left and right side buckles to the front buckle and to one another. At least one of said straps includes a stitched loop portion formed with a stitching pattern configured to fail, and for the loop portion to unfold, when the side straps are under a sufficient tension load exceeding the breaking strength of the stitching pattern; that failure will occur before a structural failure in any other element or component of the belt.','Firefighter multifunction ladder and escape belt','B2',14,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10336444','utility','10336444','US','7/2/2019','A rotor includes a blade retention cuff configured to receive a rotor blade; a yoke coupled to the blade retention cuff; and a rigid propeller shaped hub configured to enclose at least a portion of the blade retention cuff and at least a portion of the yoke.','Composite stiffened rigid propeller shaped main rotor hub','B2',18,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10337814','utility','10337814','US','7/2/2019','A dearmer positioning system has two assemblies, each of which circumscribes a dearmers barrel. Each of the two assemblies includes two half rings and a one-piece outer ring. The two half rings are joined to one another to define a full ring having a first central opening defining a first diameter. The full ring has a periphery defining a second diameter. The one-piece outer ring has a second central opening defining a third diameter, and a periphery defining a fourth diameter. The third diameter is greater than the second diameter such that the full ring slidingly fits in the central opening of the outer ring. Threaded fasteners engage the outer ring and extend radially through the outer ring and into its central opening to engage the periphery of the full ring.','Dearmer positioning system','B1',18,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10338067','utility','10338067','US','7/2/2019','Method and compositions using transition metal salts and/or ammonium chloride to liberate toxins and other molecules from cyanobacteria, useful for assaying for total cyanobacterial toxins in lakes, reservoirs and other waters.','Rapid analysis for cyanobacterial toxins','B1',11,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10338681','utility','10338681','US','7/2/2019','One illustrative system disclosed herein includes a processor configured to determine a haptic effect, wherein the haptic effect includes a static ESF effect or a confirmation ESF effect; and transmit a haptic signal associated with the haptic effect. The illustrative system also includes an ESF controller in communication with the processor, the ESF controller configured to receive the haptic signal, determine an ESF signal based at least in part on the haptic signal, and transmit the ESF signal. The illustrative system further includes an ESF device in communication with the ESF controller, the ESF device including an ESF cell and configured to receive the ESF signal and output the haptic effect.','Systems and methods for multi-output electrostatic haptic effects','B2',20,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10338956','utility','10338956','US','7/2/2019','An application profiling system, initiating profiling a software application; including: apparatus to receive user input information of a software application profiling target and execution requirements, to store profiler specifications; to determine which profiler satisfies the execution requirements, based on the specifications, and to generate needed profiling tasks, each task specifying an application profiler; to select hardware resources the tasks; and to initiate execution of the tasks.','Application profiling job management system, program, and method','B2',15,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10339572','utility','10339572','US','7/2/2019','A seemingly infinite and continuous stream of online content can be tracked by a movement tracker that can track an amount of movement of a stream of content. For example, such a movement tracker can track the amount of movement per session of a client-side application, such as per session of a web browser. In an example, the tracking of the movement can occur by tracking a measurable parameter of the stream that indicates the amount of movement, such as scroll distance. The movement tracker may also be configured to determine user interaction data according to the tracked amount of movement.','Tracking user interaction with a stream of content','B2',20,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10339617','utility','10339617','US','7/2/2019','An order management system that employs profile locking is provided for managing clinical orders in patient profiles. The system allows users to initiate lockable order actions (e.g., order actions requiring a profile lock for conflict checking) in a profile locked by another user. When a user attempts to initiate a lockable order action, the system provides a notification to the user indicating that the patient profile is locked by another user. The user may elect to continue initiating the lockable order action. When the profile becomes available, the system provides a notification to the user, who may then obtain the profile lock and process the lockable order action, including having the system perform conflict checking. The system may also provide for the initiation of an instant messaging session between the user attempting to enter a lockable order action in a locked profile and another user who has the profile lock.','Order profile safeguarding mechanism','B2',20,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10340545','utility','10340545','US','7/2/2019','A method and apparatus is provided for harvesting electricity from a biofilm retained in a zero chamber, no interphase container, the biofilm having a portion supporting aerobic microbial activity and a second portion supporting anaerobic microbial activity, wherein the first and the second portion are in direct physical contact. A power harvester is electrically connected, directly or indirectly, to the second portion of the biofilm.','Method and apparatus for converting chemical energy stored in wastewater into electrical energy','B2',29,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10341086','utility','10341086','US','7/2/2019','A method is performed by a server for searching for information contained in encrypted data without revealing the information to the server. The server receives from a client: an encrypted matrix containing the information to be searched for in files and linking the information to the files; for each of the files, a merged secret key; and an encrypted vector having a length corresponding to a number of the information. The encrypted data is evaluated by performing a multiplication of the matrix with entries in the vector using a multikey homomorphic encryption scheme. For each of the files, a value of the multiplication of the matrix is decrypted using the corresponding merged secret key so as to determine which of the files contains the information. The files containing the information are sent to the client.','Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data','B2',12,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10341990','utility','10341990','US','7/2/2019','An electronic apparatus and a controlling method thereof are provided. The electronic apparatus includes: a first communication module configured to communicate in a first communication method, and a second communication module configured to communicate in a second communication method. The first communication module is further configured to change a transmission output level of the first communication module from a first transmission output level to a second transmission output level in response to the second communication module receiving data, and change the transmission output level from the second transmission output level to the first transmission output level in response to the second communication module completing the reception of the data.','Electronic apparatus and controlling method thereof','B2',17,'ipg190702.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10342895','utility','10342895','US','7/9/2019','A pulverulent semisynthetic material, derived from a natural marine biomaterial, namely the aragonitic inner layer of the shell of bivalve molluscs selected from the group including Pinctadines, notably Pinctada maxima, margaritifera, and Tridacnes, notably Tridacnagigas, maxima, derasa, tevaroa, squamosa, crocea, Hippopushippopus, Hippopusporcelanus, in pulverulent form, with addition of insoluble and soluble biopolymers and calcium carbonate transformed by carbonation; it also relates to the method of preparation thereof and to the uses thereof.','Pulverulent semisynthetic material obtained by modifying the composition of a natural marine biomaterial, method of manufacture thereof, and applications thereof','B2',7,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10343251','utility','10343251','US','7/9/2019','In a cam grinding method, a common surface of a first cam and a second cam is acquired in a common surface setting step. In a first common surface grinding step performed after a first cam grinding step, traverse movement of a grinding wheel is performed such that the grinding wheel is aligned with an area from the first cam to the second cam while the first cam and the second cam are rotated, and the common surface is ground. In a second common surface grinding step performed after a second cam grinding step, traverse movement of the grinding wheel is performed such that the grinding wheel is aligned with an area from the second cam to the first cam while the first cam and the second cam are rotated, and the common surface is ground.','Cam grinding machine and cam grinding method','B2',6,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10343997','utility','10343997','US','7/9/2019','An ursolic acid derivative can have the following structural formula: The ursolic acid derivative exhibits potent selective calcium channel blocker activities and may be used to treat a disease or condition for which calcium channel regulation is useful.','Ursolic acid derivatives','B1',11,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10344433','utility','10344433','US','7/9/2019','A ground stabilisation system is used for stabilising a subgrade region which includes a peat layer under a railway having rails supported across rail ties on a ballast layer over the subgrade region. The system uses a plurality of drain members submerged in an upright orientation within the peat layer of the subgrade region in which each drain member has a hollow interior and a plurality of openings therein which allow communication of fluid from the peat layer surrounding the drain member into the hollow interior of the drain member so as to be arranged to reduce fluid pressure in the peat layer when the peat layer undergoes dynamic loading from a passing train. Each drain member is a semi-rigid pipe having an axial stiffness greater than a dynamic stiffness of the peat layer to reduce loading on the peat layer under dynamic loading from a passing train.','Subgrade peat stabilisation system for railway','B2',16,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10344992','utility','10344992','US','7/9/2019','Embodiments of the invention provide a lighting and ventilating system including a main housing. The main housing can include an inlet through which air can be received within the main housing and an outlet through which the air can exit the main housing. A fan wheel can be supported in the main housing and it can be operable to generate a flow of air. A grille can be coupled to the main housing and the grille can comprise at least one aperture. The system can include a plate coupled to the grille and the plate can include a recess. Also, a set of illumination devices can be at least partially disposed within the recess.','Lighting and ventilating system and method','B2',34,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10345589','utility','10345589','US','7/9/2019','An apparatus includes a holographic film having one or more reflective holograms recorded therein. One or more light sources positioned to direct light toward a corresponding one of the one or more holograms, and a dynamic mask positioned between the one or more light sources and the holographic film to spatially modulate light traveling between the one or more light sources and the one or more reflective holograms but not spatially modulate ambient light traveling through the hologram.','Compact near-eye hologram display','B1',20,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10346746','utility','10346746','US','7/9/2019','A method and apparatus for generating a training model based on feedback are provided. The method for generating a training model based on feedback, includes calculating an eigenvector of a sample among a plurality of samples; obtaining scores granted by a user for one or more of the plurality of samples in a round, obtaining scores granted by the user for a first number of samples; obtaining scores granted by the user for a second number of samples in response to detecting, based on the eigenvector, an inconsistency between the scores granted by the user for the first number of samples; and generating a training model based on the scores granted by the user for the first and second numbers of samples. A corresponding apparatus is also provided.','Generating a training model based on feedback','B2',8,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10347147','utility','10347147','US','7/9/2019','A system, a method, and a computer program product for managing answer feasibility in a Question and Answering (QA) system. A set of candidate situations is established. The set of candidate situations corresponds to a first set of answers. A QA system establishes the set of candidate situations by analyzing a corpus. The first set of answers will answer a question. The QA system identifies a subset of the set of candidate situations. The subset of candidate situations corresponds to a portion of contextual data. The portion of contextual data is from a set of contextual data. The set of contextual data relates to the question. The question-answering system determines a set of answer feasibility factors. The set of answer feasibility factors is determined using the subset of candidate situations. The set of answer feasibility factors indicates the feasibility of the answers in the first set of answers.','Managing answer feasibility','B2',14,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10347243','utility','10347243','US','7/9/2019','Disclosed herein is a method for analyzing an utterance meaning. The method includes collecting a voice signal of an utterer; converting the collected voice signal into information in a text form, extracting a keyword of the text information from the text information, and deriving at least one utterance topic on the basis of the extracted keywords of the text information.','Apparatus and method for analyzing utterance meaning','B2',26,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10347623','utility','10347623','US','7/9/2019','A switch includes an input terminal and an output terminal. The switch also includes a first stack having transistors coupled in series, and a second stack having transistors coupled in series. The first stack and the second stack are connected in parallel with one another.','Switch having first and second switching elements connected in parallel with one another','B2',16,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10347660','utility','10347660','US','7/9/2019','The present disclosure discloses an array substrate, the array substrate comprises a substrate as well as a thin film transistor and a pixel electrode formed on the substrate, wherein the top of the thin film transistor is formed a floating gate electrode, at least portion of the floating gate electrode and the pixel electrode are made of the same material. The present disclosure also discloses a manufacturing method of an array substrate. Through this way, the present disclosure simultaneously forms a floating gate electrode in the manufacturing process of the pixel electrode, the pixel electrode and the floating gate electrode is formed by a mask, there is no need to add a mask, thus achieving the manufacture of the dual gate thin film transistor and the array substrate, briefing the process, reducing the production costs.','Array substrate and manufacturing method thereof','B2',11,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10348905','utility','10348905','US','7/9/2019','A computer-based system and method for responding to customer calls. The method includes automatically determining whether at least one incoming call meets existing customer criteria and further automatically determining a market segment of the at least one incoming call. The market segment may indicate whether a specific customer prefers: (i) no voice or face-to-face interaction with a representative; (ii) a face-to-face interaction with a representative; and/or (iii) a voice only interaction with a representative. The method further includes automatically routing the at least one incoming call based upon the determined market segment to one of: (1) an automated voice prompt; (2) a gaming system having two-way video capability; or (3) a person-to-person voice call system to facilitate answering incoming calls in a customer-friendly or customer preferred manner.','System and method for responding to customer calls','B1',16,'ipg190709.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10349594','utility','10349594','US','7/16/2019','The present invention relates to a Lactuca sativa seed designated 45-227 RZ. The present invention also relates to a Lactuca sativa plant produced by growing the 45-227 RZ seed. The invention further relates to methods for producing the lettuce cultivar, represented by lettuce variety 45-227 RZ.','Lettuce variety 45-227 RZ','B2',29,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10350762','utility','10350762','US','7/16/2019','A cleaning robot which performs a predetermined task while autonomously moving includes: a driver which makes the cleaning robot move; an image capturer which detects a movement state indicating whether a different cleaning robot existing in front of the cleaning robot is moving along an obstacle, a direction in which the different cleaning robot exists relative to the cleaning robot, and a distance between the cleaning robot and the different cleaning robot; and a following run controller which controls the driver in order for the cleaning robot to move following the different cleaning robot while keeping a position diagonally behind the different cleaning robot at an opposite side of the different cleaning robot from the obstacle, if the movement state indicates that the different cleaning robot is moving along the obstacle.','Autonomously moving body, movement controlling method, and recording medium storing movement controlling program','B2',14,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10351196','utility','10351196','US','7/16/2019','A foldable-chair carrier for a bicycle includes a frame that defines a plurality of generally planar, inclined chair-supporting surfaces over the rear wheel of the bicycle. The frame includes a pair of enlarged hooks at the forward, upper portion of the frame, with the hooks being arranged to receive opposite ends of one of the structural tubes of the chair in its folded configuration. The hooks may be sufficiently large to receive two or more of the folded chairs, in a stacked array. The hooks are configured so that even if the bicycle is running on uneven ground, the chairs will be unlikely to be thrown from the frame even in the absence of supplementary tie-downs.','Bicycle attachment for carrying a folding chair','B2',9,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10351891','utility','10351891','US','7/16/2019','The present invention provides a hydroxyacyl-coenzyme A dehydrogenase gene, an acyl-coenzyme A thiolase gene, genetically engineered strains and a use thereof. The hydroxyacyl-coenzyme A dehydrogenase gene encodes a protein (i) or (ii) as follows: (i) having an amino acid sequence according to SEQ ID NO 2; (ii) derived by substituting, deleting or inserting one or more amino acids in the amino acid sequence defined by (i) and having the same function as that of the protein of (i). The present invention constructs genetically engineered Mycobacterium strains lacking of a hydroxyacyl-coenzyme A dehydrogenase gene or an acyl-coenzyme A thiolase gene, which are used in the preparation of steroidal compounds, such as 1,4-BNA, 4-BNA, 9-OH-BNA, etc. Further, the invention improves the production efficiency and product quality of steroidal drug, improves the utilization of drug precursors, reduces the production costs, and provides the advantages of mild reaction conditions, environmentally friendly, and high economic and social benefits.','Hydroxyacyl-coenzyme A dehydrogenase gene, an acyl-coenzyme A thiolase gene, genetically engineered strains and a use thereof','B2',1,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10353986','utility','10353986','US','7/16/2019','Some embodiments provide a method for displaying text content on a device. The method receives a set of text content arranged in a single column. The method identifies a separable segment of the text content for display on a device. Based on properties of the text content and the device, the method determines whether the separable segment of the text content meets a set of characteristics for dividing the segment of text content into more than one column for display. When the separable segment of text content meets the set of characteristics, the method displays the segment of text content using more than one column.','Automatically dividing text into multiple columns','B2',25,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10353994','utility','10353994','US','7/16/2019','Systems, methods, and computer-readable media are disclosed for enhancing an email application to automatically analyze an email thread and generate a compact content summary. The content summary is based on relative content contributions provided by the constituent email messages in the email thread. The content summary may be presented in a special window without disturbing or modifying the email thread or its constituent email messages. The distinctive content summary disclosed herein comprises certain sentences that are automatically gleaned from the email thread, analyzed relative to other sentences, and presented in a chronological sequence so that the user can quickly determine what the email thread is about and/or the current status of the conversation. The content summary is based on email weights, word weights, and intersecting sentence pairs.','Summarization of email on a client computing device based on content contribution to an email thread using classification and word frequency considerations','B2',20,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10354362','utility','10354362','US','7/16/2019','Methods of detecting an object in an image using a convolutional neural network based architecture that processes multiple feature maps of differing scales from differing convolution layers within a convolutional network to create a regional-proposal bounding box. The bounding box is projected back to the feature maps of the individual convolution layers to obtain a set of regions of interest. These regions of interest are then processed to ultimately create a confidence score representing the confidence that the object detected in the bounding box is the desired object. These processes allow the method to utilize deep features encoded in both the global and the local representation for object regions, allowing the method to robustly deal with challenges in the problem of robust object detection. Software for executing the disclosed methods within an object-detection system is also disclosed.','Methods and software for detecting objects in images using a multiscale fast region-based convolutional neural network','B2',20,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10355310','utility','10355310','US','7/16/2019','Multi-functional additives containing at least one solid electrolyte interface (SEI) forming group and at least one SEI modifying group are advantageously employed in electrolyte compositions for electrochemical devices. The SEI forming group may comprise an organic carbonate moiety and the SEI modifying group may comprise a heteroatom functional group such as a sulfur containing organic moiety. The electrochemical devices include lithium ion batteries.','Electrolyte compositions for electrochemical devices','B2',20,'ipg190716.xml',0); insert into patents_data(id, type, number, country, date, abstract, title, kind, num_claims, filename, withdrawn) values('10355956','utility','10355956','US','7/16/2019','Methods, systems, and devices are described for wireless communications. A wireless station includes a transmitter to generate a wideband contiguous waveform in a band. The transmitter transmits the waveform that conforms to spectral masking attributes and spectral flatness attributes. The wireless station, or another device supporting spectrum analysis functions, detects a wideband contiguous waveform and performs spectrum analysis of the waveform. The wireless station includes a resolution bandwidth of 25 KHz and a video bandwidth of 7.5 KHz.','Spectral masking for wideband wireless local area network transmissions','B2',20,'ipg190716.xml',0);

When the query has executed successfully, you see a message that says Statement executed successfully.

Click Check my progress to verify the objective. Create a new table and load patents data.

Task 3. Generate and store text embeddings for the patents data

Now that you have configured your database to support vector search and loaded the data that you want to search, you can generate the text embeddings for the patent abstracts and add them to the patents_data table.

In this task, you begin by running a test query to generate embeddings using the Vertex AI text embeddings model named text-embedding-005. After a successful test, you run the full query to update the patents_data table with the generated embeddings for the abstract text.

Test the query to generate text embeddings

  1. In the Cloud SQL Studio query editor, click Clear (along the same menu bar as Run) to remove the previous query.

  2. To test the query to generate embeddings, copy and paste the following query in the query window, and click Run.

SELECT embedding('text-embedding-005', 'Cloud SQL is a managed, cloud-hosted SQL database service.'); Note: If you receive an error message postgresql error: Permission denied on the resource, wait a few minutes for the permissions that you assigned in Task 1 to fully propagate, and then run the query again.

The successful output resembles the following:

{-0.069205195,0.014191614,-0.05495163,0.07412431,-0.041930363,0.020848516,-0.038112275,-0.008370851,-0.04076421,-0.045720845,-0.03756072,-0.025186405,-0.042957906,-0.051989086,...

Update the abstract_embeddings column to store the generated text embeddings

  1. In the Cloud SQL Studio query editor, click Clear (along the same menu bar as Run) to remove the previous query.

  2. To add the text embeddings to the column named abstract_embeddings, copy and paste the following query in the query window, and click Run.

UPDATE patents_data set abstract_embeddings = embedding('text-embedding-005', abstract);

When the query has executed successfully, you see a message that says Statement executed successfully.

Click Check my progress to verify the objective. Generate and store text embeddings for the patents data.

Task 4. Perform vector search using text embeddings in Cloud SQL for PostgreSQL

After generating and storing the text embeddings for the patent abstracts, your data is now ready for your first real time vector search!

In this task, you run a query to perform similarity search based on the phrase new natural language processing related machine learning model and quickly return the top 10 most relevant patents, despite there not being an exact match for this text in the patent data.

  1. In the Cloud SQL Studio query editor, click Clear (along the same menu bar as Run) to remove the previous query.

  2. To perform a vector search using the text embeddings, copy and paste the following query in the query window, and click Run.

SELECT id, title, abstract FROM patents_data ORDER BY abstract_embeddings <=> embedding('text-embedding-005', 'A new Natural Language Processing related Machine Learning Model')::vector LIMIT 10;

This query uses the values in the abstract_embeddings column to find the top 10 database rows that are the most semantically similar to the search phrase new natural language processing related machine learning model.

Note that the embedding for the search phase is generated dynamically in the query. Feel free to explore this query more by replacing new natural language processing related machine learning model in the code above with a new search term of your choice.

The output resembles the following:

id title abstract
10347243 Apparatus and method for analyzing utterance meaning Disclosed herein is a method for analyzing an utterance meaning. The ...
10346746 Generating a training model based on feedback A method and apparatus for generating a training model based on feedback ...
10347147 Managing answer feasibility A system, a method, and a computer program product for managing answer feasibility ...
10353994 Summarization of email on a client computing device based on content ... Systems, methods, and computer-readable media are disclosed for ...
10354362 Methods and software for detecting objects in images ... Methods of detecting an object in an image using a convolutional neural network ...
10353986 Automatically dividing text into multiple columns Some embodiments provide a method for displaying text content on a device ...
10348905 System and method for responding to customer calls A computer-based system and method for responding to customer calls ...
10350762 Autonomously moving body, movement controlling method, and recording A cleaning robot which performs a predetermined task while autonomously moving ...
10338681 Systems and methods for multi-output electrostatic haptic effects One illustrative system disclosed herein ...
10338956 Application profiling job management system, program, and method An application profiling system, initiating profiling a software application ...

Congratulations!

In this lab, you learned the fundamentals of how to configure a Cloud SQL for PostgreSQL database to support vector search, generate and store text embeddings in a Cloud SQL for PostgreSQL table, and perform vector search in Cloud SQL for PostgreSQL using the stored text embeddings.

Next steps / Learn more

Google Cloud training and certification

...helps you make the most of Google Cloud technologies. Our classes include technical skills and best practices to help you get up to speed quickly and continue your learning journey. We offer fundamental to advanced level training, with on-demand, live, and virtual options to suit your busy schedule. Certifications help you validate and prove your skill and expertise in Google Cloud technologies.

Manual Last Updated February 4, 2025

Lab Last Tested February 4, 2025

Copyright 2025 Google LLC. All rights reserved. Google and the Google logo are trademarks of Google LLC. All other company and product names may be trademarks of the respective companies with which they are associated.

Previous Next

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.
Preview