abacusai 1.4.66__tar.gz → 1.4.67__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of abacusai might be problematic. Click here for more details.
- {abacusai-1.4.66 → abacusai-1.4.67}/PKG-INFO +1 -1
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/__init__.py +4 -1
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/ai_agents.py +6 -2
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/model.py +2 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_endpoint.py +6 -4
- abacusai-1.4.67/abacusai/audit_log.py +47 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/client.py +38 -8
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/deployment_conversation.py +9 -0
- abacusai-1.4.67/abacusai/document_retriever_version_logs.py +33 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hosted_app_container.py +6 -4
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/prediction_client.py +8 -0
- abacusai-1.4.67/abacusai/user_group_object_permission.py +41 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai.egg-info/PKG-INFO +1 -1
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai.egg-info/SOURCES.txt +3 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/setup.py +1 -1
- {abacusai-1.4.66 → abacusai-1.4.67}/LICENSE +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/README.md +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/abacus_api.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/address.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/agent.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/agent_chat_message.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/agent_conversation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/agent_data_document_info.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/agent_data_execution_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/agent_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/ai_building_task.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/algorithm.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/annotation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/annotation_config.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/annotation_document.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/annotation_entry.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/annotations_status.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/__init__.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/abstract.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/ai_chat.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/batch_prediction.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/blob_input.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/connectors.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/dataset.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/dataset_application_connector.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/deployment.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/document_retriever.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/enums.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/feature_group.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/monitor.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/monitor_alert.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/project.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/python_functions.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/refresh.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_class/segments.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_client_utils.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/api_key.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/app_user_group.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/app_user_group_sign_in_token.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/application_connector.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/audio_gen_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/audio_url_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/batch_prediction.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/batch_prediction_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/batch_prediction_version_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/bot_info.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/categorical_range_violation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chat_message.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chat_session.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chatllm_computer.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chatllm_computer_status.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chatllm_memory.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chatllm_project.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chatllm_project_permissions.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chatllm_referral_invite.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/chatllm_task.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_agent_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_autocomplete_edit_prediction_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_autocomplete_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_bot.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_edit.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_edit_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_edits.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_embeddings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_llm_changed_files.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_source.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_suggestion_validation_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/code_summary_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/codellm_embedding_constants.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/compute_point_info.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/concatenation_config.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/constants_autocomplete_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/cpu_gpu_memory_specs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/cryptography.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/custom_chat_instructions.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/custom_domain.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/custom_loss_function.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/custom_metric.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/custom_metric_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/custom_train_function_info.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/data_consistency_duplication.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/data_metrics.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/data_prep_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/data_quality_results.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/data_upload_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/database_column_feature_mapping.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/database_connector.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/database_connector_column.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/database_connector_schema.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/dataset.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/dataset_column.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/dataset_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/dataset_version_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/default_llm.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/deployment.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/deployment_auth_token.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/deployment_conversation_event.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/deployment_conversation_export.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/deployment_statistics.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/document_data.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/document_retriever.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/document_retriever_lookup_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/document_retriever_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/drift_distribution.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/drift_distributions.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda_chart_description.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda_collinearity.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda_data_consistency.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda_feature_association.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda_feature_collinearity.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda_forecasting_analysis.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/eda_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/edit_image_models.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/embedding_feature_drift_distribution.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/entri_auth_token.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/execute_feature_group_operation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/external_application.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/external_invite.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/extracted_fields.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_distribution.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_drift_record.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_drift_summary.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_document.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_export.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_export_config.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_export_download_url.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_lineage.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_refresh_export_config.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_row.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_row_process.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_row_process_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_row_process_summary.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_template.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_template_variable_options.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_group_version_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_importance.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_mapping.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/feature_performance_analysis.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/file_connector.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/file_connector_instructions.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/file_connector_verification.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/finetuned_pretrained_model.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/forecasting_analysis_graph_data.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/forecasting_monitor_item_analysis.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/forecasting_monitor_summary.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/fs_entry.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/function_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/generated_pit_feature_config_option.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/global_context.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/graph_dashboard.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/holdout_analysis.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/holdout_analysis_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hosted_app.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hosted_app_file_read.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hosted_artifact.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hosted_database.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hosted_database_snapshot.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hosted_model_token.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hostname_info.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/hume_voice.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/image_gen_model.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/image_gen_model_options.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/image_gen_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/indexing_config.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/inferred_database_column_to_feature_mappings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/inferred_feature_mappings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/item_statistics.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/lip_sync_gen_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_app.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_artifact.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_code_block.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_execution_preview.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_execution_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_generated_code.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_input.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_parameters.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/llm_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/mcp_config.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/mcp_server.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/mcp_server_connection.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/mcp_server_query_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/memory_options.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/messaging_connector_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_artifacts_export.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_blueprint_export.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_blueprint_stage.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_location.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_metrics.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_monitor.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_monitor_org_summary.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_monitor_summary.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_monitor_summary_from_org.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_monitor_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_monitor_version_metric_data.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_training_type_for_deployment.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_upload.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/model_version_feature_group_schema.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/modification_lock_info.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/module.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/monitor_alert.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/monitor_alert_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/monitor_drift_and_distributions.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/natural_language_explanation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/nested_feature.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/nested_feature_schema.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/news_search_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/nlp_chat_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/notebook_completion.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/notebook_template.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/null_violation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/organization_external_application_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/organization_group.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/organization_search_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/organization_secret.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/page_data.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline_reference.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline_step.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline_step_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline_step_version_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline_step_version_reference.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/pipeline_version_logs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/playground_text.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/point_in_time_feature.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/point_in_time_feature_info.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/point_in_time_group.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/point_in_time_group_feature.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/prediction_dataset.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/prediction_feature_group.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/prediction_input.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/prediction_log_record.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/prediction_operator.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/prediction_operator_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/presentation_export_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/problem_type.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/project.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/project_config.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/project_feature_group.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/project_feature_group_schema.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/project_feature_group_schema_version.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/project_validation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/python_function.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/python_function_validator.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/python_plot_function.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/range_violation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/realtime_monitor.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/refresh_pipeline_run.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/refresh_policy.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/refresh_schedule.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/regenerate_llm_external_application.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/resolved_feature_group_template.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/return_class.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/routing_action.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/schema.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/session_summary.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/session_transcript.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/session_transcripts.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/sftp_key.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/streaming_auth_token.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/streaming_client.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/streaming_connector.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/streaming_row_count.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/streaming_sample_code.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/sts_gen_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/stt_gen_model.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/stt_gen_model_options.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/stt_gen_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/template_node_details.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/test_point_predictions.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/tone_details.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/training_config_options.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/tts_gen_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/twitter_search_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/unified_connector.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/upload.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/upload_part.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/use_case.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/use_case_requirements.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/user.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/user_exception.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/video_gen_costs.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/video_gen_model.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/video_gen_model_options.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/video_gen_settings.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/video_search_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/voice_gen_details.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/web_app_conversation.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/web_app_domain.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/web_page_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/web_search_response.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/web_search_result.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/webhook.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/workflow_graph_node_details.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai/workflow_node_template.py +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai.egg-info/dependency_links.txt +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai.egg-info/requires.txt +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai.egg-info/top_level.txt +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/abacusai.egg-info/zip-safe +0 -0
- {abacusai-1.4.66 → abacusai-1.4.67}/setup.cfg +0 -0
|
@@ -21,6 +21,7 @@ from .app_user_group_sign_in_token import AppUserGroupSignInToken
|
|
|
21
21
|
from .application_connector import ApplicationConnector
|
|
22
22
|
from .audio_gen_settings import AudioGenSettings
|
|
23
23
|
from .audio_url_result import AudioUrlResult
|
|
24
|
+
from .audit_log import AuditLog
|
|
24
25
|
from .batch_prediction import BatchPrediction
|
|
25
26
|
from .batch_prediction_version import BatchPredictionVersion
|
|
26
27
|
from .batch_prediction_version_logs import BatchPredictionVersionLogs
|
|
@@ -83,6 +84,7 @@ from .document_data import DocumentData
|
|
|
83
84
|
from .document_retriever import DocumentRetriever
|
|
84
85
|
from .document_retriever_lookup_result import DocumentRetrieverLookupResult
|
|
85
86
|
from .document_retriever_version import DocumentRetrieverVersion
|
|
87
|
+
from .document_retriever_version_logs import DocumentRetrieverVersionLogs
|
|
86
88
|
from .drift_distribution import DriftDistribution
|
|
87
89
|
from .drift_distributions import DriftDistributions
|
|
88
90
|
from .eda import Eda
|
|
@@ -266,6 +268,7 @@ from .use_case import UseCase
|
|
|
266
268
|
from .use_case_requirements import UseCaseRequirements
|
|
267
269
|
from .user import User
|
|
268
270
|
from .user_exception import UserException
|
|
271
|
+
from .user_group_object_permission import UserGroupObjectPermission
|
|
269
272
|
from .video_gen_costs import VideoGenCosts
|
|
270
273
|
from .video_gen_model import VideoGenModel
|
|
271
274
|
from .video_gen_model_options import VideoGenModelOptions
|
|
@@ -282,4 +285,4 @@ from .workflow_graph_node_details import WorkflowGraphNodeDetails
|
|
|
282
285
|
from .workflow_node_template import WorkflowNodeTemplate
|
|
283
286
|
|
|
284
287
|
|
|
285
|
-
__version__ = "1.4.
|
|
288
|
+
__version__ = "1.4.67"
|
|
@@ -9,11 +9,15 @@ from .abstract import ApiClass, get_clean_function_source_code_for_agent, valida
|
|
|
9
9
|
MIN_AGENT_SLEEP_TIME = 300
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
def validate_input_dict_param(dict_object, friendly_class_name, must_contain=[]):
|
|
12
|
+
def validate_input_dict_param(dict_object, friendly_class_name, must_contain=[], schema={}):
|
|
13
13
|
if not isinstance(dict_object, dict):
|
|
14
14
|
raise ValueError(friendly_class_name, 'Invalid argument. Provided argument should be a dictionary.')
|
|
15
15
|
if any(field not in dict_object for field in must_contain):
|
|
16
16
|
raise ValueError(friendly_class_name, f'One or more keys are missing in the argument provided. Must contain keys - {must_contain}.')
|
|
17
|
+
for key, value_type in schema.items():
|
|
18
|
+
value = dict_object.get(key)
|
|
19
|
+
if value and not isinstance(value, value_type):
|
|
20
|
+
raise ValueError(friendly_class_name, f'Invalid parameter "{key}". It should be of type {value_type.__name__}.')
|
|
17
21
|
|
|
18
22
|
|
|
19
23
|
@dataclasses.dataclass
|
|
@@ -766,7 +770,7 @@ class WorkflowGraph(ApiClass):
|
|
|
766
770
|
|
|
767
771
|
@classmethod
|
|
768
772
|
def from_dict(cls, graph: dict):
|
|
769
|
-
validate_input_dict_param(graph, friendly_class_name='workflow_graph')
|
|
773
|
+
validate_input_dict_param(graph, friendly_class_name='workflow_graph', schema={'nodes': list, 'edges': list, 'primary_start_node': str, 'common_source_code': str, 'specification_type': str})
|
|
770
774
|
if graph.get('__return_filter'):
|
|
771
775
|
for node in graph.get('nodes', []):
|
|
772
776
|
node['__return_filter'] = True
|
|
@@ -486,6 +486,7 @@ class ChatLLMTrainingConfig(TrainingConfig):
|
|
|
486
486
|
data_prompt_column_context (Dict[str, str]): Dict of 'table_name.column_name' and 'column_context' pairs to provide column context for some selected columns in the selected structured data table. This replaces the default auto-generated information about the column data.
|
|
487
487
|
hide_sql_and_code (bool): When running data queries, this will hide the generated SQL and Code in the response.
|
|
488
488
|
disable_data_summarization (bool): After executing a query summarize the reponse and reply back with only the table and query run.
|
|
489
|
+
disable_data_fetch_for_training (bool): Train using only table and column schema metadata without fetching sample data. This speeds up training but may result in less context for the model.
|
|
489
490
|
data_columns_to_ignore (List[str]): Columns to ignore while encoding information about structured data tables in context for the LLM. A list of strings of format "<table_name>.<column_name>"
|
|
490
491
|
search_score_cutoff (float): Minimum search score to consider a document as a valid search result.
|
|
491
492
|
include_bm25_retrieval (bool): Combine BM25 search score with vector search using reciprocal rank fusion.
|
|
@@ -525,6 +526,7 @@ class ChatLLMTrainingConfig(TrainingConfig):
|
|
|
525
526
|
data_prompt_column_context: Dict[str, str] = dataclasses.field(default=None)
|
|
526
527
|
hide_sql_and_code: bool = dataclasses.field(default=None)
|
|
527
528
|
disable_data_summarization: bool = dataclasses.field(default=None)
|
|
529
|
+
disable_data_fetch_for_training: bool = dataclasses.field(default=None)
|
|
528
530
|
data_columns_to_ignore: List[str] = dataclasses.field(default=None)
|
|
529
531
|
search_score_cutoff: float = dataclasses.field(default=None)
|
|
530
532
|
include_bm25_retrieval: bool = dataclasses.field(default=None)
|
|
@@ -14,9 +14,10 @@ class ApiEndpoint(AbstractApiClass):
|
|
|
14
14
|
externalChatEndpoint (str): The URI that can be used to access the external chat
|
|
15
15
|
dashboardEndpoint (str): The URI that the external chat will use to go back to the dashboard
|
|
16
16
|
hostingDomain (str): The domain for hosted app deployments
|
|
17
|
+
publicHostingDomain (str): The domain for publicly hosted app deployments
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
|
-
def __init__(self, client, apiEndpoint=None, predictEndpoint=None, proxyEndpoint=None, llmEndpoint=None, externalChatEndpoint=None, dashboardEndpoint=None, hostingDomain=None):
|
|
20
|
+
def __init__(self, client, apiEndpoint=None, predictEndpoint=None, proxyEndpoint=None, llmEndpoint=None, externalChatEndpoint=None, dashboardEndpoint=None, hostingDomain=None, publicHostingDomain=None):
|
|
20
21
|
super().__init__(client, None)
|
|
21
22
|
self.api_endpoint = apiEndpoint
|
|
22
23
|
self.predict_endpoint = predictEndpoint
|
|
@@ -25,11 +26,12 @@ class ApiEndpoint(AbstractApiClass):
|
|
|
25
26
|
self.external_chat_endpoint = externalChatEndpoint
|
|
26
27
|
self.dashboard_endpoint = dashboardEndpoint
|
|
27
28
|
self.hosting_domain = hostingDomain
|
|
29
|
+
self.public_hosting_domain = publicHostingDomain
|
|
28
30
|
self.deprecated_keys = {}
|
|
29
31
|
|
|
30
32
|
def __repr__(self):
|
|
31
|
-
repr_dict = {f'api_endpoint': repr(self.api_endpoint), f'predict_endpoint': repr(self.predict_endpoint), f'proxy_endpoint': repr(self.proxy_endpoint), f'llm_endpoint': repr(
|
|
32
|
-
self.
|
|
33
|
+
repr_dict = {f'api_endpoint': repr(self.api_endpoint), f'predict_endpoint': repr(self.predict_endpoint), f'proxy_endpoint': repr(self.proxy_endpoint), f'llm_endpoint': repr(self.llm_endpoint), f'external_chat_endpoint': repr(
|
|
34
|
+
self.external_chat_endpoint), f'dashboard_endpoint': repr(self.dashboard_endpoint), f'hosting_domain': repr(self.hosting_domain), f'public_hosting_domain': repr(self.public_hosting_domain)}
|
|
33
35
|
class_name = "ApiEndpoint"
|
|
34
36
|
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
35
37
|
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
@@ -43,5 +45,5 @@ class ApiEndpoint(AbstractApiClass):
|
|
|
43
45
|
dict: The dict value representation of the class parameters
|
|
44
46
|
"""
|
|
45
47
|
resp = {'api_endpoint': self.api_endpoint, 'predict_endpoint': self.predict_endpoint, 'proxy_endpoint': self.proxy_endpoint, 'llm_endpoint': self.llm_endpoint,
|
|
46
|
-
'external_chat_endpoint': self.external_chat_endpoint, 'dashboard_endpoint': self.dashboard_endpoint, 'hosting_domain': self.hosting_domain}
|
|
48
|
+
'external_chat_endpoint': self.external_chat_endpoint, 'dashboard_endpoint': self.dashboard_endpoint, 'hosting_domain': self.hosting_domain, 'public_hosting_domain': self.public_hosting_domain}
|
|
47
49
|
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from .return_class import AbstractApiClass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AuditLog(AbstractApiClass):
|
|
5
|
+
"""
|
|
6
|
+
An audit log entry
|
|
7
|
+
|
|
8
|
+
Args:
|
|
9
|
+
client (ApiClient): An authenticated API Client instance
|
|
10
|
+
createdAt (str): The timestamp when the audit log entry was created
|
|
11
|
+
userId (str): The hashed ID of the user who performed the action
|
|
12
|
+
objectId (str): The hashed ID of the object that was affected by the action
|
|
13
|
+
action (str): The action performed (create, modify, start, stop, delete, share, hide, credential_change, login)
|
|
14
|
+
source (str): The source of the action (api, ui, pipeline, cli, system)
|
|
15
|
+
refreshPolicyId (str): The hashed ID of the refresh policy if applicable
|
|
16
|
+
pipelineId (str): The hashed ID of the pipeline if applicable
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self, client, createdAt=None, userId=None, objectId=None, action=None, source=None, refreshPolicyId=None, pipelineId=None):
|
|
20
|
+
super().__init__(client, None)
|
|
21
|
+
self.created_at = createdAt
|
|
22
|
+
self.user_id = userId
|
|
23
|
+
self.object_id = objectId
|
|
24
|
+
self.action = action
|
|
25
|
+
self.source = source
|
|
26
|
+
self.refresh_policy_id = refreshPolicyId
|
|
27
|
+
self.pipeline_id = pipelineId
|
|
28
|
+
self.deprecated_keys = {}
|
|
29
|
+
|
|
30
|
+
def __repr__(self):
|
|
31
|
+
repr_dict = {f'created_at': repr(self.created_at), f'user_id': repr(self.user_id), f'object_id': repr(self.object_id), f'action': repr(
|
|
32
|
+
self.action), f'source': repr(self.source), f'refresh_policy_id': repr(self.refresh_policy_id), f'pipeline_id': repr(self.pipeline_id)}
|
|
33
|
+
class_name = "AuditLog"
|
|
34
|
+
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
35
|
+
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
36
|
+
return f"{class_name}({repr_str})"
|
|
37
|
+
|
|
38
|
+
def to_dict(self):
|
|
39
|
+
"""
|
|
40
|
+
Get a dict representation of the parameters in this class
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
dict: The dict value representation of the class parameters
|
|
44
|
+
"""
|
|
45
|
+
resp = {'created_at': self.created_at, 'user_id': self.user_id, 'object_id': self.object_id, 'action': self.action,
|
|
46
|
+
'source': self.source, 'refresh_policy_id': self.refresh_policy_id, 'pipeline_id': self.pipeline_id}
|
|
47
|
+
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
|
|
@@ -180,6 +180,7 @@ from .upload_part import UploadPart
|
|
|
180
180
|
from .use_case import UseCase
|
|
181
181
|
from .use_case_requirements import UseCaseRequirements
|
|
182
182
|
from .user import User
|
|
183
|
+
from .user_group_object_permission import UserGroupObjectPermission
|
|
183
184
|
from .web_page_response import WebPageResponse
|
|
184
185
|
from .web_search_response import WebSearchResponse
|
|
185
186
|
from .webhook import Webhook
|
|
@@ -218,17 +219,20 @@ async def sse_asynchronous_generator(endpoint: str, headers: dict, body: dict):
|
|
|
218
219
|
async with aiohttp.request('POST', endpoint, json=body, headers=headers, timeout=aiohttp.ClientTimeout(total=0)) as response:
|
|
219
220
|
async for line in response.content:
|
|
220
221
|
if line:
|
|
221
|
-
streamed_responses = line.decode('utf-8').split('\n
|
|
222
|
+
streamed_responses = line.decode('utf-8').split('\n')
|
|
222
223
|
for resp in streamed_responses:
|
|
223
224
|
if resp:
|
|
224
225
|
resp = resp.strip()
|
|
225
226
|
if resp:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
try:
|
|
228
|
+
resp = json.loads(resp)
|
|
229
|
+
resp = {snake_case(
|
|
230
|
+
key): value for key, value in resp.items()}
|
|
231
|
+
if 'ping' in resp:
|
|
232
|
+
continue
|
|
233
|
+
yield resp
|
|
234
|
+
except Exception:
|
|
235
|
+
pass
|
|
232
236
|
|
|
233
237
|
|
|
234
238
|
def _requests_retry_session(retries=5, backoff_factor=0.1, status_forcelist=(502, 503, 504), session=None, retry_500: bool = False):
|
|
@@ -663,7 +667,7 @@ class BaseApiClient:
|
|
|
663
667
|
client_options (ClientOptions): Optional API client configurations
|
|
664
668
|
skip_version_check (bool): If true, will skip checking the server's current API version on initializing the client
|
|
665
669
|
"""
|
|
666
|
-
client_version = '1.4.
|
|
670
|
+
client_version = '1.4.67'
|
|
667
671
|
|
|
668
672
|
def __init__(self, api_key: str = None, server: str = None, client_options: ClientOptions = None, skip_version_check: bool = False, include_tb: bool = False):
|
|
669
673
|
self.api_key = api_key
|
|
@@ -2777,6 +2781,14 @@ class ReadOnlyClient(BaseApiClient):
|
|
|
2777
2781
|
DeploymentConversation: The deployment conversation."""
|
|
2778
2782
|
return self._proxy_request('getDeploymentConversation', 'GET', query_params={'deploymentConversationId': deployment_conversation_id, 'externalSessionId': external_session_id, 'deploymentId': deployment_id, 'filterIntermediateConversationEvents': filter_intermediate_conversation_events, 'getUnusedDocumentUploads': get_unused_document_uploads, 'start': start, 'limit': limit, 'includeAllVersions': include_all_versions}, parse_type=DeploymentConversation, is_sync=True)
|
|
2779
2783
|
|
|
2784
|
+
def get_deployment_conversation_file(self, deployment_conversation_id: str, file_path: str) -> io.BytesIO:
|
|
2785
|
+
"""Gets a deployment conversation file.
|
|
2786
|
+
|
|
2787
|
+
Args:
|
|
2788
|
+
deployment_conversation_id (str): Unique ID of the conversation.
|
|
2789
|
+
file_path (str): The path of the file to get."""
|
|
2790
|
+
return self._proxy_request('getDeploymentConversationFile', 'GET', query_params={'deploymentConversationId': deployment_conversation_id, 'filePath': file_path}, is_sync=True, streamable_response=True)
|
|
2791
|
+
|
|
2780
2792
|
def list_deployment_conversations(self, deployment_id: str = None, external_application_id: str = None, conversation_type: Union[DeploymentConversationType, str] = None, fetch_last_llm_info: bool = False, limit: int = None, search: str = None) -> List[DeploymentConversation]:
|
|
2781
2793
|
"""Lists all conversations for the given deployment and current user.
|
|
2782
2794
|
|
|
@@ -2803,6 +2815,16 @@ class ReadOnlyClient(BaseApiClient):
|
|
|
2803
2815
|
DeploymentConversationExport: The deployment conversation html export."""
|
|
2804
2816
|
return self._proxy_request('exportDeploymentConversation', 'GET', query_params={'deploymentConversationId': deployment_conversation_id, 'externalSessionId': external_session_id}, parse_type=DeploymentConversationExport, is_sync=True)
|
|
2805
2817
|
|
|
2818
|
+
def list_user_group_object_permissions(self) -> List[UserGroupObjectPermission]:
|
|
2819
|
+
"""List all user groups permissions associated with the objects in the organization.
|
|
2820
|
+
|
|
2821
|
+
If no associated user groups, the object is public among developers and admins.
|
|
2822
|
+
|
|
2823
|
+
|
|
2824
|
+
Returns:
|
|
2825
|
+
list[UserGroupObjectPermission]: List of user group object permissions in the organization."""
|
|
2826
|
+
return self._call_api('listUserGroupObjectPermissions', 'GET', query_params={}, parse_type=UserGroupObjectPermission)
|
|
2827
|
+
|
|
2806
2828
|
def get_app_user_group(self, user_group_id: str) -> AppUserGroup:
|
|
2807
2829
|
"""Gets an App User Group.
|
|
2808
2830
|
|
|
@@ -7691,6 +7713,14 @@ class ApiClient(ReadOnlyClient):
|
|
|
7691
7713
|
deployment_id, deployment_token) if deployment_token else None
|
|
7692
7714
|
return self._call_api('getConversationResponseWithBinaryData', 'POST', query_params={'deploymentId': deployment_id, 'deploymentToken': deployment_token}, data={'message': json.dumps(message) if (message is not None and not isinstance(message, str)) else message, 'deploymentConversationId': json.dumps(deployment_conversation_id) if (deployment_conversation_id is not None and not isinstance(deployment_conversation_id, str)) else deployment_conversation_id, 'externalSessionId': json.dumps(external_session_id) if (external_session_id is not None and not isinstance(external_session_id, str)) else external_session_id, 'llmName': json.dumps(llm_name) if (llm_name is not None and not isinstance(llm_name, str)) else llm_name, 'numCompletionTokens': json.dumps(num_completion_tokens) if (num_completion_tokens is not None and not isinstance(num_completion_tokens, str)) else num_completion_tokens, 'systemMessage': json.dumps(system_message) if (system_message is not None and not isinstance(system_message, str)) else system_message, 'temperature': json.dumps(temperature) if (temperature is not None and not isinstance(temperature, str)) else temperature, 'filterKeyValues': json.dumps(filter_key_values) if (filter_key_values is not None and not isinstance(filter_key_values, str)) else filter_key_values, 'searchScoreCutoff': json.dumps(search_score_cutoff) if (search_score_cutoff is not None and not isinstance(search_score_cutoff, str)) else search_score_cutoff, 'chatConfig': json.dumps(chat_config) if (chat_config is not None and not isinstance(chat_config, str)) else chat_config}, files=attachments, server_override=prediction_url)
|
|
7693
7715
|
|
|
7716
|
+
def get_deep_agent_response(self, message: str, deployment_conversation_id: str = None) -> Dict:
|
|
7717
|
+
"""Return a DeepAgent response with generated files if any, based on the input message.
|
|
7718
|
+
|
|
7719
|
+
Args:
|
|
7720
|
+
message (str): The user's message/task for DeepAgent to complete
|
|
7721
|
+
deployment_conversation_id (str): The unique identifier of a deployment conversation to continue. If not specified, a new one will be created."""
|
|
7722
|
+
return self._proxy_request('getDeepAgentResponse', 'POST', query_params={}, body={'message': message, 'deploymentConversationId': deployment_conversation_id}, is_sync=True)
|
|
7723
|
+
|
|
7694
7724
|
def get_search_results(self, deployment_token: str, deployment_id: str, query_data: dict, num: int = 15) -> Dict:
|
|
7695
7725
|
"""Return the most relevant search results to the search query from the uploaded documents.
|
|
7696
7726
|
|
|
@@ -118,6 +118,15 @@ class DeploymentConversation(AbstractApiClass):
|
|
|
118
118
|
"""
|
|
119
119
|
return self.client.get_deployment_conversation(self.deployment_conversation_id, external_session_id, deployment_id, filter_intermediate_conversation_events, get_unused_document_uploads, start, limit, include_all_versions)
|
|
120
120
|
|
|
121
|
+
def get_file(self, file_path: str):
|
|
122
|
+
"""
|
|
123
|
+
Gets a deployment conversation file.
|
|
124
|
+
|
|
125
|
+
Args:
|
|
126
|
+
file_path (str): The path of the file to get.
|
|
127
|
+
"""
|
|
128
|
+
return self.client.get_deployment_conversation_file(self.deployment_conversation_id, file_path)
|
|
129
|
+
|
|
121
130
|
def delete(self, deployment_id: str = None):
|
|
122
131
|
"""
|
|
123
132
|
Delete a Deployment Conversation.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from .return_class import AbstractApiClass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DocumentRetrieverVersionLogs(AbstractApiClass):
|
|
5
|
+
"""
|
|
6
|
+
Logs from document retriever version.
|
|
7
|
+
|
|
8
|
+
Args:
|
|
9
|
+
client (ApiClient): An authenticated API Client instance
|
|
10
|
+
logs (list[str]): List of logs from document retriever version.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def __init__(self, client, logs=None):
|
|
14
|
+
super().__init__(client, None)
|
|
15
|
+
self.logs = logs
|
|
16
|
+
self.deprecated_keys = {}
|
|
17
|
+
|
|
18
|
+
def __repr__(self):
|
|
19
|
+
repr_dict = {f'logs': repr(self.logs)}
|
|
20
|
+
class_name = "DocumentRetrieverVersionLogs"
|
|
21
|
+
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
22
|
+
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
23
|
+
return f"{class_name}({repr_str})"
|
|
24
|
+
|
|
25
|
+
def to_dict(self):
|
|
26
|
+
"""
|
|
27
|
+
Get a dict representation of the parameters in this class
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
dict: The dict value representation of the class parameters
|
|
31
|
+
"""
|
|
32
|
+
resp = {'logs': self.logs}
|
|
33
|
+
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
|
|
@@ -23,6 +23,7 @@ class HostedAppContainer(AbstractApiClass):
|
|
|
23
23
|
lifecycle (str): Container lifecycle status (PENDING/DEPLOYING/ACTIVE/FAILED/STOPPED/DELETING)
|
|
24
24
|
status (str): Container status (RUNNING/STOPPED/DEPLOYING/FAILED)
|
|
25
25
|
deployedStatus (str): Deployment status (PENDING/ACTIVE/STOPPED/NOT_DEPLOYED)
|
|
26
|
+
accessLevel (str): Access Level (PUBLIC/PRIVATE/DEDICATED)
|
|
26
27
|
hostname (str): Hostname of the deployed app
|
|
27
28
|
llmArtifactId (id): The ID of the LLM artifact
|
|
28
29
|
artifactType (str): The type of the artifact
|
|
@@ -33,7 +34,7 @@ class HostedAppContainer(AbstractApiClass):
|
|
|
33
34
|
parentConversationId (id): The ID of the parent conversation
|
|
34
35
|
"""
|
|
35
36
|
|
|
36
|
-
def __init__(self, client, hostedAppContainerId=None, hostedAppId=None, deploymentConversationId=None, hostedAppVersion=None, name=None, createdAt=None, updatedAt=None, containerImage=None, route=None, appConfig=None, isDev=None, isDeployable=None, isPreviewAvailable=None, lifecycle=None, status=None, deployedStatus=None, hostname=None, llmArtifactId=None, artifactType=None, deployedLlmArtifactId=None, hasDatabase=None, hasStorage=None, webAppProjectId=None, parentConversationId=None):
|
|
37
|
+
def __init__(self, client, hostedAppContainerId=None, hostedAppId=None, deploymentConversationId=None, hostedAppVersion=None, name=None, createdAt=None, updatedAt=None, containerImage=None, route=None, appConfig=None, isDev=None, isDeployable=None, isPreviewAvailable=None, lifecycle=None, status=None, deployedStatus=None, accessLevel=None, hostname=None, llmArtifactId=None, artifactType=None, deployedLlmArtifactId=None, hasDatabase=None, hasStorage=None, webAppProjectId=None, parentConversationId=None):
|
|
37
38
|
super().__init__(client, hostedAppContainerId)
|
|
38
39
|
self.hosted_app_container_id = hostedAppContainerId
|
|
39
40
|
self.hosted_app_id = hostedAppId
|
|
@@ -51,6 +52,7 @@ class HostedAppContainer(AbstractApiClass):
|
|
|
51
52
|
self.lifecycle = lifecycle
|
|
52
53
|
self.status = status
|
|
53
54
|
self.deployed_status = deployedStatus
|
|
55
|
+
self.access_level = accessLevel
|
|
54
56
|
self.hostname = hostname
|
|
55
57
|
self.llm_artifact_id = llmArtifactId
|
|
56
58
|
self.artifact_type = artifactType
|
|
@@ -63,7 +65,7 @@ class HostedAppContainer(AbstractApiClass):
|
|
|
63
65
|
|
|
64
66
|
def __repr__(self):
|
|
65
67
|
repr_dict = {f'hosted_app_container_id': repr(self.hosted_app_container_id), f'hosted_app_id': repr(self.hosted_app_id), f'deployment_conversation_id': repr(self.deployment_conversation_id), f'hosted_app_version': repr(self.hosted_app_version), f'name': repr(self.name), f'created_at': repr(self.created_at), f'updated_at': repr(self.updated_at), f'container_image': repr(self.container_image), f'route': repr(self.route), f'app_config': repr(self.app_config), f'is_dev': repr(self.is_dev), f'is_deployable': repr(self.is_deployable), f'is_preview_available': repr(
|
|
66
|
-
self.is_preview_available), f'lifecycle': repr(self.lifecycle), f'status': repr(self.status), f'deployed_status': repr(self.deployed_status), f'hostname': repr(self.hostname), f'llm_artifact_id': repr(self.llm_artifact_id), f'artifact_type': repr(self.artifact_type), f'deployed_llm_artifact_id': repr(self.deployed_llm_artifact_id), f'has_database': repr(self.has_database), f'has_storage': repr(self.has_storage), f'web_app_project_id': repr(self.web_app_project_id), f'parent_conversation_id': repr(self.parent_conversation_id)}
|
|
68
|
+
self.is_preview_available), f'lifecycle': repr(self.lifecycle), f'status': repr(self.status), f'deployed_status': repr(self.deployed_status), f'access_level': repr(self.access_level), f'hostname': repr(self.hostname), f'llm_artifact_id': repr(self.llm_artifact_id), f'artifact_type': repr(self.artifact_type), f'deployed_llm_artifact_id': repr(self.deployed_llm_artifact_id), f'has_database': repr(self.has_database), f'has_storage': repr(self.has_storage), f'web_app_project_id': repr(self.web_app_project_id), f'parent_conversation_id': repr(self.parent_conversation_id)}
|
|
67
69
|
class_name = "HostedAppContainer"
|
|
68
70
|
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
69
71
|
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
@@ -76,6 +78,6 @@ class HostedAppContainer(AbstractApiClass):
|
|
|
76
78
|
Returns:
|
|
77
79
|
dict: The dict value representation of the class parameters
|
|
78
80
|
"""
|
|
79
|
-
resp = {'hosted_app_container_id': self.hosted_app_container_id, 'hosted_app_id': self.hosted_app_id, 'deployment_conversation_id': self.deployment_conversation_id, 'hosted_app_version': self.hosted_app_version, 'name': self.name, 'created_at': self.created_at, 'updated_at': self.updated_at, 'container_image': self.container_image, 'route': self.route, 'app_config': self.app_config, 'is_dev': self.is_dev, 'is_deployable': self.is_deployable,
|
|
80
|
-
'
|
|
81
|
+
resp = {'hosted_app_container_id': self.hosted_app_container_id, 'hosted_app_id': self.hosted_app_id, 'deployment_conversation_id': self.deployment_conversation_id, 'hosted_app_version': self.hosted_app_version, 'name': self.name, 'created_at': self.created_at, 'updated_at': self.updated_at, 'container_image': self.container_image, 'route': self.route, 'app_config': self.app_config, 'is_dev': self.is_dev, 'is_deployable': self.is_deployable, 'is_preview_available': self.is_preview_available,
|
|
82
|
+
'lifecycle': self.lifecycle, 'status': self.status, 'deployed_status': self.deployed_status, 'access_level': self.access_level, 'hostname': self.hostname, 'llm_artifact_id': self.llm_artifact_id, 'artifact_type': self.artifact_type, 'deployed_llm_artifact_id': self.deployed_llm_artifact_id, 'has_database': self.has_database, 'has_storage': self.has_storage, 'web_app_project_id': self.web_app_project_id, 'parent_conversation_id': self.parent_conversation_id}
|
|
81
83
|
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
|
|
@@ -425,6 +425,14 @@ class PredictionClient(BaseApiClient):
|
|
|
425
425
|
deployment_id, deployment_token) if deployment_token else None
|
|
426
426
|
return self._call_api('getConversationResponseWithBinaryData', 'POST', query_params={'deploymentId': deployment_id, 'deploymentToken': deployment_token}, data={'message': json.dumps(message) if (message is not None and not isinstance(message, str)) else message, 'deploymentConversationId': json.dumps(deployment_conversation_id) if (deployment_conversation_id is not None and not isinstance(deployment_conversation_id, str)) else deployment_conversation_id, 'externalSessionId': json.dumps(external_session_id) if (external_session_id is not None and not isinstance(external_session_id, str)) else external_session_id, 'llmName': json.dumps(llm_name) if (llm_name is not None and not isinstance(llm_name, str)) else llm_name, 'numCompletionTokens': json.dumps(num_completion_tokens) if (num_completion_tokens is not None and not isinstance(num_completion_tokens, str)) else num_completion_tokens, 'systemMessage': json.dumps(system_message) if (system_message is not None and not isinstance(system_message, str)) else system_message, 'temperature': json.dumps(temperature) if (temperature is not None and not isinstance(temperature, str)) else temperature, 'filterKeyValues': json.dumps(filter_key_values) if (filter_key_values is not None and not isinstance(filter_key_values, str)) else filter_key_values, 'searchScoreCutoff': json.dumps(search_score_cutoff) if (search_score_cutoff is not None and not isinstance(search_score_cutoff, str)) else search_score_cutoff, 'chatConfig': json.dumps(chat_config) if (chat_config is not None and not isinstance(chat_config, str)) else chat_config}, files=attachments, server_override=prediction_url)
|
|
427
427
|
|
|
428
|
+
def get_deep_agent_response(self, message: str, deployment_conversation_id: str = None) -> Dict:
|
|
429
|
+
"""Return a DeepAgent response with generated files if any, based on the input message.
|
|
430
|
+
|
|
431
|
+
Args:
|
|
432
|
+
message (str): The user's message/task for DeepAgent to complete
|
|
433
|
+
deployment_conversation_id (str): The unique identifier of a deployment conversation to continue. If not specified, a new one will be created."""
|
|
434
|
+
return self._proxy_request('getDeepAgentResponse', 'POST', query_params={}, body={'message': message, 'deploymentConversationId': deployment_conversation_id}, is_sync=True)
|
|
435
|
+
|
|
428
436
|
def get_search_results(self, deployment_token: str, deployment_id: str, query_data: dict, num: int = 15) -> Dict:
|
|
429
437
|
"""Return the most relevant search results to the search query from the uploaded documents.
|
|
430
438
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from .return_class import AbstractApiClass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class UserGroupObjectPermission(AbstractApiClass):
|
|
5
|
+
"""
|
|
6
|
+
A user group object permission
|
|
7
|
+
|
|
8
|
+
Args:
|
|
9
|
+
client (ApiClient): An authenticated API Client instance
|
|
10
|
+
userGroupId (str): The unique identifier of the user group.
|
|
11
|
+
userGroupName (str): The name of the user group.
|
|
12
|
+
objectId (str): The unique identifier of the object.
|
|
13
|
+
permission (str): The permission level (e.g., 'ALL').
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(self, client, userGroupId=None, userGroupName=None, objectId=None, permission=None):
|
|
17
|
+
super().__init__(client, None)
|
|
18
|
+
self.user_group_id = userGroupId
|
|
19
|
+
self.user_group_name = userGroupName
|
|
20
|
+
self.object_id = objectId
|
|
21
|
+
self.permission = permission
|
|
22
|
+
self.deprecated_keys = {}
|
|
23
|
+
|
|
24
|
+
def __repr__(self):
|
|
25
|
+
repr_dict = {f'user_group_id': repr(self.user_group_id), f'user_group_name': repr(
|
|
26
|
+
self.user_group_name), f'object_id': repr(self.object_id), f'permission': repr(self.permission)}
|
|
27
|
+
class_name = "UserGroupObjectPermission"
|
|
28
|
+
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
29
|
+
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
30
|
+
return f"{class_name}({repr_str})"
|
|
31
|
+
|
|
32
|
+
def to_dict(self):
|
|
33
|
+
"""
|
|
34
|
+
Get a dict representation of the parameters in this class
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
dict: The dict value representation of the class parameters
|
|
38
|
+
"""
|
|
39
|
+
resp = {'user_group_id': self.user_group_id, 'user_group_name': self.user_group_name,
|
|
40
|
+
'object_id': self.object_id, 'permission': self.permission}
|
|
41
|
+
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
|
|
@@ -26,6 +26,7 @@ abacusai/app_user_group_sign_in_token.py
|
|
|
26
26
|
abacusai/application_connector.py
|
|
27
27
|
abacusai/audio_gen_settings.py
|
|
28
28
|
abacusai/audio_url_result.py
|
|
29
|
+
abacusai/audit_log.py
|
|
29
30
|
abacusai/batch_prediction.py
|
|
30
31
|
abacusai/batch_prediction_version.py
|
|
31
32
|
abacusai/batch_prediction_version_logs.py
|
|
@@ -89,6 +90,7 @@ abacusai/document_data.py
|
|
|
89
90
|
abacusai/document_retriever.py
|
|
90
91
|
abacusai/document_retriever_lookup_result.py
|
|
91
92
|
abacusai/document_retriever_version.py
|
|
93
|
+
abacusai/document_retriever_version_logs.py
|
|
92
94
|
abacusai/drift_distribution.py
|
|
93
95
|
abacusai/drift_distributions.py
|
|
94
96
|
abacusai/eda.py
|
|
@@ -275,6 +277,7 @@ abacusai/use_case.py
|
|
|
275
277
|
abacusai/use_case_requirements.py
|
|
276
278
|
abacusai/user.py
|
|
277
279
|
abacusai/user_exception.py
|
|
280
|
+
abacusai/user_group_object_permission.py
|
|
278
281
|
abacusai/video_gen_costs.py
|
|
279
282
|
abacusai/video_gen_model.py
|
|
280
283
|
abacusai/video_gen_model_options.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|