Add legacy AI, RAG vector and Data Safe audit scenarios
Some checks failed
Repo Quality / structure (push) Has been cancelled
Some checks failed
Repo Quality / structure (push) Has been cancelled
This commit is contained in:
11
scenarios/06-rag-vector-classified-docs/sql/00_schema.sql
Normal file
11
scenarios/06-rag-vector-classified-docs/sql/00_schema.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||
|
||||
CREATE TABLE dds_rag_chunks (
|
||||
chunk_id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
document_title VARCHAR2(160) NOT NULL,
|
||||
department VARCHAR2(40) NOT NULL,
|
||||
classification VARCHAR2(30) NOT NULL,
|
||||
chunk_text VARCHAR2(1000) NOT NULL,
|
||||
embedding VECTOR(3, FLOAT32)
|
||||
);
|
||||
|
||||
19
scenarios/06-rag-vector-classified-docs/sql/01_seed_data.sql
Normal file
19
scenarios/06-rag-vector-classified-docs/sql/01_seed_data.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||
|
||||
INSERT INTO dds_rag_chunks (document_title, department, classification, chunk_text, embedding)
|
||||
VALUES ('Benefits Policy', 'HR', 'INTERNAL', 'General benefits policy available to employees.', TO_VECTOR('[0.10,0.20,0.30]'));
|
||||
|
||||
INSERT INTO dds_rag_chunks (document_title, department, classification, chunk_text, embedding)
|
||||
VALUES ('Executive Compensation Plan', 'HR', 'HR_CONFIDENTIAL', 'Compensation calibration for executives and retention risks.', TO_VECTOR('[0.11,0.21,0.31]'));
|
||||
|
||||
INSERT INTO dds_rag_chunks (document_title, department, classification, chunk_text, embedding)
|
||||
VALUES ('Contract Renewal Risk', 'LEGAL', 'LEGAL_CONFIDENTIAL', 'Legal risk on renewal clauses for strategic accounts.', TO_VECTOR('[0.80,0.10,0.20]'));
|
||||
|
||||
INSERT INTO dds_rag_chunks (document_title, department, classification, chunk_text, embedding)
|
||||
VALUES ('Company Travel Guide', 'GENERAL', 'PUBLIC', 'Public travel and expense guidance for all employees.', TO_VECTOR('[0.20,0.70,0.10]'));
|
||||
|
||||
INSERT INTO dds_rag_chunks (document_title, department, classification, chunk_text, embedding)
|
||||
VALUES ('Board M&A Briefing', 'EXEC', 'EXECUTIVE_CONFIDENTIAL', 'Potential acquisition targets and board-level financial exposure.', TO_VECTOR('[0.90,0.20,0.40]'));
|
||||
|
||||
COMMIT;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||
|
||||
CREATE END USER nina IDENTIFIED BY "Welcome1_DDS!";
|
||||
CREATE END USER heitor IDENTIFIED BY "Welcome1_DDS!";
|
||||
CREATE END USER sofia IDENTIFIED BY "Welcome1_DDS!";
|
||||
CREATE END USER carlos IDENTIFIED BY "Welcome1_DDS!";
|
||||
|
||||
CREATE DATA ROLE rag_employee_role;
|
||||
CREATE DATA ROLE rag_hr_role;
|
||||
CREATE DATA ROLE rag_legal_role;
|
||||
CREATE DATA ROLE rag_exec_role;
|
||||
|
||||
GRANT DATA ROLE rag_employee_role TO nina;
|
||||
GRANT DATA ROLE rag_hr_role TO heitor;
|
||||
GRANT DATA ROLE rag_legal_role TO sofia;
|
||||
GRANT DATA ROLE rag_exec_role TO carlos;
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||
|
||||
CREATE OR REPLACE DATA GRANT rag_public_internal_docs
|
||||
AS SELECT (chunk_id, document_title, department, classification, chunk_text, embedding)
|
||||
ON dds_rag_chunks
|
||||
WHERE classification IN ('PUBLIC', 'INTERNAL')
|
||||
TO rag_employee_role;
|
||||
|
||||
CREATE OR REPLACE DATA GRANT rag_hr_docs
|
||||
AS SELECT
|
||||
ON dds_rag_chunks
|
||||
WHERE classification IN ('PUBLIC', 'INTERNAL', 'HR_CONFIDENTIAL')
|
||||
TO rag_hr_role;
|
||||
|
||||
CREATE OR REPLACE DATA GRANT rag_legal_docs
|
||||
AS SELECT
|
||||
ON dds_rag_chunks
|
||||
WHERE classification IN ('PUBLIC', 'INTERNAL', 'LEGAL_CONFIDENTIAL')
|
||||
TO rag_legal_role;
|
||||
|
||||
CREATE OR REPLACE DATA GRANT rag_exec_docs
|
||||
AS SELECT
|
||||
ON dds_rag_chunks
|
||||
TO rag_exec_role;
|
||||
|
||||
SET USE DATA GRANTS ONLY ON dds_rag_chunks ENABLED;
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
SET PAGESIZE 100
|
||||
SET LINESIZE 220
|
||||
|
||||
PROMPT RAG retrieval simulation: retrieve chunks closest to the question embedding.
|
||||
|
||||
SELECT chunk_id,
|
||||
document_title,
|
||||
department,
|
||||
classification,
|
||||
chunk_text,
|
||||
VECTOR_DISTANCE(embedding, TO_VECTOR('[0.85,0.15,0.25]'), COSINE) AS distance
|
||||
FROM dds_rag_chunks
|
||||
ORDER BY distance
|
||||
FETCH FIRST 5 ROWS ONLY;
|
||||
|
||||
29
scenarios/06-rag-vector-classified-docs/sql/99_reset.sql
Normal file
29
scenarios/06-rag-vector-classified-docs/sql/99_reset.sql
Normal file
@@ -0,0 +1,29 @@
|
||||
BEGIN EXECUTE IMMEDIATE 'SET USE DATA GRANTS ONLY ON dds_rag_chunks DISABLED'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA GRANT rag_public_internal_docs'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA GRANT rag_hr_docs'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA GRANT rag_legal_docs'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA GRANT rag_exec_docs'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP TABLE dds_rag_chunks PURGE'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA ROLE rag_employee_role'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA ROLE rag_hr_role'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA ROLE rag_legal_role'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP DATA ROLE rag_exec_role'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP END USER nina'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP END USER heitor'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP END USER sofia'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP END USER carlos'; EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user