Skip to main content

Striim Platform 5.0 documentation

Sample app: embeddings

CREATE OR REPLACE APPLICATION VectorDB_Demo;

CREATE OR REPLACE SOURCE ReadChangesFromOracleDB USING OracleReader (
  Username: '**',
  Password: '**',
  Tables: 'AIDEMO.PRODUCTS',
  ConnectionURL: 'jdbc:oracle:thin:@oracle19c-infra123.abcdefghij.us-west-1.rds.amazonaws.com:1521/orcl'
) 
OUTPUT TO sourceCDCStream;

CREATE OR REPLACE EMBEDDINGS_GENERATOR OpenAIEmbedder26 WITH (
modelProvider: 'OpenAI',
modelName: 'text-embedding-ada-002',
apiKey: '***'
);

CREATE CQ EmbGenCQ
INSERT INTO EmbeddingCDCStream
SELECT putUserData(e, 'embedding', java.util.Arrays.toString(generateEmbeddings("admin.OpenAIEmbedder26",
  TO_STRING(GETDATA(e, "description")))))
FROM sourceCDCStream e;

CREATE OR REPLACE TARGET DeliverEmbeddingChangesToPostgresDB USING DatabaseWriter (
  Tables: 'AIDEMO.PRODUCTS,aidemo.products2
    ColumnMap(product_id=product_id,product_name=product_name,description=description,list_price=
    list_price,embedding=@USERDATA(embedding))',
  Username: '**',
  Password: '**',
  BatchPolicy: 'EventCount:100,Interval:2',
  CommitPolicy: 'EventCount:100,Interval:2',
  ConnectionURL: 'jdbc:postgresql://34.173.25.51:5432/postgres?stringtype=unspecified'
 ) INPUT FROM EmbeddingCDCStream;

END APPLICATION VectorDB_Demo;