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
-
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.
-
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.
-
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.
-
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 |
{
"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>"
}
}{
"body": {
"indexConfigType": "<CHANGE_ME>",
"knowledgebaseCompartmentId": "<CHANGE_ME>",
"namespace": "<CHANGE_ME>",
"bucketName": "<CHANGE_ME>"
}
}{
"body": {
"toolType": "<CHANGE_ME>",
"toolName": "<CHANGE_ME>",
"agentName": "<CHANGE_ME>",
"agentCompartmentId": "<CHANGE_ME>",
"knowledgebaseCompartmentid": "<CHANGE_ME>",
"agentId": "<CHANGE_ME>"
}
}{
"body": {
"knowledgebaseCompartmentid": "<CHANGE_ME>",
"dataSourceId": "<CHANGE_ME>"
}
}{
"body": {
"KnowledgeBaseType": "<CHANGE_ME>",
"userMessage": "<CHANGE_ME>"
}
}{
"body": {
"bucketName": "<CHANGE_ME>",
"inputFilePath": "<CHANGE_ME>",
"outputPrefix": "<CHANGE_ME>",
"compartmentId": "<CHANGE_ME>",
"namespace": "<CHANGE_ME>"
}
}{
"body": {
"agentId": "<CHANGE_ME>"
}
}{
"body": {
"dataSourceId": "<CHANGE_ME>"
}
}{
"body": {
"knowledgeBaseId": "<CHANGE_ME>"
}
}{
"body": {
"toolId": "<CHANGE_ME>"
}
}