From 7869fea4e67674d69bfa7e0786e24f83de0da371 Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Mon, 14 Sep 2026 23:09:51 -0700 Subject: [PATCH] Use fully qualified db object names --- src/select_ai/agent/core.py | 28 +++++++------- src/select_ai/agent/definition.py | 4 +- src/select_ai/agent/history.py | 21 ++++++----- src/select_ai/agent/sql.py | 30 +++++++-------- src/select_ai/agent/task.py | 28 +++++++------- src/select_ai/agent/team.py | 60 ++++++++++++++--------------- src/select_ai/agent/tool.py | 36 +++++++++--------- src/select_ai/async_profile.py | 38 ++++++++++--------- src/select_ai/conversation.py | 24 ++++++------ src/select_ai/credential.py | 63 +++++++++++++++++-------------- src/select_ai/privilege.py | 28 +++++++++----- src/select_ai/profile.py | 38 +++++++++++-------- src/select_ai/sql.py | 48 +++++++++++------------ src/select_ai/vector_index.py | 36 +++++++++--------- 14 files changed, 255 insertions(+), 227 deletions(-) diff --git a/src/select_ai/agent/core.py b/src/select_ai/agent/core.py index a4c8ce3..1fe0fef 100644 --- a/src/select_ai/agent/core.py +++ b/src/select_ai/agent/core.py @@ -146,7 +146,7 @@ def create( with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_AGENT", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -154,7 +154,7 @@ def create( if err_obj.code in (20050, 20052) and replace: self.delete(force=True) cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_AGENT", keyword_parameters=parameters, ) else: @@ -169,7 +169,7 @@ def delete(self, force: Optional[bool] = False): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_AGENT", keyword_parameters={ "agent_name": self.agent_name, "force": force, @@ -194,7 +194,7 @@ def disable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_AGENT", keyword_parameters={ "agent_name": self.agent_name, }, @@ -206,7 +206,7 @@ def enable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_AGENT", keyword_parameters={ "agent_name": self.agent_name, }, @@ -273,7 +273,7 @@ def set_attributes(self, attributes: AgentAttributes) -> None: } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) self.attributes = self._get_attributes(agent_name=self.agent_name) @@ -290,7 +290,7 @@ def set_attribute(self, attribute_name: str, attribute_value: Any) -> None: } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) self.attributes = self._get_attributes(agent_name=self.agent_name) @@ -369,7 +369,7 @@ async def create( async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_AGENT", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -377,7 +377,7 @@ async def create( if err_obj.code in (20050, 20052) and replace: await self.delete(force=True) await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_AGENT", keyword_parameters=parameters, ) else: @@ -392,7 +392,7 @@ async def delete(self, force: Optional[bool] = False): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_AGENT", keyword_parameters={ "agent_name": self.agent_name, "force": force, @@ -419,7 +419,7 @@ async def disable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_AGENT", keyword_parameters={ "agent_name": self.agent_name, }, @@ -431,7 +431,7 @@ async def enable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_AGENT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_AGENT", keyword_parameters={ "agent_name": self.agent_name, }, @@ -500,7 +500,7 @@ async def set_attributes(self, attributes: AgentAttributes) -> None: } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) self.attributes = await self._get_attributes( @@ -521,7 +521,7 @@ async def set_attribute( } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) self.attributes = await self._get_attributes( diff --git a/src/select_ai/agent/definition.py b/src/select_ai/agent/definition.py index a8fb59a..2d69858 100644 --- a/src/select_ai/agent/definition.py +++ b/src/select_ai/agent/definition.py @@ -23,7 +23,7 @@ def get_definition(object_type: str, object_name: str) -> Optional[str]: """ with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI_AGENT.GET_DEFINITION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.GET_DEFINITION", oracledb.DB_TYPE_CLOB, keyword_parameters={ "object_type": object_type, @@ -42,7 +42,7 @@ async def async_get_definition( """ async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI_AGENT.GET_DEFINITION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.GET_DEFINITION", oracledb.DB_TYPE_CLOB, keyword_parameters={ "object_type": object_type, diff --git a/src/select_ai/agent/history.py b/src/select_ai/agent/history.py index 2cda87b..f7222a5 100644 --- a/src/select_ai/agent/history.py +++ b/src/select_ai/agent/history.py @@ -33,7 +33,7 @@ @dataclass class TeamHistoryEvent(SelectAIDataClass): - """One row from ``USER_AI_AGENT_TEAM_HISTORY``.""" + """One row from ``C##CLOUD$SERVICE.USER_AI_AGENT_TEAM_HISTORY``.""" team_exec_id: str team_name: str @@ -46,7 +46,7 @@ class TeamHistoryEvent(SelectAIDataClass): @dataclass class TaskHistoryEvent(SelectAIDataClass): - """One row from ``USER_AI_AGENT_TASK_HISTORY``.""" + """One row from ``C##CLOUD$SERVICE.USER_AI_AGENT_TASK_HISTORY``.""" team_exec_id: str team_name: str @@ -63,7 +63,7 @@ class TaskHistoryEvent(SelectAIDataClass): @dataclass class ToolHistoryEvent(SelectAIDataClass): - """One row from ``USER_AI_AGENT_TOOL_HISTORY``.""" + """One row from ``C##CLOUD$SERVICE.USER_AI_AGENT_TOOL_HISTORY``.""" invocation_id: int team_exec_id: str @@ -151,7 +151,7 @@ async def _async_events( class TeamHistory: - """Read runs from ``USER_AI_AGENT_TEAM_HISTORY``.""" + """Read runs from ``C##CLOUD$SERVICE.USER_AI_AGENT_TEAM_HISTORY``.""" @classmethod def list( @@ -170,7 +170,7 @@ def list( class TaskHistory: - """Read task runs from ``USER_AI_AGENT_TASK_HISTORY``.""" + """Read task runs from ``C##CLOUD$SERVICE.USER_AI_AGENT_TASK_HISTORY``.""" @classmethod def list( @@ -196,7 +196,7 @@ def list( class ToolHistory: - """Read tool calls from ``USER_AI_AGENT_TOOL_HISTORY``.""" + """Read tool calls from ``C##CLOUD$SERVICE.USER_AI_AGENT_TOOL_HISTORY``.""" @classmethod def list( @@ -222,7 +222,8 @@ def list( class AsyncTeamHistory: - """Asynchronously read runs from ``USER_AI_AGENT_TEAM_HISTORY``.""" + """Asynchronously read runs from + ``C##CLOUD$SERVICE.USER_AI_AGENT_TEAM_HISTORY``.""" @classmethod async def list( @@ -242,7 +243,8 @@ async def list( class AsyncTaskHistory: - """Asynchronously read task runs from ``USER_AI_AGENT_TASK_HISTORY``.""" + """Asynchronously read task runs from + ``C##CLOUD$SERVICE.USER_AI_AGENT_TASK_HISTORY``.""" @classmethod async def list( @@ -269,7 +271,8 @@ async def list( class AsyncToolHistory: - """Asynchronously read tool calls from ``USER_AI_AGENT_TOOL_HISTORY``.""" + """Asynchronously read tool calls from + ``C##CLOUD$SERVICE.USER_AI_AGENT_TOOL_HISTORY``.""" @classmethod async def list( diff --git a/src/select_ai/agent/sql.py b/src/select_ai/agent/sql.py index 126f7c4..7a85707 100644 --- a/src/select_ai/agent/sql.py +++ b/src/select_ai/agent/sql.py @@ -8,76 +8,76 @@ GET_USER_AI_AGENT = """ SELECT a.agent_name, a.description -from USER_AI_AGENTS a +from C##CLOUD$SERVICE.USER_AI_AGENTS a where a.agent_name = :agent_name """ GET_USER_AI_AGENT_ATTRIBUTES = """ SELECT attribute_name, attribute_value -FROM USER_AI_AGENT_ATTRIBUTES +FROM C##CLOUD$SERVICE.USER_AI_AGENT_ATTRIBUTES WHERE agent_name = :agent_name """ LIST_USER_AI_AGENTS = """ SELECT a.agent_name, a.description -from USER_AI_AGENTS a +from C##CLOUD$SERVICE.USER_AI_AGENTS a where REGEXP_LIKE(a.agent_name, :agent_name_pattern, 'i') """ GET_USER_AI_AGENT_TASK = """ SELECT t.task_name, t.description -FROM USER_AI_AGENT_TASKS t +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TASKS t WHERE t.task_name= :task_name """ GET_USER_AI_AGENT_TASK_ATTRIBUTES = """ SELECT attribute_name, attribute_value -FROM USER_AI_AGENT_TASK_ATTRIBUTES +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TASK_ATTRIBUTES WHERE task_name= :task_name """ LIST_USER_AI_AGENT_TASKS = """ SELECT t.task_name, t.description -FROM USER_AI_AGENT_TASKS t +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TASKS t WHERE REGEXP_LIKE(t.task_name, :task_name_pattern, 'i') """ GET_USER_AI_AGENT_TOOL = """ SELECT t.tool_name, t.description -FROM USER_AI_AGENT_TOOLS t +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TOOLS t WHERE t.tool_name = :tool_name """ GET_USER_AI_AGENT_TOOL_ATTRIBUTES = """ SELECT attribute_name, attribute_value -FROM USER_AI_AGENT_TOOL_ATTRIBUTES +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TOOL_ATTRIBUTES WHERE tool_name = :tool_name """ LIST_USER_AI_AGENT_TOOLS = """ SELECT t.tool_name, t.description -FROM USER_AI_AGENT_TOOLS t +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TOOLS t WHERE REGEXP_LIKE(t.tool_name, :tool_name_pattern, 'i') """ GET_USER_AI_AGENT_TEAM = """ SELECT t.agent_team_name as team_name, t.description -FROM USER_AI_AGENT_TEAMS t +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TEAMS t WHERE t.agent_team_name = :team_name """ GET_USER_AI_AGENT_TEAM_ATTRIBUTES = """ SELECT attribute_name, attribute_value -FROM USER_AI_AGENT_TEAM_ATTRIBUTES +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TEAM_ATTRIBUTES WHERE agent_team_name = :team_name """ LIST_USER_AI_AGENT_TEAMS = """ SELECT t.AGENT_TEAM_NAME as team_name, description -FROM USER_AI_AGENT_TEAMS t +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TEAMS t WHERE REGEXP_LIKE(t.AGENT_TEAM_NAME, :team_name_pattern, 'i') """ @@ -85,7 +85,7 @@ LIST_USER_AI_AGENT_TEAM_HISTORY = """ SELECT team_exec_id, team_name, state, start_date, end_date, conversation_id, params -FROM user_ai_agent_team_history +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TEAM_HISTORY WHERE (:team_name IS NULL OR team_name = :team_name) AND (:team_exec_id IS NULL OR team_exec_id = :team_exec_id) ORDER BY start_date DESC NULLS LAST @@ -95,7 +95,7 @@ LIST_USER_AI_AGENT_TASK_HISTORY = """ SELECT team_exec_id, team_name, task_order, agent_name, task_name, conversation_params, input, result, state, start_date, end_date -FROM user_ai_agent_task_history +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TASK_HISTORY WHERE (:team_name IS NULL OR team_name = :team_name) AND (:task_name IS NULL OR task_name = :task_name) AND (:agent_name IS NULL OR agent_name = :agent_name) @@ -107,7 +107,7 @@ LIST_USER_AI_AGENT_TOOL_HISTORY = """ SELECT invocation_id, team_exec_id, task_order, tool_name, agent_name, task_name, start_date, end_date, input, output, tool_output -FROM user_ai_agent_tool_history +FROM C##CLOUD$SERVICE.USER_AI_AGENT_TOOL_HISTORY WHERE (:tool_name IS NULL OR tool_name = :tool_name) AND (:task_name IS NULL OR task_name = :task_name) AND (:agent_name IS NULL OR agent_name = :agent_name) diff --git a/src/select_ai/agent/task.py b/src/select_ai/agent/task.py index 598c337..79b616c 100644 --- a/src/select_ai/agent/task.py +++ b/src/select_ai/agent/task.py @@ -156,7 +156,7 @@ def create( with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TASK", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -164,7 +164,7 @@ def create( if err_obj.code in (20051, 20052) and replace: self.delete(force=True) cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TASK", keyword_parameters=parameters, ) else: @@ -178,7 +178,7 @@ def delete(self, force: bool = False): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_TASK", keyword_parameters={ "task_name": self.task_name, "force": force, @@ -202,7 +202,7 @@ def disable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_TASK", keyword_parameters={ "task_name": self.task_name, }, @@ -214,7 +214,7 @@ def enable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_TASK", keyword_parameters={ "task_name": self.task_name, }, @@ -289,7 +289,7 @@ def set_attributes(self, attributes: TaskAttributes): } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) @@ -309,7 +309,7 @@ def set_attribute(self, attribute_name: str, attribute_value: Any): } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) @@ -391,7 +391,7 @@ async def create( async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TASK", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -399,7 +399,7 @@ async def create( if err_obj.code in (20051, 20052) and replace: await self.delete(force=True) await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TASK", keyword_parameters=parameters, ) else: @@ -413,7 +413,7 @@ async def delete(self, force: bool = False): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_TASK", keyword_parameters={ "task_name": self.task_name, "force": force, @@ -437,7 +437,7 @@ async def disable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_TASK", keyword_parameters={ "task_name": self.task_name, }, @@ -449,7 +449,7 @@ async def enable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_TASK", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_TASK", keyword_parameters={ "task_name": self.task_name, }, @@ -527,7 +527,7 @@ async def set_attributes(self, attributes: TaskAttributes): } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) @@ -547,6 +547,6 @@ async def set_attribute(self, attribute_name: str, attribute_value: Any): } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) diff --git a/src/select_ai/agent/team.py b/src/select_ai/agent/team.py index e767ba6..7a698e6 100644 --- a/src/select_ai/agent/team.py +++ b/src/select_ai/agent/team.py @@ -180,7 +180,7 @@ def create( with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TEAM", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -188,7 +188,7 @@ def create( if err_obj.code in (20053, 20052) and replace: self.delete(force=True) cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TEAM", keyword_parameters=parameters, ) else: @@ -202,7 +202,7 @@ def delete(self, force: Optional[bool] = False): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_TEAM", keyword_parameters={ "team_name": self.team_name, "force": force, @@ -226,7 +226,7 @@ def disable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_TEAM", keyword_parameters={ "team_name": self.team_name, }, @@ -238,7 +238,7 @@ def enable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_TEAM", keyword_parameters={ "team_name": self.team_name, }, @@ -249,7 +249,7 @@ def grant_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.GRANT_TEAM_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.GRANT_TEAM_ACCESS", keyword_parameters={ "team_name": self.team_name, "user_or_role_name": user_or_role_name, @@ -261,7 +261,7 @@ def revoke_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.REVOKE_TEAM_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.REVOKE_TEAM_ACCESS", keyword_parameters={ "team_name": self.team_name, "user_or_role_name": user_or_role_name, @@ -355,7 +355,7 @@ def run(self, prompt: str = None, params: Mapping = None): with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI_AGENT.RUN_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.RUN_TEAM", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -369,7 +369,7 @@ def describe_team(self) -> Optional[str]: """Return this team's JSON metadata and aggregated skills.""" with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM", oracledb.DB_TYPE_CLOB, keyword_parameters={"team_name": self.team_name}, ) @@ -379,7 +379,7 @@ def list_tools(self) -> Optional[str]: """Return JSON metadata for the tools available to this team.""" with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI_AGENT.LIST_TOOLS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.LIST_TOOLS", oracledb.DB_TYPE_CLOB, keyword_parameters={"team_name": self.team_name}, ) @@ -435,13 +435,13 @@ def export_team( ) parameters["location"] = location cr.callproc( - "DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", keyword_parameters=parameters, ) return None data = cr.callfunc( - "DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -516,7 +516,7 @@ def import_team( with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.IMPORT_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.IMPORT_TEAM", keyword_parameters=parameters, ) @@ -567,7 +567,7 @@ def set_attributes(self, attributes: TeamAttributes) -> None: } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) @@ -584,7 +584,7 @@ def set_attribute(self, attribute_name: str, attribute_value: Any) -> None: } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) @@ -665,7 +665,7 @@ async def create( async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TEAM", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -673,7 +673,7 @@ async def create( if err_obj.code in (20053, 20052) and replace: await self.delete(force=True) await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TEAM", keyword_parameters=parameters, ) else: @@ -687,7 +687,7 @@ async def delete(self, force: Optional[bool] = False): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_TEAM", keyword_parameters={ "team_name": self.team_name, "force": force, @@ -711,7 +711,7 @@ async def disable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_TEAM", keyword_parameters={ "team_name": self.team_name, }, @@ -723,7 +723,7 @@ async def enable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_TEAM", keyword_parameters={ "team_name": self.team_name, }, @@ -734,7 +734,7 @@ async def grant_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.GRANT_TEAM_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.GRANT_TEAM_ACCESS", keyword_parameters={ "team_name": self.team_name, "user_or_role_name": user_or_role_name, @@ -746,7 +746,7 @@ async def revoke_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.REVOKE_TEAM_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.REVOKE_TEAM_ACCESS", keyword_parameters={ "team_name": self.team_name, "user_or_role_name": user_or_role_name, @@ -843,7 +843,7 @@ async def run(self, prompt: str = None, params: Mapping = None): async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI_AGENT.RUN_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.RUN_TEAM", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -857,7 +857,7 @@ async def describe_team(self) -> Optional[str]: """Asynchronously return this team's JSON metadata and skills.""" async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM", oracledb.DB_TYPE_CLOB, keyword_parameters={"team_name": self.team_name}, ) @@ -867,7 +867,7 @@ async def list_tools(self) -> Optional[str]: """Asynchronously return JSON metadata for this team's tools.""" async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI_AGENT.LIST_TOOLS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.LIST_TOOLS", oracledb.DB_TYPE_CLOB, keyword_parameters={"team_name": self.team_name}, ) @@ -923,13 +923,13 @@ async def export_team( ) parameters["location"] = location await cr.callproc( - "DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", keyword_parameters=parameters, ) return None data = await cr.callfunc( - "DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.EXPORT_TEAM", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -1004,7 +1004,7 @@ async def import_team( async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.IMPORT_TEAM", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.IMPORT_TEAM", keyword_parameters=parameters, ) @@ -1055,7 +1055,7 @@ async def set_attributes(self, attributes: TeamAttributes) -> None: } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) @@ -1074,6 +1074,6 @@ async def set_attribute( } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) diff --git a/src/select_ai/agent/tool.py b/src/select_ai/agent/tool.py index a9d58fd..37f9f8e 100644 --- a/src/select_ai/agent/tool.py +++ b/src/select_ai/agent/tool.py @@ -329,7 +329,7 @@ def create( with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TOOL", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -337,7 +337,7 @@ def create( if err_obj.code in (20050, 20052) and replace: self.delete(force=True) cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TOOL", keyword_parameters=parameters, ) else: @@ -610,7 +610,7 @@ def delete(self, force: bool = False): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_TOOL", keyword_parameters={ "tool_name": self.tool_name, "force": force, @@ -634,7 +634,7 @@ def disable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_TOOL", keyword_parameters={ "tool_name": self.tool_name, }, @@ -646,7 +646,7 @@ def enable(self): """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_TOOL", keyword_parameters={ "tool_name": self.tool_name, }, @@ -661,7 +661,7 @@ def run_tool(self, input: str) -> Optional[str]: """ with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI_AGENT.RUN_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.RUN_TOOL", oracledb.DB_TYPE_CLOB, keyword_parameters={ "tool_name": self.tool_name, @@ -674,7 +674,7 @@ def describe_tool(self) -> Optional[str]: """Return this tool's JSON metadata and function arguments.""" with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL", oracledb.DB_TYPE_CLOB, keyword_parameters={"tool_name": self.tool_name}, ) @@ -733,7 +733,7 @@ def set_attributes(self, attributes: ToolAttributes) -> None: } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) @@ -750,7 +750,7 @@ def set_attribute(self, attribute_name: str, attribute_value: Any) -> None: } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) @@ -824,7 +824,7 @@ async def create( async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TOOL", keyword_parameters=parameters, ) except oracledb.Error as err: @@ -832,7 +832,7 @@ async def create( if err_obj.code in (20050, 20052) and replace: await self.delete(force=True) await cr.callproc( - "DBMS_CLOUD_AI_AGENT.CREATE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.CREATE_TOOL", keyword_parameters=parameters, ) else: @@ -1105,7 +1105,7 @@ async def delete(self, force: bool = False): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DROP_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DROP_TOOL", keyword_parameters={ "tool_name": self.tool_name, "force": force, @@ -1129,7 +1129,7 @@ async def disable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.DISABLE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DISABLE_TOOL", keyword_parameters={ "tool_name": self.tool_name, }, @@ -1141,7 +1141,7 @@ async def enable(self): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.ENABLE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.ENABLE_TOOL", keyword_parameters={ "tool_name": self.tool_name, }, @@ -1151,7 +1151,7 @@ async def run_tool(self, input: str) -> Optional[str]: """Asynchronously run this tool directly and return its result.""" async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI_AGENT.RUN_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.RUN_TOOL", oracledb.DB_TYPE_CLOB, keyword_parameters={ "tool_name": self.tool_name, @@ -1164,7 +1164,7 @@ async def describe_tool(self) -> Optional[str]: """Asynchronously return this tool's JSON metadata.""" async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL", oracledb.DB_TYPE_CLOB, keyword_parameters={"tool_name": self.tool_name}, ) @@ -1232,7 +1232,7 @@ async def set_attributes(self, attributes: ToolAttributes) -> None: } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTES", keyword_parameters=parameters, ) @@ -1251,6 +1251,6 @@ async def set_attribute( } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT.SET_ATTRIBUTE", keyword_parameters=parameters, ) diff --git a/src/select_ai/async_profile.py b/src/select_ai/async_profile.py index c9ccd33..bb82e18 100644 --- a/src/select_ai/async_profile.py +++ b/src/select_ai/async_profile.py @@ -109,7 +109,8 @@ async def _init_profile(self): async def _get_profile_description( profile_name: str, owner: Optional[str] = None ) -> Tuple[Union[str, None], str]: - """Get a profile description and owner from ALL_CLOUD_AI_PROFILES. + """Get a profile description and owner from + C##CLOUD$SERVICE.ALL_CLOUD_AI_PROFILES. :param str profile_name: Name of profile :param str owner: Owner of a shared profile. Defaults to current schema. @@ -187,7 +188,8 @@ async def _set_attribute( } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.SET_ATTRIBUTE", keyword_parameters=parameters + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.SET_ATTRIBUTE", + keyword_parameters=parameters, ) async def set_attribute( @@ -230,7 +232,8 @@ async def set_attributes(self, attributes: ProfileAttributes): } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.SET_ATTRIBUTES", keyword_parameters=parameters + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.SET_ATTRIBUTES", + keyword_parameters=parameters, ) self.attributes = await self.get_attributes() @@ -252,7 +255,7 @@ async def create(self, replace: Optional[int] = False) -> None: async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI.CREATE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_PROFILE", keyword_parameters=parameters, ) except oracledb.DatabaseError as e: @@ -261,7 +264,7 @@ async def create(self, replace: Optional[int] = False) -> None: if error.code == 20046 and replace: await self.delete(force=True) await cr.callproc( - "DBMS_CLOUD_AI.CREATE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_PROFILE", keyword_parameters=parameters, ) else: @@ -274,7 +277,7 @@ async def _delete(profile_name: str, force: bool = False): """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.DROP_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DROP_PROFILE", keyword_parameters={ "profile_name": profile_name, "force": force, @@ -298,7 +301,7 @@ async def enable(self) -> None: """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.ENABLE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.ENABLE_PROFILE", keyword_parameters={"profile_name": self.profile_name}, ) @@ -310,7 +313,7 @@ async def disable(self) -> None: """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.DISABLE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DISABLE_PROFILE", keyword_parameters={"profile_name": self.profile_name}, ) @@ -319,7 +322,7 @@ async def grant_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.GRANT_PROFILE_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GRANT_PROFILE_ACCESS", keyword_parameters={ "profile_name": self.profile_name, "user_or_role_name": user_or_role_name, @@ -331,7 +334,7 @@ async def revoke_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.REVOKE_PROFILE_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.REVOKE_PROFILE_ACCESS", keyword_parameters={ "profile_name": self.profile_name, "user_or_role_name": user_or_role_name, @@ -390,7 +393,8 @@ async def _save_feedback( params["profile_name"] = self.profile_name async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.FEEDBACK", keyword_parameters=params + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.FEEDBACK", + keyword_parameters=params, ) async def add_positive_feedback( @@ -508,7 +512,7 @@ async def _generate_with_cursor( ) data = await cr.callfunc( - "DBMS_CLOUD_AI.GENERATE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GENERATE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -581,7 +585,7 @@ async def _generate_stream_with_cursor( prompt, action, params, attributes ) data = await cr.callfunc( - "DBMS_CLOUD_AI.GENERATE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GENERATE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -849,7 +853,7 @@ async def summarize( parameters["profile_name"] = self.profile_name async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI.SUMMARIZE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.SUMMARIZE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -879,7 +883,7 @@ async def generate_synthetic_data( keyword_parameters["profile_name"] = self.profile_name async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA", keyword_parameters=keyword_parameters, ) @@ -917,7 +921,7 @@ async def run_pipeline( if serialized_attributes is not None: parameters["attributes"] = serialized_attributes pipeline.add_callfunc( - "DBMS_CLOUD_AI.GENERATE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GENERATE", return_type=oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -960,7 +964,7 @@ async def translate( } async with async_cursor() as cr: data = await cr.callfunc( - "DBMS_CLOUD_AI.TRANSLATE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.TRANSLATE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) diff --git a/src/select_ai/conversation.py b/src/select_ai/conversation.py index ae3cb62..59d1c2f 100644 --- a/src/select_ai/conversation.py +++ b/src/select_ai/conversation.py @@ -124,7 +124,7 @@ def create(self) -> str: """ with cursor() as cr: self.conversation_id = cr.callfunc( - "DBMS_CLOUD_AI.CREATE_CONVERSATION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_CONVERSATION", oracledb.DB_TYPE_VARCHAR, keyword_parameters={"attributes": self.attributes.json()}, ) @@ -134,7 +134,7 @@ def delete(self, force: bool = False): """Drops the conversation""" with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.DROP_CONVERSATION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DROP_CONVERSATION", keyword_parameters={ "conversation_id": self.conversation_id, "force": force, @@ -151,7 +151,7 @@ def delete_prompt( """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT", keyword_parameters={ "conversation_prompt_id": conversation_prompt_id, "force": force, @@ -166,7 +166,7 @@ def add_tag(self, tag_key: str, tag_value: str) -> None: """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.ADD_CONVERSATION_TAG", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.ADD_CONVERSATION_TAG", keyword_parameters={ "conversation_id": self.conversation_id, "tag_key": tag_key, @@ -182,7 +182,7 @@ def remove_tag(self, tag_key: str, force: bool = False) -> None: """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.REMOVE_CONVERSATION_TAG", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.REMOVE_CONVERSATION_TAG", keyword_parameters={ "conversation_id": self.conversation_id, "tag_key": tag_key, @@ -233,7 +233,7 @@ def set_attributes(self, attributes: ConversationAttributes): """Updates the attributes of the conversation in the database""" with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.UPDATE_CONVERSATION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.UPDATE_CONVERSATION", keyword_parameters={ "conversation_id": self.conversation_id, "attributes": attributes.json(), @@ -314,7 +314,7 @@ async def create(self) -> str: """ async with async_cursor() as cr: self.conversation_id = await cr.callfunc( - "DBMS_CLOUD_AI.CREATE_CONVERSATION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_CONVERSATION", oracledb.DB_TYPE_VARCHAR, keyword_parameters={"attributes": self.attributes.json()}, ) @@ -324,7 +324,7 @@ async def delete(self, force: bool = False): """Delete the conversation""" async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.DROP_CONVERSATION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DROP_CONVERSATION", keyword_parameters={ "conversation_id": self.conversation_id, "force": force, @@ -341,7 +341,7 @@ async def delete_prompt( """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT", keyword_parameters={ "conversation_prompt_id": conversation_prompt_id, "force": force, @@ -356,7 +356,7 @@ async def add_tag(self, tag_key: str, tag_value: str) -> None: """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.ADD_CONVERSATION_TAG", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.ADD_CONVERSATION_TAG", keyword_parameters={ "conversation_id": self.conversation_id, "tag_key": tag_key, @@ -372,7 +372,7 @@ async def remove_tag(self, tag_key: str, force: bool = False) -> None: """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.REMOVE_CONVERSATION_TAG", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.REMOVE_CONVERSATION_TAG", keyword_parameters={ "conversation_id": self.conversation_id, "tag_key": tag_key, @@ -418,7 +418,7 @@ async def set_attributes(self, attributes: ConversationAttributes): """Updates the attributes of the conversation""" with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.UPDATE_CONVERSATION", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.UPDATE_CONVERSATION", keyword_parameters={ "conversation_id": self.conversation_id, "attributes": attributes.json(), diff --git a/src/select_ai/credential.py b/src/select_ai/credential.py index 5096f64..ae96be9 100644 --- a/src/select_ai/credential.py +++ b/src/select_ai/credential.py @@ -29,11 +29,11 @@ v_credential_name VARCHAR2(261); v_owner VARCHAR2(261); BEGIN - v_credential_name := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), + v_credential_name := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), FALSE ); - v_owner := DBMS_ASSERT.ENQUOTE_NAME( + v_owner := SYS.DBMS_ASSERT.ENQUOTE_NAME( SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA'), FALSE ); @@ -47,8 +47,8 @@ DECLARE v_credential_name VARCHAR2(261); BEGIN - v_credential_name := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), + v_credential_name := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), FALSE ); EXECUTE IMMEDIATE 'DROP PUBLIC SYNONYM ' || v_credential_name; @@ -61,16 +61,16 @@ v_owner VARCHAR2(261); v_user_or_role_name VARCHAR2(261); BEGIN - v_credential_name := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), + v_credential_name := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), FALSE ); - v_owner := DBMS_ASSERT.ENQUOTE_NAME( + v_owner := SYS.DBMS_ASSERT.ENQUOTE_NAME( SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA'), FALSE ); - v_user_or_role_name := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:user_or_role_name)), + v_user_or_role_name := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:user_or_role_name)), FALSE ); EXECUTE IMMEDIATE @@ -85,16 +85,16 @@ v_owner VARCHAR2(261); v_user_or_role_name VARCHAR2(261); BEGIN - v_credential_name := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), + v_credential_name := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:credential_name)), FALSE ); - v_owner := DBMS_ASSERT.ENQUOTE_NAME( + v_owner := SYS.DBMS_ASSERT.ENQUOTE_NAME( SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA'), FALSE ); - v_user_or_role_name := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:user_or_role_name)), + v_user_or_role_name := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SIMPLE_SQL_NAME(UPPER(:user_or_role_name)), FALSE ); EXECUTE IMMEDIATE @@ -207,14 +207,16 @@ async def async_create_credential( ): """Asynchronously create a credential. - Creates a credential object using DBMS_CLOUD.CREATE_CREDENTIAL. If replace + Creates a credential object using + C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL. If replace is True, credential will be replaced if it already exists. If public_synonym is True, a public synonym with the credential name is created for the credential in the current schema. Creating the synonym requires the CREATE PUBLIC SYNONYM system privilege. :param Mapping credential: Credential attributes accepted by - DBMS_CLOUD.CREATE_CREDENTIAL, including credential_name. + C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL, including + credential_name. :param bool replace: Replace an existing credential with the same name. :param bool public_synonym: Create a public synonym for the credential. :return: None @@ -224,20 +226,21 @@ async def async_create_credential( async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD.CREATE_CREDENTIAL", keyword_parameters=credential + "C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL", + keyword_parameters=credential, ) except oracledb.DatabaseError as e: (error,) = e.args # If already exists and replace is True then drop and recreate if error.code == 20022 and replace: await cr.callproc( - "DBMS_CLOUD.DROP_CREDENTIAL", + "C##CLOUD$SERVICE.DBMS_CLOUD.DROP_CREDENTIAL", keyword_parameters={ "credential_name": credential["credential_name"] }, ) await cr.callproc( - "DBMS_CLOUD.CREATE_CREDENTIAL", + "C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL", keyword_parameters=credential, ) else: @@ -257,7 +260,8 @@ async def async_delete_credential( ): """Asynchronously delete a credential. - Deletes a credential object using DBMS_CLOUD.DROP_CREDENTIAL. If + Deletes a credential object using + C##CLOUD$SERVICE.DBMS_CLOUD.DROP_CREDENTIAL. If public_synonym is True, also drops its public synonym. Dropping the synonym requires the DROP PUBLIC SYNONYM system privilege. @@ -276,7 +280,7 @@ async def async_delete_credential( try: await cr.callproc( - "DBMS_CLOUD.DROP_CREDENTIAL", + "C##CLOUD$SERVICE.DBMS_CLOUD.DROP_CREDENTIAL", keyword_parameters={"credential_name": credential_name}, ) except oracledb.DatabaseError as e: @@ -294,14 +298,16 @@ def create_credential( ): """Create a credential. - Creates a credential object using DBMS_CLOUD.CREATE_CREDENTIAL. If replace + Creates a credential object using + C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL. If replace is True, credential will be replaced if it "already exists". If public_synonym is True, a public synonym with the credential name is created for the credential in the current schema. Creating the synonym requires the CREATE PUBLIC SYNONYM system privilege. :param Mapping credential: Credential attributes accepted by - DBMS_CLOUD.CREATE_CREDENTIAL, including credential_name. + C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL, including + credential_name. :param bool replace: Replace an existing credential with the same name. :param bool public_synonym: Create a public synonym for the credential. :return: None @@ -311,20 +317,21 @@ def create_credential( with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD.CREATE_CREDENTIAL", keyword_parameters=credential + "C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL", + keyword_parameters=credential, ) except oracledb.DatabaseError as e: (error,) = e.args # If already exists and replace is True then drop and recreate if error.code == 20022 and replace: cr.callproc( - "DBMS_CLOUD.DROP_CREDENTIAL", + "C##CLOUD$SERVICE.DBMS_CLOUD.DROP_CREDENTIAL", keyword_parameters={ "credential_name": credential["credential_name"] }, ) cr.callproc( - "DBMS_CLOUD.CREATE_CREDENTIAL", + "C##CLOUD$SERVICE.DBMS_CLOUD.CREATE_CREDENTIAL", keyword_parameters=credential, ) else: @@ -361,7 +368,7 @@ def delete_credential( try: cr.callproc( - "DBMS_CLOUD.DROP_CREDENTIAL", + "C##CLOUD$SERVICE.DBMS_CLOUD.DROP_CREDENTIAL", keyword_parameters={"credential_name": credential_name}, ) except oracledb.DatabaseError as e: diff --git a/src/select_ai/privilege.py b/src/select_ai/privilege.py index 8a445b3..2cfb2d7 100644 --- a/src/select_ai/privilege.py +++ b/src/select_ai/privilege.py @@ -37,7 +37,7 @@ def _append_host_ace_statement(privileges: List[str]) -> str: privilege_list = ", ".join(f":{name}" for name in privilege_bind_names) return f""" BEGIN - DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( + SYS.DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => :host, lower_port => :lower_port, upper_port => :upper_port, @@ -58,7 +58,7 @@ def _remove_host_ace_statement(privileges: List[str]) -> str: privilege_list = ", ".join(f":{name}" for name in privilege_bind_names) return f""" BEGIN - DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE( + SYS.DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE( host => :host, lower_port => :lower_port, upper_port => :upper_port, @@ -92,8 +92,10 @@ def _append_host_ace_parameters( async def async_grant_privileges(users: Union[str, List[str]]): """ - This method grants execute privilege on the packages DBMS_CLOUD, - DBMS_CLOUD_AI, DBMS_CLOUD_AI_AGENT and DBMS_CLOUD_PIPELINE. + This method grants execute privilege on the packages + C##CLOUD$SERVICE.DBMS_CLOUD, C##CLOUD$SERVICE.DBMS_CLOUD_AI, + C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT and + C##CLOUD$SERVICE.DBMS_CLOUD_PIPELINE. """ if isinstance(users, str): @@ -107,8 +109,10 @@ async def async_grant_privileges(users: Union[str, List[str]]): async def async_revoke_privileges(users: Union[str, List[str]]): """ - This method revokes execute privilege on the packages DBMS_CLOUD, - DBMS_CLOUD_AI, DBMS_CLOUD_AI_AGENT and DBMS_CLOUD_PIPELINE. + This method revokes execute privilege on the packages + C##CLOUD$SERVICE.DBMS_CLOUD, C##CLOUD$SERVICE.DBMS_CLOUD_AI, + C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT and + C##CLOUD$SERVICE.DBMS_CLOUD_PIPELINE. """ if isinstance(users, str): @@ -216,8 +220,10 @@ async def async_revoke_network_access( def grant_privileges(users: Union[str, List[str]]): """ - This method grants execute privilege on the packages DBMS_CLOUD, - DBMS_CLOUD_AI, DBMS_CLOUD_AI_AGENT and DBMS_CLOUD_PIPELINE + This method grants execute privilege on the packages + C##CLOUD$SERVICE.DBMS_CLOUD, C##CLOUD$SERVICE.DBMS_CLOUD_AI, + C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT and + C##CLOUD$SERVICE.DBMS_CLOUD_PIPELINE """ if isinstance(users, str): users = [users] @@ -229,8 +235,10 @@ def grant_privileges(users: Union[str, List[str]]): def revoke_privileges(users: Union[str, List[str]]): """ - This method revokes execute privilege on the packages DBMS_CLOUD, - DBMS_CLOUD_AI, DBMS_CLOUD_AI_AGENT and DBMS_CLOUD_PIPELINE. + This method revokes execute privilege on the packages + C##CLOUD$SERVICE.DBMS_CLOUD, C##CLOUD$SERVICE.DBMS_CLOUD_AI, + C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT and + C##CLOUD$SERVICE.DBMS_CLOUD_PIPELINE. """ if isinstance(users, str): users = [users] diff --git a/src/select_ai/profile.py b/src/select_ai/profile.py index 833c55f..33f45fc 100644 --- a/src/select_ai/profile.py +++ b/src/select_ai/profile.py @@ -90,7 +90,8 @@ def _init_profile(self) -> None: def _get_profile_description( profile_name: str, owner: Optional[str] = None ) -> Tuple[Union[str, None], str]: - """Get a profile description and owner from ALL_CLOUD_AI_PROFILES. + """Get a profile description and owner from + C##CLOUD$SERVICE.ALL_CLOUD_AI_PROFILES. :param str profile_name: Name of the profile. :param str owner: Owner of a shared profile. Defaults to current schema. @@ -165,7 +166,8 @@ def _set_attribute( } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.SET_ATTRIBUTE", keyword_parameters=parameters + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.SET_ATTRIBUTE", + keyword_parameters=parameters, ) def set_attribute( @@ -208,7 +210,8 @@ def set_attributes(self, attributes: ProfileAttributes): } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.SET_ATTRIBUTES", keyword_parameters=parameters + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.SET_ATTRIBUTES", + keyword_parameters=parameters, ) self.attributes = self.get_attributes() @@ -231,7 +234,7 @@ def create(self, replace: Optional[int] = False) -> None: with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI.CREATE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_PROFILE", keyword_parameters=parameters, ) except oracledb.DatabaseError as e: @@ -240,7 +243,7 @@ def create(self, replace: Optional[int] = False) -> None: if error.code == 20046 and replace: self.delete(force=True) cr.callproc( - "DBMS_CLOUD_AI.CREATE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_PROFILE", keyword_parameters=parameters, ) else: @@ -250,7 +253,7 @@ def create(self, replace: Optional[int] = False) -> None: def _delete(profile_name: str, force: bool = False): with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.DROP_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DROP_PROFILE", keyword_parameters={ "profile_name": profile_name, "force": force, @@ -274,7 +277,7 @@ def enable(self) -> None: """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.ENABLE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.ENABLE_PROFILE", keyword_parameters={"profile_name": self.profile_name}, ) @@ -286,7 +289,7 @@ def disable(self) -> None: """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.DISABLE_PROFILE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DISABLE_PROFILE", keyword_parameters={"profile_name": self.profile_name}, ) @@ -300,7 +303,7 @@ def grant_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.GRANT_PROFILE_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GRANT_PROFILE_ACCESS", keyword_parameters={ "profile_name": self.profile_name, "user_or_role_name": user_or_role_name, @@ -317,7 +320,7 @@ def revoke_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.REVOKE_PROFILE_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.REVOKE_PROFILE_ACCESS", keyword_parameters={ "profile_name": self.profile_name, "user_or_role_name": user_or_role_name, @@ -375,7 +378,10 @@ def _save_feedback( ) params["profile_name"] = self.profile_name with cursor() as cr: - cr.callproc("DBMS_CLOUD_AI.FEEDBACK", keyword_parameters=params) + cr.callproc( + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.FEEDBACK", + keyword_parameters=params, + ) def add_positive_feedback( self, @@ -490,7 +496,7 @@ def _generate_with_cursor( prompt, action, params, attributes ) data = cr.callfunc( - "DBMS_CLOUD_AI.GENERATE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GENERATE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -561,7 +567,7 @@ def _generate_stream_with_cursor( prompt, action, params, attributes ) data = cr.callfunc( - "DBMS_CLOUD_AI.GENERATE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GENERATE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -827,7 +833,7 @@ def summarize( parameters["profile_name"] = self.profile_name with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI.SUMMARIZE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.SUMMARIZE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) @@ -859,7 +865,7 @@ def generate_synthetic_data( keyword_parameters["profile_name"] = self.profile_name with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA", keyword_parameters=keyword_parameters, ) @@ -888,7 +894,7 @@ def translate( } with cursor() as cr: data = cr.callfunc( - "DBMS_CLOUD_AI.TRANSLATE", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.TRANSLATE", oracledb.DB_TYPE_CLOB, keyword_parameters=parameters, ) diff --git a/src/select_ai/sql.py b/src/select_ai/sql.py index 3790938..a888b5a 100644 --- a/src/select_ai/sql.py +++ b/src/select_ai/sql.py @@ -11,15 +11,15 @@ v_packages array_t; v_user VARCHAR2(261); BEGIN - v_user := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SCHEMA_NAME(:user), + v_user := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SCHEMA_NAME(:user), FALSE ); v_packages := array_t( - 'DBMS_CLOUD', - 'DBMS_CLOUD_AI', - 'DBMS_CLOUD_AI_AGENT', - 'DBMS_CLOUD_PIPELINE' + 'C##CLOUD$SERVICE.DBMS_CLOUD', + 'C##CLOUD$SERVICE.DBMS_CLOUD_AI', + 'C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT', + 'C##CLOUD$SERVICE.DBMS_CLOUD_PIPELINE' ); FOR i in 1..v_packages.count LOOP EXECUTE IMMEDIATE @@ -34,15 +34,15 @@ v_packages array_t; v_user VARCHAR2(261); BEGIN - v_user := DBMS_ASSERT.ENQUOTE_NAME( - DBMS_ASSERT.SCHEMA_NAME(:user), + v_user := SYS.DBMS_ASSERT.ENQUOTE_NAME( + SYS.DBMS_ASSERT.SCHEMA_NAME(:user), FALSE ); v_packages := array_t( - 'DBMS_CLOUD', - 'DBMS_CLOUD_AI', - 'DBMS_CLOUD_AI_AGENT', - 'DBMS_CLOUD_PIPELINE' + 'C##CLOUD$SERVICE.DBMS_CLOUD', + 'C##CLOUD$SERVICE.DBMS_CLOUD_AI', + 'C##CLOUD$SERVICE.DBMS_CLOUD_AI_AGENT', + 'C##CLOUD$SERVICE.DBMS_CLOUD_PIPELINE' ); FOR i in 1..v_packages.count LOOP EXECUTE IMMEDIATE @@ -53,7 +53,7 @@ ENABLE_AI_PROFILE_DOMAIN_FOR_USER = """ BEGIN - DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( + SYS.DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => :host, ace => xs$ace_type(privilege_list => xs$name_list('http'), principal_name => :user, @@ -64,7 +64,7 @@ DISABLE_AI_PROFILE_DOMAIN_FOR_USER = """ BEGIN - DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE( + SYS.DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE( host => :host, ace => xs$ace_type(privilege_list => xs$name_list('http'), principal_name => :user, @@ -75,14 +75,14 @@ GET_ALL_AI_PROFILE_ATTRIBUTES = """ SELECT attribute_name, attribute_value -FROM ALL_CLOUD_AI_PROFILE_ATTRIBUTES +FROM C##CLOUD$SERVICE.ALL_CLOUD_AI_PROFILE_ATTRIBUTES WHERE profile_name = :profile_name AND owner = COALESCE(:owner, SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')) """ GET_ALL_AI_PROFILE = """ SELECT profile_name, description, owner -FROM ALL_CLOUD_AI_PROFILES +FROM C##CLOUD$SERVICE.ALL_CLOUD_AI_PROFILES WHERE profile_name = :profile_name AND owner = COALESCE(:owner, SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')) """ @@ -90,28 +90,28 @@ LIST_ALL_AI_PROFILES = """ SELECT profile_name, description, owner -FROM ALL_CLOUD_AI_PROFILES +FROM C##CLOUD$SERVICE.ALL_CLOUD_AI_PROFILES WHERE REGEXP_LIKE(profile_name, :profile_name_pattern, 'i') AND owner = COALESCE(:owner, SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')) """ LIST_ALL_VECTOR_INDEXES = """ SELECT v.index_name, v.description, v.owner -FROM ALL_CLOUD_VECTOR_INDEXES v +FROM C##CLOUD$SERVICE.ALL_CLOUD_VECTOR_INDEXES v WHERE REGEXP_LIKE(v.index_name, :index_name_pattern, 'i') AND v.owner = COALESCE(:owner, SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')) """ GET_ALL_VECTOR_INDEX = """ SELECT index_name, description, owner -FROM ALL_CLOUD_VECTOR_INDEXES +FROM C##CLOUD$SERVICE.ALL_CLOUD_VECTOR_INDEXES WHERE index_name = :index_name AND owner = COALESCE(:owner, SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')) """ GET_ALL_VECTOR_INDEX_ATTRIBUTES = """ SELECT attribute_name, attribute_value -FROM ALL_CLOUD_VECTOR_INDEX_ATTRIBUTES +FROM C##CLOUD$SERVICE.ALL_CLOUD_VECTOR_INDEX_ATTRIBUTES WHERE index_name = :index_name AND owner = COALESCE(:owner, SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')) """ @@ -121,14 +121,14 @@ conversation_title, description, retention_days -from USER_CLOUD_AI_CONVERSATIONS +from C##CLOUD$SERVICE.USER_CLOUD_AI_CONVERSATIONS """ GET_USER_CONVERSATION_ATTRIBUTES = """ SELECT conversation_title, description, retention_days -from USER_CLOUD_AI_CONVERSATIONS +from C##CLOUD$SERVICE.USER_CLOUD_AI_CONVERSATIONS WHERE conversation_id = :conversation_id """ @@ -147,7 +147,7 @@ client_ip, sid, serial# -FROM USER_CLOUD_AI_CONVERSATION_PROMPTS +FROM C##CLOUD$SERVICE.USER_CLOUD_AI_CONVERSATION_PROMPTS WHERE conversation_id = :conversation_id ORDER BY created """ @@ -155,6 +155,6 @@ GET_VECTOR_PIPELINE_LAST_EXECUTION = """ SELECT CAST(last_execution AT TIME ZONE 'UTC' AS TIMESTAMP) -FROM USER_CLOUD_PIPELINES +FROM C##CLOUD$SERVICE.USER_CLOUD_PIPELINES WHERE pipeline_name = :pipeline_name """ diff --git a/src/select_ai/vector_index.py b/src/select_ai/vector_index.py index 51791ef..a18384f 100644 --- a/src/select_ai/vector_index.py +++ b/src/select_ai/vector_index.py @@ -251,7 +251,7 @@ def create( with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", keyword_parameters=parameters, ) except oracledb.DatabaseError as e: @@ -260,7 +260,7 @@ def create( if error.code == 20048 and replace: self.delete(force=True) cr.callproc( - "DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", keyword_parameters=parameters, ) else: @@ -302,7 +302,7 @@ def delete( """ with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.DROP_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DROP_VECTOR_INDEX", keyword_parameters={ "index_name": self.index_name, "include_data": include_data, @@ -323,7 +323,7 @@ def enable(self): with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX", keyword_parameters={"index_name": self.index_name}, ) except oracledb.Error as e: @@ -347,7 +347,7 @@ def disable(self): with cursor() as cr: try: cr.callproc( - "DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX", keyword_parameters={"index_name": self.index_name}, ) except oracledb.Error as e: @@ -363,7 +363,7 @@ def grant_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.GRANT_VECTOR_INDEX_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GRANT_VECTOR_INDEX_ACCESS", keyword_parameters={ "index_name": self.index_name, "user_or_role_name": user_or_role_name, @@ -375,7 +375,7 @@ def revoke_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.REVOKE_VECTOR_INDEX_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.REVOKE_VECTOR_INDEX_ACCESS", keyword_parameters={ "index_name": self.index_name, "user_or_role_name": user_or_role_name, @@ -432,7 +432,7 @@ def set_attribute( } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", keyword_parameters=parameters, ) @@ -456,7 +456,7 @@ def set_attributes( } with cursor() as cr: cr.callproc( - "DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", keyword_parameters=parameters, ) self.attributes = self.get_attributes() @@ -635,7 +635,7 @@ async def create( async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", keyword_parameters=parameters, ) except oracledb.DatabaseError as e: @@ -644,7 +644,7 @@ async def create( if error.code == 20048 and replace: await self.delete(force=True) await cr.callproc( - "DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.CREATE_VECTOR_INDEX", keyword_parameters=parameters, ) else: @@ -670,7 +670,7 @@ async def delete( """ async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.DROP_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DROP_VECTOR_INDEX", keyword_parameters={ "index_name": self.index_name, "include_data": include_data, @@ -709,7 +709,7 @@ async def enable(self) -> None: async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX", keyword_parameters={"index_name": self.index_name}, ) except oracledb.DatabaseError as e: @@ -733,7 +733,7 @@ async def disable(self) -> None: async with async_cursor() as cr: try: await cr.callproc( - "DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX", keyword_parameters={"index_name": self.index_name}, ) except oracledb.Error as e: @@ -748,7 +748,7 @@ async def grant_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.GRANT_VECTOR_INDEX_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.GRANT_VECTOR_INDEX_ACCESS", keyword_parameters={ "index_name": self.index_name, "user_or_role_name": user_or_role_name, @@ -760,7 +760,7 @@ async def revoke_access(self, user_or_role_name: str) -> None: user_or_role_name = validate_user_or_role_name(user_or_role_name) async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.REVOKE_VECTOR_INDEX_ACCESS", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.REVOKE_VECTOR_INDEX_ACCESS", keyword_parameters={ "index_name": self.index_name, "user_or_role_name": user_or_role_name, @@ -817,7 +817,7 @@ async def set_attribute( setattr(self.attributes, attribute_name, attribute_value) async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", keyword_parameters=parameters, ) @@ -838,7 +838,7 @@ async def set_attributes(self, attributes: VectorIndexAttributes) -> None: } async with async_cursor() as cr: await cr.callproc( - "DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", + "C##CLOUD$SERVICE.DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX", keyword_parameters=parameters, ) self.attributes = await self.get_attributes()