OCI Object Storage Knowledge Base Design and Runtime Flows

This topic explains the design-time and runtime workflows for leveraging OCI Object Storage as a knowledge base for Retrieval-Augmented Generation (RAG) in Siebel CRM.

Design Time Flow

  1. Configure the complete RAG workflow by setting up the knowledge base, defining data sources, creating the agent and its endpoint, and enabling retrieval-augmented response generation from the configured knowledge base.

  2. Create the agent flow, which can provision the Knowledge Base (KB), Data Source (DS), Agent, Agent Endpoint, and RAG tool based on the selected configuration flags and tool type.

  3. Upload local files to an OCI Object Storage bucket. If the target bucket does not already exist, it can be created automatically during the upload process. Existing files are skipped to avoid duplicate uploads.

  4. Create a data ingestion job to parse, index, and process the uploaded files, making them available for agent queries. Since ingestion runs asynchronously, the generated job ID is recorded in the logs for tracking and monitoring purposes.

Configuration Output

The following identifiers are generated and stored in the ociconfig.properties file upon successful completion of the configuration flow.

  • KnowledgeBaseId

  • DataSourceId

  • AgentId

  • AgentEndpointId

  • ToolId (if created)

Runtime Flow

At runtime, Siebel CRM uses the configured RAG agent endpoint to process chat requests, retrieve relevant information from the OCI Object Storage–backed knowledge base, and return the generated response to the requesting client.

Business Service Payloads for OCI Object Storage Knowledge Base

The sample payloads below illustrate the business service request and response formats used for OCI Object Storage–backed Retrieval-Augmented Generation (RAG). Before invoking the API, replace each <CHANGE_ME> placeholder with the appropriate value specific to your environment.

API Business Service Purpose HTTP Method Endpoint
CreateAgent SiebelAgentAIWebService Creates the Agent and Agent endpoint, and can create the KB, Data Source, and RAG tool. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/CreateAgent
CreateKnowledgeBase SiebelAgentAIWebService Creates the OCI Generative AI Agents Knowledge Base and associated Data Source. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/CreateKnowledgeBase
CreateTool SiebelAgentAIWebService Creates a RAG tool for the Agent. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/CreateTool
IngestData SiebelAgentAIWebService Starts data ingestion for an existing Data Source. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/IngestData
Chat SiebelAgentAIWebService Sends a user message to the RAG Agent. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/Chat
Upload SiebelOCIAIWebService Uploads local files to OCI Object Storage for ingestion. POST {{url}}/siebel/v1.0/service/SiebelOCIAIWebService/Upload
AgentDetails SiebelAgentAIWebService Retrieves details for an Agent. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/AgentDetails
DataSourceDetails SiebelAgentAIWebService Retrieves details for a Data Source. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/DataSourceDetails
KnowledgeBaseDetails SiebelAgentAIWebService Retrieves details for a Knowledge Base. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/KnowledgeBaseDetails
ToolDetails SiebelAgentAIWebService Retrieves details for a RAG tool. POST {{url}}/siebel/v1.0/service/SiebelAgentAIWebService/ToolDetails
CreateAgent Request Payload
{
  "body": {
    "agentName": "<CHANGE_ME>",
    "knowledgeBaseName": "<CHANGE_ME>",
    "datasourceName": "<CHANGE_ME>",
    "knowledgeBaseType": "<CHANGE_ME>",
    "isKBCreation": "<CHANGE_ME>",
    "isDSCreation": "<CHANGE_ME>",
    "indexConfigType": "<CHANGE_ME>",
    "namespaceName": "<CHANGE_ME>",
    "bucketName": "<CHANGE_ME>",
    "toolType": "<CHANGE_ME>",
    "toolName": "<CHANGE_ME>"
  }
}
CreateKnowledgeBase Request Payload
{
  "body": {
    "indexConfigType": "<CHANGE_ME>",
    "knowledgebaseCompartmentId": "<CHANGE_ME>",
    "namespace": "<CHANGE_ME>",
    "bucketName": "<CHANGE_ME>"
  }
}
CreateTool Request Payload
{
  "body": {
    "toolType": "<CHANGE_ME>",
    "toolName": "<CHANGE_ME>",
    "agentName": "<CHANGE_ME>",
    "agentCompartmentId": "<CHANGE_ME>",
    "knowledgebaseCompartmentid": "<CHANGE_ME>",
    "agentId": "<CHANGE_ME>"
  }
}
IngestData Request Payload
{
  "body": {
    "knowledgebaseCompartmentid": "<CHANGE_ME>",
    "dataSourceId": "<CHANGE_ME>"
  }
}
Chat Request Payload
{
  "body": {
    "KnowledgeBaseType": "<CHANGE_ME>",
    "userMessage": "<CHANGE_ME>"
  }
}
Upload Request Payload
{
  "body": {
    "bucketName": "<CHANGE_ME>",
    "inputFilePath": "<CHANGE_ME>",
    "outputPrefix": "<CHANGE_ME>",
    "compartmentId": "<CHANGE_ME>",
    "namespace": "<CHANGE_ME>"
  }
}
AgentDetails Request Payload
{
  "body": {
    "agentId": "<CHANGE_ME>"
  }
}
DataSourceDetails Request Payload
{
  "body": {
    "dataSourceId": "<CHANGE_ME>"
  }
}
KnowledgeBaseDetails Request Payload
{
  "body": {
    "knowledgeBaseId": "<CHANGE_ME>"
  }
}
ToolDetails Request Payload
{
  "body": {
    "toolId": "<CHANGE_ME>"
  }
}