Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
15139cc
quickstart templates
klazarz Sep 25, 2025
9a80b9a
Merge remote-tracking branch 'upstream/main'
klazarz Sep 25, 2025
863a03e
quickstart templates update
klazarz Sep 25, 2025
00c94a9
Merge remote-tracking branch 'upstream/main'
klazarz Sep 25, 2025
e9dd220
cleanup
klazarz Sep 25, 2025
9598a4b
Merge remote-tracking branch 'upstream/main'
klazarz Sep 25, 2025
43f518f
Merge remote-tracking branch 'upstream/main'
klazarz Sep 29, 2025
fc6f1a0
WMS ID 11919 - missing image
klazarz Sep 29, 2025
1bd0ee7
Merge remote-tracking branch 'upstream/main'
klazarz Sep 29, 2025
489cab8
WMS ID 11919 - fix sled intro
klazarz Sep 29, 2025
c066890
Merge remote-tracking branch 'upstream/main'
klazarz Sep 30, 2025
8ea3d56
WMS ID 11919 - fix formatting in MCP lab
klazarz Sep 30, 2025
0679464
Merge remote-tracking branch 'upstream/main'
klazarz Oct 1, 2025
b107c5a
WMS ID 11919 - fixed build lab for multiople industries
klazarz Oct 1, 2025
0d09d0b
Merge remote-tracking branch 'upstream/main'
klazarz Oct 2, 2025
8b89bb1
Merge branch 'main' into main
klazarz Oct 3, 2025
03c3a0a
Merge remote-tracking branch 'upstream/main'
klazarz Oct 4, 2025
9e608ca
Merge remote-tracking branch 'upstream/main'
klazarz Oct 7, 2025
134d315
WMS 11919: added Oracle MCP
klazarz Oct 7, 2025
911409d
Merge remote-tracking branch 'upstream/main'
klazarz Oct 7, 2025
af50181
Merge remote-tracking branch 'upstream/main'
klazarz Oct 9, 2025
553ccf9
Merge remote-tracking branch 'upstream/main'
klazarz Oct 10, 2025
ba71fbd
WMS 11919: added Oracle MCP lab
klazarz Oct 10, 2025
b280407
WMS 11919: finetuned Oracle MCP lab
klazarz Oct 10, 2025
d6ee119
Merge remote-tracking branch 'upstream/main'
klazarz Oct 10, 2025
3c365fb
WMS 11919: finetuned Oracle MCP lab
klazarz Oct 10, 2025
004dace
WMS 11919: finetuned Oracle MCP lab
klazarz Oct 10, 2025
49bc527
Merge remote-tracking branch 'upstream/main'
klazarz Oct 10, 2025
378a538
Merge remote-tracking branch 'upstream/main'
klazarz Oct 14, 2025
9039ee9
Merge remote-tracking branch 'upstream/main'
klazarz Oct 15, 2025
3d037b6
Merge remote-tracking branch 'upstream/main'
klazarz Oct 23, 2025
eab8ce9
wms 11901: DB AI naming changes
klazarz Oct 23, 2025
88d9362
Merge remote-tracking branch 'upstream/main'
klazarz Oct 23, 2025
e557119
wms 11901: fix LDA-520
klazarz Oct 23, 2025
aba30a6
Merge remote-tracking branch 'upstream/main'
klazarz Oct 23, 2025
a7d50d0
WMS 11968: initial commit
klazarz Oct 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions ai-vector-halloween/images/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Images for "The Great Pumpkin Caper" Workshop

This directory contains placeholder references for images used throughout the workshop. In a production environment, you would need to source or create the following images:

## Required Images

### Introduction (`../intro/intro.md`)
- `museum-heist.png` - Dramatic scene of a museum heist at night, with shadowy figures and security lights

### Lab 1 (`../labs/setup-adb/setup-adb.md`)
- `holmes-examining-clues.png` - Sherlock Holmes at his desk examining various clues and documents
- `autonomous-database-setup.png` - Screenshot or diagram of Oracle Autonomous Database provisioning interface

### Lab 2 (`../labs/vectorize-clues/vectorize-clues.md`)
- `vector-embeddings-brain.png` - Visualization of how AI embeddings work, perhaps showing text being converted to vectors
- `vector-space-diagram.png` - Diagram showing similar concepts clustering together in vector space

### Lab 3 (`../labs/traditional-query/traditional-query.md`)
- `traditional-vs-ai-search.png` - Side-by-side comparison showing traditional keyword search vs. AI semantic search
- `keyword-search-problems.png` - Diagram illustrating limitations of keyword-based search (synonyms, context, etc.)

### Lab 4 (`../labs/vector-search/vector-search.md`)
- `holmes-solving-mystery.png` - Sherlock Holmes in a triumphant pose, having solved a complex mystery
- `vector-search-connections.png` - Visualization showing clues being connected through vector similarity

## Image Specifications

- **Format**: PNG or JPG
- **Resolution**: Minimum 800x600 pixels, preferably 1200x900 or higher
- **Style**: Consistent Victorian/steampunk aesthetic to match the Sherlock Holmes theme
- **Colors**: Autumnal palette (oranges, browns, golds) mixed with Victorian colors (deep reds, navy blues)

## Sourcing Images

For a production workshop, you could:

1. **Commission illustrations** from artists specializing in Victorian/steampunk themes
2. **Use public domain images** of Sherlock Holmes (many illustrations are public domain)
3. **Create diagrams** using tools like draw.io, Lucidchart, or Adobe Illustrator
4. **License stock images** from sites like Shutterstock or Getty Images (search for "Sherlock Holmes", "autumn harvest", "database diagrams")

## Alternative Approach

If sourcing images is not feasible, you could:

1. **Remove image references** and rely on text descriptions
2. **Use ASCII art** or text-based diagrams
3. **Create simple SVG diagrams** inline in the markdown

## Halloween Theme Consistency

Ensure all images maintain the Halloween/Sherlock Holmes crossover theme:
- Victorian London setting
- Mysterious, foggy atmosphere
- Autumn/Halloween elements (pumpkins, leaves, etc.)
- Detective/mystery solving motifs
Binary file added ai-vector-halloween/images/access-sql-tool.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ai-vector-halloween/images/copy-paste-code.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ai-vector-halloween/images/museum-heist.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ai-vector-halloween/images/run-sql.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ai-vector-halloween/images/sql-results.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
86 changes: 86 additions & 0 deletions ai-vector-halloween/intro/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# The Adventure of the Stolen Pumpkin: A Sherlock Holmes Mystery

<img src="http://127.0.0.1:5500/images/museum-heist.jpeg" alt="Sherlock Holmes Mystery" width="300" height="200">

## The Opening Scene

All Hallow's Eve of 1887 served as a cold start to England's Autumn. With no interest in the Halloween festivities, Holmes was catching up on this morning's newspaper and I was enjoying a quiet moment by the fire in our rooms at 221B Baker Street when I heard a commotion in the hallway. Suddenly, the door burst open with Inspector Lestrade exclaiming, "Holmes! The British Museum has been robbed! Professor Cavendish's original hydrogen research - stolen from the most secure vault in England!"

Holmes's eyes gleamed. "The legendary Pumpkin Papers."

"Pumpkin Papers? What in blazes are those?" I asked.

"Cavendish was rumored to have hidden his most revolutionary hydrogen research in - of all things - a decorative ceramic pumpkin to keep them from falling into the wrong hands," Holmes explained. "When he died in 1810, his estate donated his scientific papers and belongings to the British Museum for preservation. Most were catalogued and made public, but these particular notes - supposedly containing revolutionary insights into hydrogen combustion and potential weaponization - were deemed too dangerous. The museum locked them in their most secure vault. They're worth a fortune to any nation seeking new sources of energy… or weaponry."

"The theft defies explanation, quite extraordinary" Lestrade continued. "The vault was locked, guards at every entrance. Yet at midnight, strange lights appeared, guards reported screams and apparitions, and by dawn - the papers had vanished."

"Suspects?" Holmes inquired.

"Three possibilities. Professor Moriarty's criminal network - they've been after scientific secrets. Foreign agents - German and French spies are in London. Or..." Lestrade paused. "Dr. Cornelius Pumpkin."

"The mad chemist and stage magician?" I exclaimed. "Why, I read in yesterdays post that he was expelled from the Royal Society?"

Holmes nodded. "And, Watson, he is none other than Henry Cavendish's great - nephew. Family connection gives him a motive."

"Watson, the game is afoot! The gleam in his eyes warning of a hunter in search of his prey."


## Solve the Mystery

Join Sherlock Holmes and Dr. Watson in this thrilling Halloween mystery! The famous decorative ceramic pumpkin has been stolen from the British Museum, and suspicions point to Dr. Pumpkin, the town's eccentric inventor. Use Oracle Autonomous AI Database's AI Vector Search to help Holmes uncover the truth behind this bizarre theft!

**What happened:** Top secret hydrogen fuel cell research was stolen from the British Museum vault!


**The suspects:** Three possibilities - Professor Moriarty's agents, foreign spies, or Dr. Pumpkin. But who is the real thief?

**The clues:**
After examining the crime scene at the British Museum, Inspector Lestrade gathered what evidence he could find and returned to 221B Baker Street.

"Holmes, Watson," Lestrade began, pulling out his notebook, "we've collected witness reports and physical evidence from the scene. I need your help making sense of it all."

"Let me have a look at the clues," I said eagerly, reaching for the notes.

| ID | Description | Evidence Type |
|----|-------------|---------------|
| 1 | Strange glowing lights formed intricate patterns in the air above the gallery, creating an eerie atmosphere | Witness Report |
| 2 | German chemistry textbooks left open to pages about phosphorescent compounds and luminescent substances | Physical Evidence |
| 3 | Someone was heard discussing "family legacy" and "rightful inheritance" near the vault | Witness Report |
| 4 | Luminescent paint residue was found on the cobblestones outside the museum | Physical Evidence |
| 5 | The vault alarm system was disabled using a timing device with unusual symbols etched into its casing | Technical Evidence |
| 6 | Strange glowing patterns resembling chemical formulas were seen dancing in the fog outside | Witness Report |
| 7 | A foreign accent was heard whispering about hydrogen secrets near the vault entrance | Witness Report |
| 8 | Professional stage equipment found abandoned near the scene, including portable lighting rigs and theatrical props | Physical Evidence |
| 9 | Test tubes with glowing residue found near the vault entrance, suggesting chemistry expertise | Physical Evidence |
| 10 | Footprints in the dust that suddenly vanish at the vault door, suggesting theatrical trickery | Physical Evidence |


Estimated Workshop Time: 60 minutes

### About Oracle Autonomous AI Database

Oracle Autonomous AI Database includes powerful AI features like AI Vector Search which can find meaningful connections between pieces of information, even when they use different words.

### Objectives

In this workshop, you will:
* Create a simple database table with mystery clues
* Learn how to "vectorize" text clues (turn them into searchable numbers)
* Compare regular searches with AI-powered vector searches
* Help Holmes solve the mystery by finding hidden connections

### Prerequisites

This workshop assumes you have:
* An Oracle Cloud account
* Basic knowledge of databases


## Learn More

* [Oracle Autonomous Database 23ai Documentation](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html)
* [AI Vector Search in Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/)

## Acknowledgements
* **Author** - Pat Shepherd, Senior Principal Database Product Manager
* **Last Updated By/Date** - Pat Shepherd, October 2025
143 changes: 143 additions & 0 deletions ai-vector-halloween/labs/setup-adb/setup-adb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# Lab 1: Setting Up the Database and Clue Table

## Introduction

In this lab, you'll create a simple database and table to store our mystery clues. This gives us a place to keep all the evidence organized.

Estimated Lab Time: 15 minutes


## Task 1: Create Your Database

1. Go to Oracle Cloud Console and navigate to **Autonomous Database**
2. Click **Create Autonomous Database**
3. Use these settings:
- **Display name**: `PumpkinMysteryDB`
- **Database name**: `pumpkin`
- **Workload type**: Transaction Processing
- **Deployment**: Shared Infrastructure
- **Always Free**: Check if you want free tier
4. Set a strong password for the ADMIN user
5. Click **Create** and wait for it to finish (5-10 minutes)


## Task 2: Create the Clues Table

For all of the tasks in this lab you will be entering SQL code into SQL Developer Web and running those SQL statement.

Open the SQL Developer Web tool from your Autonomous AI Database's Database Actions dropdown:
<img src="http://127.0.0.1:5500/images/access-sql-tool.png" alt="Access SQL Tool">

You will be copying the supplied code from the lab and pasting it into the SQL worksheet:
<img src="http://127.0.0.1:5500/images/copy-paste-code.png" alt="RCopy and Paste un SQL Statement">


To run the SQL, highlight only the pasted code and click the green "Run statement" button:
<img src="http://127.0.0.1:5500/images/run-sql.png" alt="Run SQL Statement" width="500" height="400">

The output will be visible down below:
<img src="http://127.0.0.1:5500/images/sql-results.png" alt="Results of SQL Statement" width="500" height="400">

Pro Tip: you can keep a running list of SQL you have entered. Just remember to highlight the statement you want to run before clicking the green "Run statement" button:
<img src="http://127.0.0.1:5500/images/running-list-of-sql.png" alt="Runing List of SQL Statement">

<span style="color: red;">**Note:** if you ever find yourself wanting to start over, here are commands to run to reset the database back to the instructions before you create your mystery_clues table. Do not run these now, but only when you want to start over:</span>

```sql
<copy>
DELETE FROM mystery_clues;
DROP INDEX idx_clue_embedding;
DROP TABLE mystery_clues CASCADE CONSTRAINTS PURGE;
EXEC DBMS_VECTOR.DROP_ONNX_MODEL(model_name => 'ALL_MINILM_L12_V2');
</copy>
```

OK - lets create a simple table to store our mystery clues:

```sql
<copy>
CREATE TABLE mystery_clues (
clue_id NUMBER PRIMARY KEY,
clue_text VARCHAR2(500) NOT NULL,
clue_type VARCHAR2(50),
location_found VARCHAR2(100),
embedding VECTOR(384) -- For AI Vector Search
);
</copy>
```

This table stores:
- `clue_id`: A number to identify each clue
- `clue_text`: The actual clue description
- `clue_type`: What kind of clue it is
- `location_found`: Where the clue was discovered
- `embedding`: Special column for AI search (we'll fill this later)

## Task 3: Add the Mystery Clues

Let's add 10 simple clues about the museum theft:

```sql
<copy>
INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (1, 'Witness Report', 'Main Gallery',
'Strange glowing lights formed intricate patterns in the air above the gallery, creating an eerie atmosphere');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (2, 'Physical Evidence', 'Study Room',
'German chemistry textbooks left open to pages about phosphorescent compounds and luminescent substances');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (3, 'Witness Report', 'Museum Corridor',
'Someone was heard discussing "family legacy" and "rightful inheritance" near the vault');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (4, 'Physical Evidence', 'Street Outside',
'Luminescent paint residue was found on the cobblestones outside the museum');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (5, 'Technical Evidence', 'Security Panel',
'The vault alarm system was disabled using a timing device with unusual symbols etched into its casing');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (6, 'Witness Report', 'Near Museum',
'Strange glowing patterns resembling chemical formulas were seen dancing in the fog outside');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (7, 'Witness Report', 'Near Vault',
'A foreign accent was heard whispering about hydrogen secrets near the vault entrance');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (8, 'Physical Evidence', 'Near Museum',
'Professional stage equipment found abandoned near the scene, including portable lighting rigs and theatrical props');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (9, 'Physical Evidence', 'Vault Entrance',
'Test tubes with glowing residue found near the vault entrance, suggesting chemistry expertise');

INSERT INTO mystery_clues (clue_id, clue_type, location_found, clue_text)
VALUES (10, 'Physical Evidence', 'Vault Entrance',
'Footprints in the dust that suddenly vanish at the vault door, suggesting theatrical trickery');

COMMIT;

</copy>
```

## Task 4: Check Your Data

Verify the clues were added correctly:

```sql
<copy>
SELECT clue_id, clue_text, clue_type
FROM mystery_clues
ORDER BY clue_id;
</copy>
```

You should see all 10 clues listed.

## Summary

Great! You've set up your database and added the mystery clues. Now we have evidence to investigate. In the next lab, we'll learn how to use AI to find connections between these clues that regular searches might miss.
107 changes: 107 additions & 0 deletions ai-vector-halloween/labs/traditional-query/traditional-query.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Lab 3: Watson Attempts a Traditional Search

## Task 1: Watson's Investigation - Traditional Keyword Search

"Watson, why don't you take the first pass? I shall observe your methodology."

"Excellent idea!" I exclaimed. "I'll search through the evidence systematically using proper investigative techniques."

"Right then," I said, rolling up my sleeves. "Let's start with what we know. There were theatrical elements to this crime - lighting effects and stage equipment. Let me search for anything stage or performance."

### Search 1: Looking for Theatrical Elements

```sql
<copy>
-- Watson searches for theatrical evidence
SELECT clue_id, clue_type, location_found, clue_text
FROM mystery_clues
WHERE UPPER(clue_text) LIKE '%STAGE%'
OR UPPER(clue_text) LIKE '%PERFORMANCE%';
</copy>
```

**Results:** 1 clue found

| clue_id | clue_type | location_found | clue_text |
|---------|-----------|----------------|-----------|
| 8 | Physical Evidence | Near Museum | Professional stage equipment found abandoned near the scene, including portable lighting rigs and theatrical props |

"Hmm," I muttered. "Only one clue about stage equipment. Could be from a nearby theatre. Or perhaps street performers? This doesn't tell us much - the equipment could have been abandoned there coincidentally."

### Search 2: Looking for Known Suspects

"Wait," I said, suddenly remembering our previous encounters. "Didn't we have that eccentric scientist Dr. Cornelius Pumpkin involved in some peculiar business a while back? The one with all those unusual interests? Let me search for him specifically!"

```sql
<copy>
-- Watson searches for Dr. Pumpkin
SELECT clue_id, clue_type, location_found, clue_text
FROM mystery_clues
WHERE UPPER(clue_text) LIKE '%PUMPKIN%'
OR UPPER(clue_text) LIKE '%CORNELIUS%'
OR UPPER(clue_text) LIKE '%DR. PUMPKIN%';
</copy>
```

**Results:** 0 clues found

"Nothing!" I exclaimed in frustration. "No mention of Dr. Pumpkin anywhere in the evidence. Well, I suppose that rules him out as a suspect. Unless..." I trailed off, uncertain.

Holmes raised an eyebrow but said nothing.

### Search 3: Looking for Family Connections

"Let me try a different approach," I said, determined not to give up. "Lestrade mentioned something about someone discussing 'family legacy.' Let me search for that!"

```sql
<copy>
-- Watson searches for family references
SELECT clue_id, clue_type, location_found, clue_text
FROM mystery_clues
WHERE UPPER(clue_text) LIKE '%FAMILY%'
OR UPPER(clue_text) LIKE '%LEGACY%'
OR UPPER(clue_text) LIKE '%INHERITANCE%';
</copy>
```

**Results:** 1 clue found

| clue_id | clue_type | location_found | clue_text |
|---------|-----------|----------------|-----------|
| 3 | Witness Report | Museum Corridor | Someone was heard discussing "family legacy" and "rightful inheritance" near the vault |

"Interesting!" I said. "Someone talking about family legacy. But Holmes, this is terribly vague! Whose family? What legacy? This could be anyone with a grievance about inheritance."


## Watson's Confusion

I sat back and reviewed my findings, frustration mounting.

"Holmes, I haven't the faintest idea what to make of this!" I confessed. "I've found clues about:
- Theatrical equipment (possibly abandoned by performers)
- Someone discussing family legacy (utterly ambiguous)
- And notably, NO evidence connecting to any known suspects like Dr. Cornelius Pumpkin

The problem is, none of these connect! I specifically searched for Dr. Pumpkin - someone we know has peculiar scientific interests that might fit this crime - but his name doesn't appear anywhere in the evidence. So either he's not involved, or... well, I don't know what the alternative would be!"

Holmes smiled enigmatically. "Watson, your methodology is sound - you've searched diligently for keywords. But you're searching for *words*, not *meaning*. You're finding trees, my friend, but missing the forest."

"But what else can I do?" I protested. "I've searched for theatrical terms, for specific suspects, for family connections. The evidence simply doesn't connect, and the one person I thought might be involved doesn't appear in any of the clues!"

"Ah, but Watson," Holmes said, his eyes twinkling, "therein lies the fundamental limitation of keyword search. You searched for the name 'Pumpkin' and found nothing - but what if the evidence describes him without using his name? What if the clues point to him through his *characteristics* rather than his identity?"

"I don't understand, Holmes."

"Tell me - if Dr. Cornelius Pumpkin were involved, what would you expect to find? Theatre expertise? Chemistry knowledge? A connection to Cavendish?"

"Well, yes, but..."

"And did you find evidence of those things?"

I paused, thinking back through my searches. "The theatrical equipment, yes. But I didn't search for chemistry because I didn't connect it to Dr. Pumpkin specifically!"

"Precisely," Holmes said. "And that, my dear Watson, is why your keyword search has led you to confusion rather than clarity. You cannot find what you don't know to search for. Now then, let me show you how vector search can reveal the connections you've been missing..."

"Holmes," I said with resignation, "I fear this case is beyond the reach of conventional methods. I cannot find suspects who aren't explicitly named in the evidence!"

"On the contrary, Watson. You've demonstrated perfectly why modern crimes require modern methods. Your keyword searches found *information*, but they couldn't find *meaning*. You searched for a name and found nothing - but the evidence about the person was there all along, just described differently. Now, let me show you what happens when we search for concepts rather than words..."
Loading