At Bizinsight Consulting, we see many organizations struggle with the "handshake" between their private data and public LLMs. Below is our definitive guide to configuring Oracle Select AI, based on the proven architecture we deploy for our enterprise clients.
Setting the Stage: A 5-Step Guide to Configuring Oracle Select AI
Oracle Select AI turns
the dream of a "Conversational Database" into reality. However,
because we are dealing with enterprise data and external AI providers (like
OpenAI or OCI Generative AI), security and precision are paramount.
Here is how you configure the environment to move from standard SQL to "Select AI" readiness.
Step 1: Version Validation
Select AI is a
cutting-edge feature. Before you begin, you must ensure you are running on Oracle Database 23ai or 26ai.
SQL
-- Check your ADW or Base Database version
SELECT banner_full FROM v$version;
Step 2: Provisioning Permissions
Security in Oracle is
"Identity-First." You must grant your database user (in our example, BIZ_USER) the specific
packages required to manage the AI lifecycle and the network pipes.
SQL
-- Granting the 'Keys to the Kingdom'
GRANT EXECUTE on DBMS_CLOUD_AI to BIZ_USER;
GRANT EXECUTE on DBMS_CLOUD_PIPELINE to BIZ_USER;
GRANT EXECUTE on DBMS_NETWORK_ACL_ADMIN to BIZ_USER;
Step 3: Opening the Secure Bridge (Network ACLs)
By default, your
Oracle Database is a fortress—it cannot talk to the outside world. To allow the
database to send metadata prompts to your LLM provider, you must explicitly
enable network access.
SQL
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'api.openai.com',
ace => xs$ace_type(privilege_list => xs$name_list('connect'),
principal_name => 'BIZ_USER',
principal_type => xs_acl.ptype_db));
END;
Step 4: Encrypting Your AI Credentials
You should never
hardcode API keys. We use DBMS_CLOUD to store LLM credentials securely within the
database's internal vault.
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'AI_CRED',
username => 'OPENAI',
password => 'YOUR_SECRET_API_KEY'
);
END;
Step 5: Creating the "AI Profile"
This is the most
critical step. The Profile tells the database which LLM to use, how to behave (e.g.,
enable conversation history), and which tables it is
allowed to "see." At Bizinsight, we recommend an object_list approach to ensure
the AI doesn't get distracted by irrelevant tables.
SQL
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'BIZ_TESTING',
attributes => '{"provider":
"openai",
"model": "gpt-4",
"credential_name": "AI_CRED",
"comments": "true",
"conversation": "true",
"object_list": [
{"owner": "BIZ_USER", "name":
"SALES_ORDER_HEADER"},
{"owner": "BIZ_USER", "name":
"CUSTOMERS"},
{"owner": "BIZ_USER", "name":
"INVOICE_HEADER"}
]}'
);
END;
Activating and Testing the Profile
Once the configuration
is complete, you "activate" the session. This tells the SQL engine
that for the remainder of your session, any natural language prompt should be
routed through the BIZ_TESTING profile.
The Test Drive:
SQL
-- Set the profile for your current session
EXEC DBMS_CLOUD_AI.SET_PROFILE('BIZ_TESTING');
-- Run your first Natural Language Query
SELECT AI how many customers are based in Seattle?;
The Bizinsight Perspective: Why Setup Matters
A common mistake is
skipping the object_list or ignoring comments: true
in the profile attributes.
·
Object
Lists act as a firewall,
preventing the AI from querying sensitive payroll or system tables.
·
Comments are the "Context Bridge." By
setting comments: true, you tell the AI to read your Data
Dictionary, which—as we discussed in our previous blog—is the secret to 100%
query accuracy.
Conclusion
Configuration is the
bedrock of AI success. By following these steps, you’ve moved your database
from a passive storage bin to an active participant in your business
intelligence strategy.
Ready to optimize your AI
Profile for performance? Contact Bizinsight Consulting for a deep-dive session
on Advanced Profile Attributes.
Email us : inquiry@bizinsightinc.com