Ground Beans to Grounded Answers¶
Building Agentic Apps with Google and Oracle.
A working reference app that turns one chat message — “I need something bold” — into a grounded answer. The user doesn’t say “coffee”; the router recognizes the idiom, runs a vector search, and grounds the reply in real menu rows.
Oracle 26ai HNSW index over VECTOR.
Flash-Lite routes grounded product, store, and availability turns.
gemini-embedding-2 for retrieval; Gemini can assist selection.
flowchart TD
U([User question]) --> C[Litestar chat controller]
C --> I{Flash-Lite intent}
I -->|PRODUCT_RAG| P[Product RAG selector]
I -->|STORE_LOCATION| S[Store lookup]
I -->|PRODUCT_AVAILABILITY| V[Inventory lookup]
I -->|GENERAL_CONVERSATION| A[ADK 2.0 workflow]
P --> O[(Oracle 26ai<br/>HNSW search)]
S --> O
V --> O
A -. optional tool .-> O
O --> R[Grounded final event]
A --> R
R --> U
Product, store, and availability turns are grounded in deterministic service facts. Product RAG may use structured selection, but final product copy is rendered from Oracle rows. General conversation falls through to the ADK workflow, where the model can still use the same closure-bound tools.
Where to go next¶
One chat message, end to end: question → embedding → Oracle → streamed answer.
Vectors in Oracle, RAG, and how the chat router chooses grounded service calls.
The single-file workshop guide for running Cymbal Coffee with Oracle 26ai and Vertex AI.
Clean SQLcl and Google MCP Toolbox configuration for teaching Antigravity workflows.