112 lines
2.8 KiB
Markdown
112 lines
2.8 KiB
Markdown
# 06 - RAG Vector Classified Docs
|
|
|
|
## Objetivo
|
|
|
|
Demonstrar que um agente RAG ou copilot interno so recupera documentos e chunks autorizados para o usuario final antes de enviar contexto ao LLM.
|
|
|
|
## O Que Este Lab Mostra
|
|
|
|
Antes do Oracle Deep Data Security, a busca vetorial pode recuperar chunks confidenciais de RH, juridico e executivo. Depois dos data grants, a recuperacao vetorial respeita a classificacao do documento e a persona do usuario.
|
|
|
|
## Personas
|
|
|
|
- `nina`: colaboradora comum.
|
|
- `heitor`: RH.
|
|
- `sofia`: juridico.
|
|
- `carlos`: executivo.
|
|
|
|
## Onde Executar Os Comandos
|
|
|
|
Execute os comandos a partir da raiz do repositorio:
|
|
|
|
```powershell
|
|
cd C:\Users\rodrigo\Documents\Codex\oracle-deep-data-security-lab
|
|
```
|
|
|
|
Conecte no banco com SQLcl ou SQL*Plus:
|
|
|
|
```bash
|
|
sql "<connect_string>"
|
|
```
|
|
|
|
Este cenario usa tipo `VECTOR`, `TO_VECTOR` e `VECTOR_DISTANCE`. Use uma versao do banco com suporte a Oracle AI Vector Search.
|
|
|
|
## Passo A Passo - Antes, Ambiente Vulneravel
|
|
|
|
1. Acesse o banco:
|
|
|
|
```bash
|
|
sql "<connect_string>"
|
|
```
|
|
|
|
2. Limpe o cenario:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/99_reset.sql
|
|
```
|
|
|
|
3. Crie a tabela de chunks, embeddings simples e personas:
|
|
|
|
```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
|
|
```
|
|
|
|
4. Simule a pergunta RAG:
|
|
|
|
```text
|
|
Resuma documentos criticos sobre renovacoes, pessoas e riscos legais.
|
|
```
|
|
|
|
5. 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`.
|
|
|
|
## Passo A Passo - Depois, Com Deep Data Security
|
|
|
|
1. Aplique os data grants por classificacao:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/03_data_grants.sql
|
|
```
|
|
|
|
2. Execute novamente a mesma busca vetorial:
|
|
|
|
```sql
|
|
@scenarios/06-rag-vector-classified-docs/sql/04_test_queries.sql
|
|
```
|
|
|
|
3. Repita a demonstracao simulando `nina`, `heitor`, `sofia` e `carlos`.
|
|
|
|
Resultado esperado depois:
|
|
|
|
- `nina` ve apenas chunks `PUBLIC` e `INTERNAL`.
|
|
- `heitor` ve conteudo de RH autorizado.
|
|
- `sofia` ve conteudo juridico autorizado.
|
|
- `carlos` ve todos os documentos por perfil executivo.
|
|
- O LLM recebe somente contexto autorizado.
|
|
|
|
## Execucao Automatizada Opcional
|
|
|
|
Windows:
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 06-rag-vector-classified-docs -ConnectString "<connect_string>"
|
|
```
|
|
|
|
Linux/macOS:
|
|
|
|
```bash
|
|
./scripts/run-scenario.sh 06-rag-vector-classified-docs "<connect_string>"
|
|
```
|
|
|
|
## Detalhes Da Demo
|
|
|
|
Veja o passo a passo completo, evidencias e referencias oficiais em [RUNBOOK.md](RUNBOOK.md).
|
|
|