Skip to content

Commit 1f6017d

Browse files
committed
Version 1.4.75
1 parent f1f258b commit 1f6017d

File tree

26 files changed

+2249
-816
lines changed

26 files changed

+2249
-816
lines changed

abacusai/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,4 +291,4 @@
291291
from .workflow_node_template import WorkflowNodeTemplate
292292

293293

294-
__version__ = "1.4.74"
294+
__version__ = "1.4.75"

abacusai/api_class/ai_agents.py

Lines changed: 236 additions & 30 deletions
Large diffs are not rendered by default.

abacusai/api_class/enums.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,7 @@ class LLMName(ApiEnum):
550550
OPENAI_GPT5_NANO = 'OPENAI_GPT5_NANO'
551551
OPENAI_GPT5_NANO_HIGH = 'OPENAI_GPT5_NANO_HIGH'
552552
OPENAI_GPT5_1 = 'OPENAI_GPT5_1'
553+
OPENAI_GPT5_2 = 'OPENAI_GPT5_2'
553554
CLAUDE_V3_HAIKU = 'CLAUDE_V3_HAIKU'
554555
CLAUDE_V3_OPUS = 'CLAUDE_V3_OPUS'
555556
CLAUDE_V3_5_HAIKU = 'CLAUDE_V3_5_HAIKU'

abacusai/batch_prediction.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def __init__(self, client, batchPredictionId=None, createdAt=None, name=None, de
8484
BatchPredictionArgs, globalPredictionArgs)
8585
self.batch_prediction_args = client._build_class(getattr(
8686
api_class, batchPredictionArgsType, BatchPredictionArgs) if batchPredictionArgsType else BatchPredictionArgs, batchPredictionArgs)
87-
self.deprecated_keys = {'global_prediction_args', 'explanations'}
87+
self.deprecated_keys = {'explanations', 'global_prediction_args'}
8888

8989
def __repr__(self):
9090
repr_dict = {f'batch_prediction_id': repr(self.batch_prediction_id), f'created_at': repr(self.created_at), f'name': repr(self.name), f'deployment_id': repr(self.deployment_id), f'file_connector_output_location': repr(self.file_connector_output_location), f'database_connector_id': repr(self.database_connector_id), f'database_output_configuration': repr(self.database_output_configuration), f'file_output_format': repr(self.file_output_format), f'connector_type': repr(self.connector_type), f'legacy_input_location': repr(self.legacy_input_location), f'output_feature_group_id': repr(self.output_feature_group_id), f'feature_group_table_name': repr(self.feature_group_table_name), f'output_feature_group_table_name': repr(self.output_feature_group_table_name), f'summary_feature_group_table_name': repr(self.summary_feature_group_table_name), f'csv_input_prefix': repr(

abacusai/batch_prediction_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def __init__(self, client, batchPredictionVersion=None, batchPredictionId=None,
100100
BatchPredictionArgs, globalPredictionArgs)
101101
self.batch_prediction_args = client._build_class(getattr(
102102
api_class, batchPredictionArgsType, BatchPredictionArgs) if batchPredictionArgsType else BatchPredictionArgs, batchPredictionArgs)
103-
self.deprecated_keys = {'global_prediction_args', 'explanations'}
103+
self.deprecated_keys = {'explanations', 'global_prediction_args'}
104104

105105
def __repr__(self):
106106
repr_dict = {f'batch_prediction_version': repr(self.batch_prediction_version), f'batch_prediction_id': repr(self.batch_prediction_id), f'status': repr(self.status), f'drift_monitor_status': repr(self.drift_monitor_status), f'deployment_id': repr(self.deployment_id), f'model_id': repr(self.model_id), f'model_version': repr(self.model_version), f'predictions_started_at': repr(self.predictions_started_at), f'predictions_completed_at': repr(self.predictions_completed_at), f'database_output_error': repr(self.database_output_error), f'total_predictions': repr(self.total_predictions), f'failed_predictions': repr(self.failed_predictions), f'database_connector_id': repr(self.database_connector_id), f'database_output_configuration': repr(self.database_output_configuration), f'file_connector_output_location': repr(self.file_connector_output_location), f'file_output_format': repr(self.file_output_format), f'connector_type': repr(self.connector_type), f'legacy_input_location': repr(self.legacy_input_location), f'error': repr(self.error), f'drift_monitor_error': repr(self.drift_monitor_error), f'monitor_warnings': repr(self.monitor_warnings), f'csv_input_prefix': repr(

abacusai/client.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ class BaseApiClient:
667667
client_options (ClientOptions): Optional API client configurations
668668
skip_version_check (bool): If true, will skip checking the server's current API version on initializing the client
669669
"""
670-
client_version = '1.4.74'
670+
client_version = '1.4.75'
671671

672672
def __init__(self, api_key: str = None, server: str = None, client_options: ClientOptions = None, skip_version_check: bool = False, include_tb: bool = False):
673673
self.api_key = api_key
@@ -1579,7 +1579,7 @@ def query_database_connector(self, database_connector_id: str, query: str) -> li
15791579
Args:
15801580
database_connector_id (str): A unique string identifier for the database connector.
15811581
query (str): The query to be run in the database connector."""
1582-
return self._call_api('queryDatabaseConnector', 'GET', query_params={'databaseConnectorId': database_connector_id, 'query': query})
1582+
return self._proxy_request('queryDatabaseConnector', 'GET', query_params={'databaseConnectorId': database_connector_id, 'query': query}, is_sync=True)
15831583

15841584
def query_database_connector_datallm(self, database_connector_id: str, query: str) -> list:
15851585
"""Runs a read-only query in the specified database connector. This API is specifically designed for DataLLM
@@ -1590,7 +1590,7 @@ def query_database_connector_datallm(self, database_connector_id: str, query: st
15901590
Args:
15911591
database_connector_id (str): A unique string identifier for the database connector.
15921592
query (str): The query to be run in the database connector (must be read-only)."""
1593-
return self._call_api('queryDatabaseConnectorDatallm', 'GET', query_params={'databaseConnectorId': database_connector_id, 'query': query})
1593+
return self._proxy_request('queryDatabaseConnectorDatallm', 'GET', query_params={'databaseConnectorId': database_connector_id, 'query': query}, is_sync=True)
15941594

15951595
def get_database_connector_auth(self, database_connector_id: str) -> DatabaseConnector:
15961596
"""Get the authentication details for a given database connector.
@@ -1629,17 +1629,18 @@ def get_connector_auth(self, service: Union[ApplicationConnectorType, str] = Non
16291629
UnifiedConnector: The application connector with the authentication details."""
16301630
return self._call_api('getConnectorAuth', 'GET', query_params={'service': service, 'applicationConnectorId': application_connector_id, 'scopes': scopes, 'genericOauthService': generic_oauth_service}, parse_type=UnifiedConnector)
16311631

1632-
def get_user_connector_auth(self, service: Union[ApplicationConnectorType, str], scopes: List = None, generic_oauth_service: str = None) -> UnifiedConnector:
1632+
def get_user_connector_auth(self, service: Union[ApplicationConnectorType, str], scopes: List = None, generic_oauth_service: str = None, config_connector: str = None) -> UnifiedConnector:
16331633
"""Get the authentication details for a given user level connector.
16341634

16351635
Args:
16361636
service (ApplicationConnectorType): The service name.
16371637
scopes (List): The scopes to request for the connector.
16381638
generic_oauth_service (str): For GENERIC_OAUTH service, specify the OAuth provider (e.g., 'spotify').
1639+
config_connector (str): The config connector id.
16391640

16401641
Returns:
16411642
UnifiedConnector: The application connector with the authentication details."""
1642-
return self._call_api('getUserConnectorAuth', 'GET', query_params={'service': service, 'scopes': scopes, 'genericOauthService': generic_oauth_service}, parse_type=UnifiedConnector)
1643+
return self._call_api('getUserConnectorAuth', 'GET', query_params={'service': service, 'scopes': scopes, 'genericOauthService': generic_oauth_service, 'configConnector': config_connector}, parse_type=UnifiedConnector)
16431644

16441645
def get_user_mcp_connector_auth(self, mcp_server_name: str = None) -> ApplicationConnector:
16451646
"""Get the auth for a MCP connector
@@ -8957,7 +8958,7 @@ def set_deployment_conversation_feedback(self, deployment_conversation_id: str,
89578958
feedback (str): Optional feedback on why the message is useful or not useful
89588959
feedback_type (str): Optional feedback type
89598960
deployment_id (str): The deployment this conversation belongs to. This is required if not logged in."""
8960-
return self._call_api('setDeploymentConversationFeedback', 'POST', query_params={'deploymentId': deployment_id}, body={'deploymentConversationId': deployment_conversation_id, 'messageIndex': message_index, 'isUseful': is_useful, 'isNotUseful': is_not_useful, 'feedback': feedback, 'feedbackType': feedback_type})
8961+
return self._proxy_request('setDeploymentConversationFeedback', 'POST', query_params={'deploymentId': deployment_id}, body={'deploymentConversationId': deployment_conversation_id, 'messageIndex': message_index, 'isUseful': is_useful, 'isNotUseful': is_not_useful, 'feedback': feedback, 'feedbackType': feedback_type}, is_sync=True)
89618962

89628963
def rename_deployment_conversation(self, deployment_conversation_id: str, name: str, deployment_id: str = None):
89638964
"""Rename a Deployment Conversation.

abacusai/deployment_conversation.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,12 @@ class DeploymentConversation(AbstractApiClass):
3939
introMessage (str): The intro message for the deployment conversation.
4040
previewInfo (dict): App preview info.
4141
latestContext (dict): dict containing a list of important segments for pagination in deepagent.
42+
shareType (str): The sharing status of the deployment conversation (PUBLIC or PRIVATE).
4243
history (DeploymentConversationEvent): The history of the deployment conversation.
4344
hostedArtifacts (HostedArtifact): Artifacts that have been deployed by this conversation.
4445
"""
4546

46-
def __init__(self, client, deploymentConversationId=None, name=None, deploymentId=None, ownerUserId=None, ownerOrgId=None, createdAt=None, lastEventCreatedAt=None, hasHistory=None, externalSessionId=None, regenerateAttempt=None, externalApplicationId=None, unusedDocumentUploadIds=None, humanizeInstructions=None, conversationWarning=None, conversationType=None, metadata=None, llmDisplayName=None, llmBotIcon=None, searchSuggestions=None, chatllmTaskId=None, conversationStatus=None, computerStatus=None, filesystemStatus=None, totalEvents=None, contestNames=None, daemonTaskId=None, parentDeploymentConversationId=None, introMessage=None, previewInfo=None, latestContext=None, history={}, hostedArtifacts={}):
47+
def __init__(self, client, deploymentConversationId=None, name=None, deploymentId=None, ownerUserId=None, ownerOrgId=None, createdAt=None, lastEventCreatedAt=None, hasHistory=None, externalSessionId=None, regenerateAttempt=None, externalApplicationId=None, unusedDocumentUploadIds=None, humanizeInstructions=None, conversationWarning=None, conversationType=None, metadata=None, llmDisplayName=None, llmBotIcon=None, searchSuggestions=None, chatllmTaskId=None, conversationStatus=None, computerStatus=None, filesystemStatus=None, totalEvents=None, contestNames=None, daemonTaskId=None, parentDeploymentConversationId=None, introMessage=None, previewInfo=None, latestContext=None, shareType=None, history={}, hostedArtifacts={}):
4748
super().__init__(client, deploymentConversationId)
4849
self.deployment_conversation_id = deploymentConversationId
4950
self.name = name
@@ -75,6 +76,7 @@ def __init__(self, client, deploymentConversationId=None, name=None, deploymentI
7576
self.intro_message = introMessage
7677
self.preview_info = previewInfo
7778
self.latest_context = latestContext
79+
self.share_type = shareType
7880
self.history = client._build_class(
7981
DeploymentConversationEvent, history)
8082
self.hosted_artifacts = client._build_class(
@@ -83,7 +85,7 @@ def __init__(self, client, deploymentConversationId=None, name=None, deploymentI
8385

8486
def __repr__(self):
8587
repr_dict = {f'deployment_conversation_id': repr(self.deployment_conversation_id), f'name': repr(self.name), f'deployment_id': repr(self.deployment_id), f'owner_user_id': repr(self.owner_user_id), f'owner_org_id': repr(self.owner_org_id), f'created_at': repr(self.created_at), f'last_event_created_at': repr(self.last_event_created_at), f'has_history': repr(self.has_history), f'external_session_id': repr(self.external_session_id), f'regenerate_attempt': repr(self.regenerate_attempt), f'external_application_id': repr(self.external_application_id), f'unused_document_upload_ids': repr(self.unused_document_upload_ids), f'humanize_instructions': repr(self.humanize_instructions), f'conversation_warning': repr(self.conversation_warning), f'conversation_type': repr(self.conversation_type), f'metadata': repr(
86-
self.metadata), f'llm_display_name': repr(self.llm_display_name), f'llm_bot_icon': repr(self.llm_bot_icon), f'search_suggestions': repr(self.search_suggestions), f'chatllm_task_id': repr(self.chatllm_task_id), f'conversation_status': repr(self.conversation_status), f'computer_status': repr(self.computer_status), f'filesystem_status': repr(self.filesystem_status), f'total_events': repr(self.total_events), f'contest_names': repr(self.contest_names), f'daemon_task_id': repr(self.daemon_task_id), f'parent_deployment_conversation_id': repr(self.parent_deployment_conversation_id), f'intro_message': repr(self.intro_message), f'preview_info': repr(self.preview_info), f'latest_context': repr(self.latest_context), f'history': repr(self.history), f'hosted_artifacts': repr(self.hosted_artifacts)}
88+
self.metadata), f'llm_display_name': repr(self.llm_display_name), f'llm_bot_icon': repr(self.llm_bot_icon), f'search_suggestions': repr(self.search_suggestions), f'chatllm_task_id': repr(self.chatllm_task_id), f'conversation_status': repr(self.conversation_status), f'computer_status': repr(self.computer_status), f'filesystem_status': repr(self.filesystem_status), f'total_events': repr(self.total_events), f'contest_names': repr(self.contest_names), f'daemon_task_id': repr(self.daemon_task_id), f'parent_deployment_conversation_id': repr(self.parent_deployment_conversation_id), f'intro_message': repr(self.intro_message), f'preview_info': repr(self.preview_info), f'latest_context': repr(self.latest_context), f'share_type': repr(self.share_type), f'history': repr(self.history), f'hosted_artifacts': repr(self.hosted_artifacts)}
8789
class_name = "DeploymentConversation"
8890
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
8991
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
@@ -96,8 +98,8 @@ def to_dict(self):
9698
Returns:
9799
dict: The dict value representation of the class parameters
98100
"""
99-
resp = {'deployment_conversation_id': self.deployment_conversation_id, 'name': self.name, 'deployment_id': self.deployment_id, 'owner_user_id': self.owner_user_id, 'owner_org_id': self.owner_org_id, 'created_at': self.created_at, 'last_event_created_at': self.last_event_created_at, 'has_history': self.has_history, 'external_session_id': self.external_session_id, 'regenerate_attempt': self.regenerate_attempt, 'external_application_id': self.external_application_id, 'unused_document_upload_ids': self.unused_document_upload_ids, 'humanize_instructions': self.humanize_instructions, 'conversation_warning': self.conversation_warning, 'conversation_type': self.conversation_type, 'metadata': self.metadata,
100-
'llm_display_name': self.llm_display_name, 'llm_bot_icon': self.llm_bot_icon, 'search_suggestions': self.search_suggestions, 'chatllm_task_id': self.chatllm_task_id, 'conversation_status': self.conversation_status, 'computer_status': self.computer_status, 'filesystem_status': self.filesystem_status, 'total_events': self.total_events, 'contest_names': self.contest_names, 'daemon_task_id': self.daemon_task_id, 'parent_deployment_conversation_id': self.parent_deployment_conversation_id, 'intro_message': self.intro_message, 'preview_info': self.preview_info, 'latest_context': self.latest_context, 'history': self._get_attribute_as_dict(self.history), 'hosted_artifacts': self._get_attribute_as_dict(self.hosted_artifacts)}
101+
resp = {'deployment_conversation_id': self.deployment_conversation_id, 'name': self.name, 'deployment_id': self.deployment_id, 'owner_user_id': self.owner_user_id, 'owner_org_id': self.owner_org_id, 'created_at': self.created_at, 'last_event_created_at': self.last_event_created_at, 'has_history': self.has_history, 'external_session_id': self.external_session_id, 'regenerate_attempt': self.regenerate_attempt, 'external_application_id': self.external_application_id, 'unused_document_upload_ids': self.unused_document_upload_ids, 'humanize_instructions': self.humanize_instructions, 'conversation_warning': self.conversation_warning, 'conversation_type': self.conversation_type, 'metadata': self.metadata, 'llm_display_name': self.llm_display_name,
102+
'llm_bot_icon': self.llm_bot_icon, 'search_suggestions': self.search_suggestions, 'chatllm_task_id': self.chatllm_task_id, 'conversation_status': self.conversation_status, 'computer_status': self.computer_status, 'filesystem_status': self.filesystem_status, 'total_events': self.total_events, 'contest_names': self.contest_names, 'daemon_task_id': self.daemon_task_id, 'parent_deployment_conversation_id': self.parent_deployment_conversation_id, 'intro_message': self.intro_message, 'preview_info': self.preview_info, 'latest_context': self.latest_context, 'share_type': self.share_type, 'history': self._get_attribute_as_dict(self.history), 'hosted_artifacts': self._get_attribute_as_dict(self.hosted_artifacts)}
101103
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
102104

103105
def get(self, external_session_id: str = None, deployment_id: str = None, filter_intermediate_conversation_events: bool = True, get_unused_document_uploads: bool = False, start: int = None, limit: int = None, include_all_versions: bool = False):

0 commit comments

Comments
 (0)