adjustments

This commit is contained in:
2025-05-15 08:19:03 -03:00
parent dc180f2eba
commit ea569ba819

View File

@@ -108,7 +108,7 @@ Antes de iniciar, certifique-se de:
### Tarefa 2: Executar o Script de Criação de Tabelas no Autonomous Database ### Tarefa 2: Executar o Script de Criação de Tabelas no Autonomous Database
Agora que o Oracle Autonomous Database 23ai foi provisionado com sucesso, o próximo passo é preparar o banco de dados para o nosso caso de uso. Vamos executar um script SQL (`script.sql`) que cria três tabelas essenciais para o cenário de reconciliação de notas fiscais com agentes de IA: Agora que o Oracle Autonomous Database 23ai foi provisionado com sucesso, o próximo passo é preparar o banco de dados para o nosso caso de uso. Vamos executar o script SQL [script.sql](./source/script.sql) que cria três tabelas essenciais para o cenário de reconciliação de notas fiscais com agentes de IA:
- `PRODUTOS` - `PRODUTOS`
- `NOTA_FISCAL` - `NOTA_FISCAL`
@@ -125,7 +125,7 @@ Agora que o Oracle Autonomous Database 23ai foi provisionado com sucesso, o pró
- Em seguida, clique em **"SQL"** para abrir o SQL Console no navegador. - Em seguida, clique em **"SQL"** para abrir o SQL Console no navegador.
3. **Copie e Cole o Script SQL**: 3. **Copie e Cole o Script SQL**:
- Abra o arquivo `script.sql` localmente e copie todo o conteúdo. - Abra o arquivo [script.sql](./source/script.sql) localmente e copie todo o conteúdo.
- Cole no editor do SQL Console. - Cole no editor do SQL Console.
4. **Execute o Script**: 4. **Execute o Script**:
@@ -141,8 +141,8 @@ Agora que o Oracle Autonomous Database 23ai foi provisionado com sucesso, o pró
Com as tabelas criadas no Autonomous Database, agora é hora de inserir dados fictícios que simularão um cenário real para a aplicação de agentes de IA. Utilizaremos dois scripts SQL: Com as tabelas criadas no Autonomous Database, agora é hora de inserir dados fictícios que simularão um cenário real para a aplicação de agentes de IA. Utilizaremos dois scripts SQL:
- `insert_produtos_livros.sql` insere uma lista de livros como produtos, com seus respectivos EANs e descrições. - [insert_produtos_livros.sql](./source/inserts_produtos_livros.sql) insere uma lista de livros como produtos, com seus respectivos EANs e descrições.
- `notas_fiscais_mock.sql` insere registros de notas fiscais de saída simuladas, associadas a clientes, produtos e preços. - [notas_fiscais_mock.sql](./source/notas_fiscais_mock.sql) insere registros de notas fiscais de saída simuladas, associadas a clientes, produtos e preços.
Esses dados serão usados pelos agentes de IA para resolver inconsistências em notas de devolução. Esses dados serão usados pelos agentes de IA para resolver inconsistências em notas de devolução.
@@ -153,11 +153,11 @@ Esses dados serão usados pelos agentes de IA para resolver inconsistências em
- Acesse **Database Actions > SQL**. - Acesse **Database Actions > SQL**.
2. **Execute o Script de Produtos**: 2. **Execute o Script de Produtos**:
- Abra o conteúdo do arquivo `insert_produtos_livros.sql` e cole no editor SQL. - Abra o conteúdo do arquivo [insert_produtos_livros.sql](./source/inserts_produtos_livros.sql) e cole no editor SQL.
- Clique em **"Run"** ou pressione `Ctrl+Enter`. - Clique em **"Run"** ou pressione `Ctrl+Enter`.
3. **Execute o Script de Notas Fiscais**: 3. **Execute o Script de Notas Fiscais**:
- Agora abra o conteúdo do arquivo `notas_fiscais_mock.sql` e cole no editor. - Agora abra o conteúdo do arquivo [notas_fiscais_mock.sql](./source/notas_fiscais_mock.sql) e cole no editor.
- Execute da mesma forma. - Execute da mesma forma.
4. **Validar os Dados Inseridos**: 4. **Validar os Dados Inseridos**:
@@ -210,7 +210,7 @@ ORDER BY similaridade DESC;
Nesta tarefa, vamos **complementar a busca avançada baseada em SQL** com uma nova abordagem baseada em **vetores semânticos**. Isso será especialmente útil para agentes de IA que usam embeddings (representações numéricas de frases) para comparar similaridade entre descrições de produtos — de forma mais flexível e inteligente que buscas por palavras ou fonética. Nesta tarefa, vamos **complementar a busca avançada baseada em SQL** com uma nova abordagem baseada em **vetores semânticos**. Isso será especialmente útil para agentes de IA que usam embeddings (representações numéricas de frases) para comparar similaridade entre descrições de produtos — de forma mais flexível e inteligente que buscas por palavras ou fonética.
Para isso, será utilizado o script Python `process_vector_products.py`, que conecta ao banco Oracle, extrai os produtos da tabela `PRODUTOS`, transforma suas descrições em vetores (embeddings), e constrói um índice vetorial utilizando o próprio banco de dados Oracle. Para isso, será utilizado o script Python [process_vector_products.py](./source/process_vector_products.py), que conecta ao banco Oracle, extrai os produtos da tabela `PRODUTOS`, transforma suas descrições em vetores (embeddings), e constrói um índice vetorial utilizando o próprio banco de dados Oracle.
--- ---
@@ -322,9 +322,9 @@ Busca vetorial é altamente eficaz para encontrar produtos mesmo quando a descri
Este projeto é composto por **3 componentes principais**: Este projeto é composto por **3 componentes principais**:
1. **Agente ReAct com LangGraph + LLM da OCI** (Arquivo **main.py**) 1. **Agente ReAct com LangGraph + LLM da OCI** (Arquivo [main.py](./source/main.py))
2. **Servidor MCP com Ferramentas para Resolução de Notas Fiscais** (Arquivo **server_nf_items.py**) 2. **Servidor MCP com Ferramentas para Resolução de Notas Fiscais** (Arquivo [server_nf_items.py](./source/server_nf_items.py))
3. **Busca de Produtos Similares com OCI Generative AI e FAISS** (Arquivo **product_search.py**) 3. **Busca de Produtos Similares com OCI Generative AI e FAISS** (Arquivo [product_search.py](./source/product_search.py))
Abaixo detalhamos a funcionalidade de cada componente e destacamos os trechos mais importantes do código. Abaixo detalhamos a funcionalidade de cada componente e destacamos os trechos mais importantes do código.
@@ -471,7 +471,7 @@ if __name__ == "__main__":
### 3. Busca de Produtos Similares com OCI Generative AI e Banco de dados Vetorial ### 3. Busca de Produtos Similares com OCI Generative AI e Banco de dados Vetorial
Este módulo `product_search.py` implementa uma classe Python que permite buscar produtos semanticamente similares a partir de uma descrição textual, utilizando: Este módulo [product_search.py](./source/product_search.py) implementa uma classe Python que permite buscar produtos semanticamente similares a partir de uma descrição textual, utilizando:
- Embeddings da **OCI Generative AI** - Embeddings da **OCI Generative AI**
- Índices vetoriais com **Oracle Database 23ai** - Índices vetoriais com **Oracle Database 23ai**
@@ -553,7 +553,7 @@ def buscar_produto_vetorizado(descricao: str) -> dict:
return buscador.buscar_produtos_similares(descricao) return buscador.buscar_produtos_similares(descricao)
``` ```
Altere os parametros (Arquivo **product_search.py**) conforme a orientação abaixo: Altere os parametros (Arquivo [product_search.py](./source/product_search.py)) conforme a orientação abaixo:
```python ```python
@@ -591,7 +591,7 @@ class BuscaProdutoSimilar:
### 3. Configurando o Servidor MCP ### 3. Configurando o Servidor MCP
Assim como feito anteriormente na execução do código **process_vector_products.py**, será necessária a configuração do **Oracle Wallet** para o banco de dados **23ai**. Assim como feito anteriormente na execução do código [process_vector_products.py](./source/process_vector_products.py), será necessária a configuração do **Oracle Wallet** para o banco de dados **23ai**.
Modifique os parâmetros conforme suas configurações: Modifique os parâmetros conforme suas configurações:
@@ -615,7 +615,7 @@ Com isso, o modelo LLM e os embeddings estarão prontos para serem usados pelo a
## Tarefa 6: Testar a busca pela descrição de Produto e Nota Fiscal ## Tarefa 6: Testar a busca pela descrição de Produto e Nota Fiscal
Executar o arquivo **main.py** conforme abaixo: Executar o arquivo [main.py](./source/main.py) conforme abaixo:
```python ```python
python main.py python main.py