Skip to content

Commit 523e4fd

Browse files
committed
Version 1.4.83
1 parent 083b904 commit 523e4fd

372 files changed

Lines changed: 3394 additions & 670 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

abacusai/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,8 @@
281281
from .user import User
282282
from .user_exception import UserException
283283
from .user_group_object_permission import UserGroupObjectPermission
284+
from .vertical import Vertical
285+
from .vertical_files_result import VerticalFilesResult
284286
from .video_gen_costs import VideoGenCosts
285287
from .video_gen_model import VideoGenModel
286288
from .video_gen_model_options import VideoGenModelOptions
@@ -301,4 +303,4 @@
301303
from .workflow_node_template import WorkflowNodeTemplate
302304

303305

304-
__version__ = "1.4.82"
306+
__version__ = "1.4.83"

abacusai/api_class/ai_agents.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,17 +1055,24 @@ class WebhookTriggerConfig(TriggerConfig):
10551055
Args:
10561056
test_webhook_url (str): The webhook URL for testing. Populated by the API.
10571057
production_webhook_url (str): The webhook URL for production. Populated by the API.
1058+
response_config (dict): Optional configuration for the webhook HTTP response. Supports:
1059+
- status_code (int): HTTP status code to return. Defaults to 200.
1060+
- headers (dict): Custom response headers (key-value pairs).
1061+
- body (dict|str): Custom response body. Can be a dict (returned as JSON) or a string.
1062+
- auto_verify (bool): Automatically handle service-specific verification protocols
1063+
(e.g., Slack challenge, GitHub ping). Defaults to True.
10581064
"""
10591065
test_webhook_url: str = dataclasses.field(default=None)
10601066
production_webhook_url: str = dataclasses.field(default=None)
1067+
response_config: dict = dataclasses.field(default=None)
10611068

10621069
def to_dict(self):
1063-
return {'sleep_time': None, 'test_webhook_url': self.test_webhook_url, 'production_webhook_url': self.production_webhook_url}
1070+
return {'sleep_time': None, 'test_webhook_url': self.test_webhook_url, 'production_webhook_url': self.production_webhook_url, 'response_config': self.response_config}
10641071

10651072
@classmethod
10661073
def from_dict(cls, configs: dict):
10671074
validate_input_dict_param(configs, friendly_class_name='webhook_trigger_config')
1068-
return cls(test_webhook_url=configs.get('test_webhook_url'), production_webhook_url=configs.get('production_webhook_url'))
1075+
return cls(test_webhook_url=configs.get('test_webhook_url'), production_webhook_url=configs.get('production_webhook_url'), response_config=configs.get('response_config'))
10691076

10701077

10711078
@validate_constructor_arg_types('workflow_graph_edge')

abacusai/api_class/document_retriever.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class VectorStoreConfig(ApiClass):
2020
use_document_summary (bool): If True, uses the summary of the document in addition to chunks of the document for indexing and querying.
2121
summary_instructions (str): Instructions for the LLM to generate the document summary.
2222
standalone_deployment (bool): If True, the document retriever will be deployed as a standalone deployment.
23+
page_level (bool): If True, stores each page separately for paginated documents instead of chunking across pages. Default is False.
2324
"""
2425
chunk_size: int = dataclasses.field(default=None)
2526
chunk_overlap_fraction: float = dataclasses.field(default=None)
@@ -31,6 +32,7 @@ class VectorStoreConfig(ApiClass):
3132
use_document_summary: bool = dataclasses.field(default=None)
3233
summary_instructions: str = dataclasses.field(default=None)
3334
standalone_deployment: bool = dataclasses.field(default=False)
35+
page_level: bool = dataclasses.field(default=False)
3436

3537

3638
DocumentRetrieverConfig = VectorStoreConfig

abacusai/api_class/enums.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,8 @@ class VectorStoreTextEncoder(ApiEnum):
526526
'OPENAI_O1_MINI',
527527
'GEMINI_1_5_PRO', 'GEMINI_1_5_FLASH', 'GEMINI_2_PRO', 'GEMINI_2_FLASH_THINKING',
528528
'XAI_GROK',
529-
'CLAUDE_V3_OPUS', 'CLAUDE_V3_HAIKU',
529+
'CLAUDE_V3_HAIKU', 'CLAUDE_V3_OPUS', 'CLAUDE_V3_5_HAIKU', 'CLAUDE_V3_5_SONNET', 'CLAUDE_V3_7_SONNET',
530+
'CLAUDE_V4_SONNET', 'CLAUDE_V4_OPUS',
530531
'LLAMA3_LARGE_CHAT', 'QWEN_2_5_32B_BASE')
531532
class LLMName(ApiEnum):
532533
OPENAI_GPT3_5 = 'OPENAI_GPT3_5'
@@ -561,6 +562,8 @@ class LLMName(ApiEnum):
561562
CLAUDE_V4_SONNET = 'CLAUDE_V4_SONNET'
562563
CLAUDE_V4_OPUS = 'CLAUDE_V4_OPUS'
563564
CLAUDE_V4_5_SONNET = 'CLAUDE_V4_5_SONNET'
565+
CLAUDE_V4_5_OPUS = 'CLAUDE_V4_5_OPUS'
566+
CLAUDE_V4_6_OPUS = 'CLAUDE_V4_6_OPUS'
564567
GEMINI_1_5_PRO = 'GEMINI_1_5_PRO'
565568
GEMINI_1_5_FLASH = 'GEMINI_1_5_FLASH'
566569
GEMINI_2_PRO = 'GEMINI_2_PRO'

abacusai/api_class/model.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,7 @@ class ChatLLMTrainingConfig(TrainingConfig):
506506
config_connectors (List[str]): List of names of config connectors to use in the ChatLLM. This should not be used with document_retrievers.
507507
mcp_servers (List[str]): List of names of MCP servers to use in the ChatLLM. This should not be used with document_retrievers.
508508
agentic_loop_mode (bool): Enables use of agentic loop that uses a series of tool calls when needed to respond. If set to False, the agentic loop will not be used. If not set or set to Auto, the agentic loop will be automatically used based on certain conditions like presence of tools in the model.
509+
max_page_images (int): Maximum number of page images to extract and send to the LLM for visual analysis from RAG search results. Defaults to 5.
509510
"""
510511
document_retrievers: List[str] = dataclasses.field(default=None)
511512
num_completion_tokens: int = dataclasses.field(default=None)
@@ -521,6 +522,7 @@ class ChatLLMTrainingConfig(TrainingConfig):
521522
keyword_requirement_instructions: str = dataclasses.field(default=None)
522523
query_rewrite_instructions: str = dataclasses.field(default=None)
523524
max_search_results: int = dataclasses.field(default=None)
525+
max_page_images: int = dataclasses.field(default=5)
524526
data_feature_group_ids: List[str] = dataclasses.field(default=None)
525527
data_prompt_context: str = dataclasses.field(default=None)
526528
data_prompt_table_context: Dict[str, str] = dataclasses.field(default=None)
@@ -769,10 +771,12 @@ class AIAgentTrainingConfig(TrainingConfig):
769771
description (str): Description of the agent function.
770772
agent_interface (AgentInterface): The interface that the agent will be deployed with.
771773
agent_connectors: (List[enums.ApplicationConnectorType]): The connectors needed for the agent to function.
774+
autonomous_trigger_type (AutonomousTriggerType): The type of trigger for autonomous agents. SCHEDULE for periodic execution, WEBHOOK for event-driven execution. Only applicable when agent_interface is AUTONOMOUS.
772775
"""
773776
description: str = dataclasses.field(default=None)
774777
agent_interface: enums.AgentInterface = dataclasses.field(default=None)
775778
agent_connectors: List[enums.ApplicationConnectorType] = dataclasses.field(default=None)
779+
autonomous_trigger_type: enums.AutonomousTriggerType = dataclasses.field(default=None)
776780
enable_binary_input: bool = dataclasses.field(default=None, metadata={'deprecated': True})
777781
agent_input_schema: dict = dataclasses.field(default=None, metadata={'deprecated': True})
778782
agent_output_schema: dict = dataclasses.field(default=None, metadata={'deprecated': True})

abacusai/chatllm_project.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,25 @@ class ChatllmProject(AbstractApiClass):
1313
customInstructions (str): The custom instructions of the chatllm project.
1414
createdAt (str): The creation time of the chatllm project.
1515
updatedAt (str): The update time of the chatllm project.
16+
verticalType (str): The vertical type (HEALTH or null for regular projects).
17+
preferences (dict): The preferences JSON for vertical projects.
1618
"""
1719

18-
def __init__(self, client, chatllmProjectId=None, name=None, description=None, customInstructions=None, createdAt=None, updatedAt=None):
20+
def __init__(self, client, chatllmProjectId=None, name=None, description=None, customInstructions=None, createdAt=None, updatedAt=None, verticalType=None, preferences=None):
1921
super().__init__(client, chatllmProjectId)
2022
self.chatllm_project_id = chatllmProjectId
2123
self.name = name
2224
self.description = description
2325
self.custom_instructions = customInstructions
2426
self.created_at = createdAt
2527
self.updated_at = updatedAt
28+
self.vertical_type = verticalType
29+
self.preferences = preferences
2630
self.deprecated_keys = {}
2731

2832
def __repr__(self):
29-
repr_dict = {f'chatllm_project_id': repr(self.chatllm_project_id), f'name': repr(self.name), f'description': repr(
30-
self.description), f'custom_instructions': repr(self.custom_instructions), f'created_at': repr(self.created_at), f'updated_at': repr(self.updated_at)}
33+
repr_dict = {f'chatllm_project_id': repr(self.chatllm_project_id), f'name': repr(self.name), f'description': repr(self.description), f'custom_instructions': repr(
34+
self.custom_instructions), f'created_at': repr(self.created_at), f'updated_at': repr(self.updated_at), f'vertical_type': repr(self.vertical_type), f'preferences': repr(self.preferences)}
3135
class_name = "ChatllmProject"
3236
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
3337
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
@@ -40,6 +44,6 @@ def to_dict(self):
4044
Returns:
4145
dict: The dict value representation of the class parameters
4246
"""
43-
resp = {'chatllm_project_id': self.chatllm_project_id, 'name': self.name, 'description': self.description,
44-
'custom_instructions': self.custom_instructions, 'created_at': self.created_at, 'updated_at': self.updated_at}
47+
resp = {'chatllm_project_id': self.chatllm_project_id, 'name': self.name, 'description': self.description, 'custom_instructions': self.custom_instructions,
48+
'created_at': self.created_at, 'updated_at': self.updated_at, 'vertical_type': self.vertical_type, 'preferences': self.preferences}
4549
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}

0 commit comments

Comments
 (0)