The diagram path now follows a documented standard procedure (lookup the closest Oracle Architecture Center reference → confirm components → author absolute_layout → spec validator → render → visually verify) and ships persistent guardrails so layout regressions can't recur. Persistent procedure changes (apply to all users, all sessions): - tools/diagram_spec_validator.py — geometry checks (CONTAINER_TOO_THIN, CONTAINER_PADDING_VIOLATION, LABEL_OVERFLOW_PARENT) run BEFORE either renderer (drawio + PPTX). Catches the subnet-collapse / label-overflow bugs that the post-render drawio validator missed. - tools/oci_diagram_gen.py + tools/oci_pptx_diagram_gen.py — call the spec validator before emitting any output. Adds mysql / mysql_heatwave type aliases. - tools/archcenter_pattern_lookup.py — scores against cached page descriptions (not just the 1-line summary), supports --queries for multi-fragment composition, and applies synonym expansion via kb/architecture-center/synonyms.yaml so "LB HA cross AD" matches "load balancer high availability availability domain". - kb/architecture-center/synonyms.yaml — canonical synonym table (load balancer, autonomous database, data guard, …) used by the lookup scorer. KB enrichment: - tools/archcenter_description_fetcher.py + 121 cached _description.md under kb/diagram/assets/archcenter-refs/<slug>/. Removes the runtime dependency on docs.oracle.com when authoring specs and feeds the pattern-lookup scorer. - 110+ cached .drawio / .svg / .png references for offline reuse, plus the OCI Toolkit v24.2 import (kb/diagram/assets/oci-toolkit-drawio). Documentation: - docs/skill/output-formats.md — new "Standard diagram-generation procedure (MANDATORY)" + geometry rules + the new validator entry. - SKILL.md option 2 — references the mandatory procedure. - README.md — describes the spec validator, archcenter_pattern_lookup and description fetcher, and updates the KB-health table. Tooling that backs the procedure (cumulative across recent sessions): tools/archcenter_case_runner.py, archcenter_batch_driver.py, archcenter_zip_downloader.py, drawio_visual_validator.py, drawio_fidelity_eval.py, harvest_drawio_icon.py, import_oci_library.py, oci_pptx_diagram_gen.py, oci_pptx_render.py, refresh_pptx_icon_index.py. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8.4 KiB
Deploy multicloud generative AI retrieval augmented generation (RAG)
- Source: https://docs.oracle.com/en/solutions/oci-multicloud-genai-rag/index.html
- Date: 2025-02
- Type: reference-architecture
- Services: genai, adb-s, object-storage
- Tags: ai-ml, multicloud, autonomous
Summary (catalog)
Multicloud RAG architecture with OCI GenAI. Document ingestion to ADB-S vector store, embedding generation with OCI GenAI, retrieval and generation pipeline. Cross-cloud connectivity for data sources.
Architecture (fetched from source)
Architecture
This multicloud solution sources data from both Microsoft Azure and Oracle Cloud Infrastructure (OCI), enabling Oracle Cloud Infrastructure Generative AI Agents to access a broader range of up-to-date information.
OCI GenAI Agents and Oracle Integration together support retrieve, augment, and generate (RAG) services to provide highly contextualized results.
OCI GenAI Agents specifically focus on using generative AI to respond to user queries by retrieving relevant information from knowledge bases or documents to generate answers. The agent provides enriched, context-aware responses by leveraging advanced AI techniques, embeddings, and document chunking to understand and generate relevant content:
-
Retrieve: Extract relevant data from the knowledge sources, usually through advanced hybrid search, combining lexical and semantic search.
-
Augment: Use the retrieved data to provide context for a query, ensuring that the generative AI model has the necessary information.
-
Generate: Use large language models (LLMs) to generate contextual responses to user questions, often enhanced by the data retrieved in the previous steps.
Oracle Integration , on the other hand, provides integration services that connect various applications and systems, allowing for orchestration of data flows across multiple environments:
-
Retrieve: Facilitates data retrieval from different sources by using connectivity agents to privately connect to various data sources or services (database, REST APIs, cloud storage, and so on) on Azure or other hyperscalers.
-
Orchestrate/Augment: Orchestrates workflows and integrates data from multiple sources, augmenting processes by enriching data through preconfigured or dynamic transformations.
-
Manage Data Flow: Unlike the RAG agent, Oracle Integration is not focused on generating responses from data but rather on enabling the smooth movement and transformation of data between systems and applications, ensuring that all the relevant data is available for different services.
Functional Area OCI GenAI Agents Oracle Integration
Purpose Designed to provide AI-driven responses by retrieving data, augmenting it, and using an LLM for generating responses. Designed to integrate and orchestrate data across multiple applications, providing seamless data connectivity but without the LLM-driven generation capabilities.
Data Handling Uses data to generate natural language responses in a context-aware manner. Handles data flow between applications, acting as a bridge between systems without generating content in the same way a LLM does.
Generative Capabilities Has generative AI capabilities and uses LLMs to generate conversational responses or other output. Does not have generative AI capabilities and is used to connect, retrieve, and transform data across services.
The following diagram illustrates the data flow through the architecture:
Description of the illustration multicloud-genai-rag-process.png
multicloud-genai-rag-process-oracle.zip
-
The user interacts with either Oracle Digital Assistant or OCI GenAI Agents , depending on the implementation, to deliver user queries and prompts.
-
Oracle Integration orchestrates calls among different components: pulling from data sources, handling doc ingestion, and passing user prompts downstream.
-
Data sources include:
-
Oracle Interconnect for Microsoft Azure provides a high-bandwidth link between OCI and Azure for document repositories, Oracle AI Database@Azure , and so on.
-
Local file repositories provide on-premises or local files for ingestion.
-
OCI Services, such as Oracle Fusion Cloud Enterprise Resource Planning .
-
Oracle AI Database@Azure in a delegated subnet for data sharing across Oracle-managed services on Azure.
-
The document ingestion, chunking, and embedding process can be implemented in different ways:
-
Oracle Integration (using embedded JavaScript or custom libraries) performs chunking and calls OCI Generative AI to embed.
-
OCI Functions receives documents, chunks them, then calls OCI Generative AI for embeddings.
-
Oracle Autonomous AI Database performs chunking and embedding using vector functionality.
The standard result is a set of chunk-text plus vector embeddings completely managed in the multicloud context.
-
Vectors and chunks are stored in Oracle Autonomous AI Database :
-
The typical approach is to store embeddings in the vector index of Oracle Autonomous AI Database .
-
The chunk text itself can also be stored directly in a database CLOB (for quick retrieval), or as references that point to the chunk text in OCI Object Storage or in Azure Data Lake.
-
OCI Object Storage can store the original documents if needed, but you don’t necessarily need to keep embeddings there if you’re querying the vector store in the database.
-
When the user prompts a question, OCI GenAI Agents (or the Digital Assistant) calls Oracle Autonomous AI Database to perform a vector similarity search using the user prompt’s embedding to identify the best matching chunks based on vector similarity scores.
-
OCI Generative AI generates embeddings for questions and document chunks and generates responses using LLM models, providing contextually enriched answers. Chunk retrieval and LLM response also depends on the implementation:
-
If chunk text is stored in the database, it can be retrieved directly.
-
If only references are stored, the system quickly fetches the actual chunk content from OCI Object Storage , Azure Data Lake, or other repository.
-
The relevant chunks are then fed to the LLM in OCI Generative AI along with the user’s original prompt to produce a contextually enriched response.
-
The final answer is returned either by the Oracle Digital Assistant or by the OCI GenAI Agents interface, depending on the front end to which the user is connected.
The following diagram illustrates the architecture:
Description of the illustration multicloud-genai-rag-architecture.png
multicloud-genai-rag-architecture-oracle.zip
Microsoft Azure provides the following components:
- Microsoft Azure region An Azure region is a geographical area in which one or more physical Azure data centers, called availability zones, reside. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).
Azure and OCI regions are localized geographic areas. For Oracle AI Database@Azure , an Azure region is connected to an OCI region, with availability zones (AZs) in Azure connected to availability domains (ADs) in OCI. Azure and OCI region pairs are selected to minimize distance and latency.
-
Microsoft Azure availability zone An availability zone is a physically-separate data center within a region that is designed to be highly available and fault tolerant. Availability zones are close enough to have low-latency connections to other availability zones.
-
Microsoft Azure Virtual Network Microsoft Azure Virtual Network (VNet) is the fundamental building block for a private network in Azure. VNet enables many types of Azure resources, such as Azure virtual machines (VM), to securely communicate with each other, the internet, and with on-premises networks.
-
Microsoft Azure Delegated Subnet Subnet delegation allows you to inject a managed service, specifically a platform-as-a-service (PaaS) service, directly into your virtual network. A delegated subnet can be a home for an externally managed service inside of your virtual network so that the external service acts as a virtual network resource, even though it is an external PaaS service.
-
Microsoft Azure Data Lake Storage Data Lake Storage is a cloud-based, enterprise data lake s