87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
# Runbook - 06 RAG Vector Classified Docs
|
|
|
|
## Objetivo
|
|
|
|
Demonstrar que um agente RAG so recupera chunks/documentos autorizados antes de enviar contexto ao LLM.
|
|
|
|
## Valor De Seguranca
|
|
|
|
- Reduz over-retrieval em RAG.
|
|
- Evita que chunks confidenciais sejam enviados ao modelo.
|
|
- Combina vector search com data grants por classificacao.
|
|
|
|
## Pre-Requisitos
|
|
|
|
- Banco Oracle AI Database com suporte a `VECTOR`, `TO_VECTOR` e `VECTOR_DISTANCE`.
|
|
- Banco compativel com Oracle Deep Data Security.
|
|
- SQLcl ou SQL*Plus.
|
|
|
|
## Antes - Ambiente Vulneravel
|
|
|
|
1. Limpe o cenario:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/99_reset.sql
|
|
```
|
|
|
|
2. Crie chunks e personas, sem aplicar data grants:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/00_schema.sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/01_seed_data.sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/02_identities.sql
|
|
```
|
|
|
|
3. Simule a pergunta RAG:
|
|
|
|
```text
|
|
Resuma documentos criticos sobre renovacoes, pessoas e riscos legais.
|
|
```
|
|
|
|
4. Execute a busca vetorial:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/04_test_queries.sql
|
|
```
|
|
|
|
## Resultado Esperado Antes
|
|
|
|
- A busca pode recuperar chunks `HR_CONFIDENTIAL`, `LEGAL_CONFIDENTIAL` e `EXECUTIVE_CONFIDENTIAL`.
|
|
- O LLM poderia receber contexto sensivel antes mesmo de gerar a resposta.
|
|
|
|
## Depois - Aplicando Deep Data Security
|
|
|
|
1. Aplique data grants por classificacao:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/03_data_grants.sql
|
|
```
|
|
|
|
2. Execute a mesma busca como `nina`, `heitor`, `sofia` e `carlos`:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/04_test_queries.sql
|
|
```
|
|
|
|
## Resultado Esperado Depois
|
|
|
|
- `nina` recupera apenas `PUBLIC` e `INTERNAL`.
|
|
- `heitor` recupera conteudo de RH autorizado.
|
|
- `sofia` recupera conteudo juridico autorizado.
|
|
- `carlos` recupera todos os chunks por papel executivo.
|
|
- A camada RAG so envia contexto autorizado ao LLM.
|
|
|
|
## Evidencias Para Demo
|
|
|
|
- Lista de chunks recuperados antes/depois.
|
|
- Classificacoes visiveis por persona.
|
|
- Explicacao de que o controle ocorre antes da chamada ao LLM.
|
|
|
|
## Referencias Oficiais
|
|
|
|
- Oracle Deep Data Security Guide: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/index.html
|
|
- Create Data Grants: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/create-data-grants.html
|
|
- TO_VECTOR SQL Reference: https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/to_vector.html
|
|
- VECTOR operations in PL/SQL: https://docs.oracle.com/en/database/oracle/oracle-database/26/lnpls/sql-data-types.html
|
|
|