abacusai 1.4.65__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.65 → abacusai-1.4.67}/PKG-INFO +1 -1
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/__init__.py +4 -1
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/ai_agents.py +6 -2
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/enums.py +2 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/model.py +3 -1
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_endpoint.py +6 -4
- abacusai-1.4.67/abacusai/audit_log.py +47 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/client.py +100 -9
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/deployment_conversation.py +16 -5
- abacusai-1.4.67/abacusai/document_retriever_version_logs.py +33 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hosted_app_container.py +6 -4
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hostname_info.py +6 -4
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/image_gen_settings.py +6 -4
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/prediction_client.py +8 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/project.py +10 -0
- abacusai-1.4.67/abacusai/user_group_object_permission.py +41 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/video_gen_costs.py +5 -7
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/video_gen_settings.py +6 -4
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai.egg-info/PKG-INFO +1 -1
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai.egg-info/SOURCES.txt +3 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/setup.py +1 -1
- {abacusai-1.4.65 → abacusai-1.4.67}/LICENSE +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/README.md +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/abacus_api.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/address.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/agent.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/agent_chat_message.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/agent_conversation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/agent_data_document_info.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/agent_data_execution_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/agent_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/ai_building_task.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/algorithm.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/annotation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/annotation_config.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/annotation_document.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/annotation_entry.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/annotations_status.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/__init__.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/abstract.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/ai_chat.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/batch_prediction.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/blob_input.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/connectors.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/dataset.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/dataset_application_connector.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/deployment.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/document_retriever.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/feature_group.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/monitor.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/monitor_alert.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/project.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/python_functions.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/refresh.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_class/segments.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_client_utils.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/api_key.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/app_user_group.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/app_user_group_sign_in_token.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/application_connector.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/audio_gen_settings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/audio_url_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/batch_prediction.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/batch_prediction_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/batch_prediction_version_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/bot_info.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/categorical_range_violation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chat_message.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chat_session.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chatllm_computer.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chatllm_computer_status.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chatllm_memory.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chatllm_project.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chatllm_project_permissions.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chatllm_referral_invite.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/chatllm_task.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_agent_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_autocomplete_edit_prediction_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_autocomplete_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_bot.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_edit.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_edit_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_edits.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_embeddings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_llm_changed_files.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_source.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_suggestion_validation_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/code_summary_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/codellm_embedding_constants.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/compute_point_info.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/concatenation_config.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/constants_autocomplete_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/cpu_gpu_memory_specs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/cryptography.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/custom_chat_instructions.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/custom_domain.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/custom_loss_function.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/custom_metric.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/custom_metric_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/custom_train_function_info.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/data_consistency_duplication.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/data_metrics.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/data_prep_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/data_quality_results.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/data_upload_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/database_column_feature_mapping.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/database_connector.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/database_connector_column.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/database_connector_schema.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/dataset.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/dataset_column.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/dataset_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/dataset_version_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/default_llm.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/deployment.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/deployment_auth_token.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/deployment_conversation_event.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/deployment_conversation_export.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/deployment_statistics.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/document_data.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/document_retriever.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/document_retriever_lookup_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/document_retriever_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/drift_distribution.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/drift_distributions.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda_chart_description.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda_collinearity.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda_data_consistency.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda_feature_association.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda_feature_collinearity.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda_forecasting_analysis.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/eda_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/edit_image_models.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/embedding_feature_drift_distribution.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/entri_auth_token.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/execute_feature_group_operation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/external_application.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/external_invite.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/extracted_fields.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_distribution.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_drift_record.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_drift_summary.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_document.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_export.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_export_config.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_export_download_url.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_lineage.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_refresh_export_config.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_row.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_row_process.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_row_process_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_row_process_summary.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_template.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_template_variable_options.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_group_version_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_importance.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_mapping.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/feature_performance_analysis.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/file_connector.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/file_connector_instructions.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/file_connector_verification.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/finetuned_pretrained_model.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/forecasting_analysis_graph_data.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/forecasting_monitor_item_analysis.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/forecasting_monitor_summary.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/fs_entry.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/function_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/generated_pit_feature_config_option.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/global_context.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/graph_dashboard.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/holdout_analysis.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/holdout_analysis_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hosted_app.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hosted_app_file_read.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hosted_artifact.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hosted_database.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hosted_database_snapshot.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hosted_model_token.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/hume_voice.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/image_gen_model.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/image_gen_model_options.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/indexing_config.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/inferred_database_column_to_feature_mappings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/inferred_feature_mappings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/item_statistics.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/lip_sync_gen_settings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_app.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_artifact.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_code_block.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_execution_preview.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_execution_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_generated_code.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_input.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_parameters.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/llm_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/mcp_config.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/mcp_server.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/mcp_server_connection.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/mcp_server_query_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/memory_options.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/messaging_connector_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_artifacts_export.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_blueprint_export.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_blueprint_stage.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_location.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_metrics.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_monitor.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_monitor_org_summary.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_monitor_summary.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_monitor_summary_from_org.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_monitor_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_monitor_version_metric_data.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_training_type_for_deployment.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_upload.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/model_version_feature_group_schema.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/modification_lock_info.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/module.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/monitor_alert.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/monitor_alert_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/monitor_drift_and_distributions.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/natural_language_explanation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/nested_feature.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/nested_feature_schema.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/news_search_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/nlp_chat_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/notebook_completion.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/notebook_template.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/null_violation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/organization_external_application_settings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/organization_group.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/organization_search_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/organization_secret.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/page_data.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline_reference.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline_step.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline_step_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline_step_version_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline_step_version_reference.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/pipeline_version_logs.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/playground_text.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/point_in_time_feature.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/point_in_time_feature_info.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/point_in_time_group.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/point_in_time_group_feature.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/prediction_dataset.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/prediction_feature_group.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/prediction_input.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/prediction_log_record.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/prediction_operator.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/prediction_operator_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/presentation_export_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/problem_type.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/project_config.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/project_feature_group.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/project_feature_group_schema.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/project_feature_group_schema_version.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/project_validation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/python_function.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/python_function_validator.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/python_plot_function.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/range_violation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/realtime_monitor.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/refresh_pipeline_run.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/refresh_policy.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/refresh_schedule.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/regenerate_llm_external_application.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/resolved_feature_group_template.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/return_class.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/routing_action.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/schema.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/session_summary.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/session_transcript.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/session_transcripts.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/sftp_key.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/streaming_auth_token.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/streaming_client.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/streaming_connector.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/streaming_row_count.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/streaming_sample_code.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/sts_gen_settings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/stt_gen_model.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/stt_gen_model_options.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/stt_gen_settings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/template_node_details.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/test_point_predictions.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/tone_details.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/training_config_options.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/tts_gen_settings.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/twitter_search_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/unified_connector.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/upload.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/upload_part.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/use_case.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/use_case_requirements.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/user.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/user_exception.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/video_gen_model.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/video_gen_model_options.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/video_search_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/voice_gen_details.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/web_app_conversation.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/web_app_domain.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/web_page_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/web_search_response.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/web_search_result.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/webhook.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/workflow_graph_node_details.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai/workflow_node_template.py +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai.egg-info/dependency_links.txt +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai.egg-info/requires.txt +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai.egg-info/top_level.txt +0 -0
- {abacusai-1.4.65 → abacusai-1.4.67}/abacusai.egg-info/zip-safe +0 -0
- {abacusai-1.4.65 → 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.
|
|
@@ -503,7 +504,7 @@ class ChatLLMTrainingConfig(TrainingConfig):
|
|
|
503
504
|
mask_pii (bool): Mask PII in the prompts and uploaded documents before sending it to the LLM. Only available for Enterprise users and will cause validation errors if set to True for ChatLLM Teams users.
|
|
504
505
|
builtin_tools (List[SystemConnectorTool]): List of builtin system connector tools to use in the ChatLLM. Using builtin tools does not require enabling tool bar (enable_tool_bar flag).
|
|
505
506
|
mcp_servers (List[str]): List of names of MCP servers to use in the ChatLLM. This should not be used with document_retrievers.
|
|
506
|
-
agentic_loop_mode (bool):
|
|
507
|
+
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.
|
|
507
508
|
"""
|
|
508
509
|
document_retrievers: List[str] = dataclasses.field(default=None)
|
|
509
510
|
num_completion_tokens: int = dataclasses.field(default=None)
|
|
@@ -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
|
|
|
@@ -2813,6 +2835,16 @@ class ReadOnlyClient(BaseApiClient):
|
|
|
2813
2835
|
AppUserGroup: The App User Group."""
|
|
2814
2836
|
return self._call_api('getAppUserGroup', 'GET', query_params={'userGroupId': user_group_id}, parse_type=AppUserGroup)
|
|
2815
2837
|
|
|
2838
|
+
def get_app_user_group_from_name(self, name: str = None) -> AppUserGroup:
|
|
2839
|
+
"""Gets an App User Group by name.
|
|
2840
|
+
|
|
2841
|
+
Args:
|
|
2842
|
+
name (str): The name of the app user group to retrieve.
|
|
2843
|
+
|
|
2844
|
+
Returns:
|
|
2845
|
+
AppUserGroup: The app user group with the specified name."""
|
|
2846
|
+
return self._call_api('getAppUserGroupFromName', 'GET', query_params={'name': name}, parse_type=AppUserGroup)
|
|
2847
|
+
|
|
2816
2848
|
def describe_external_application(self, external_application_id: str) -> ExternalApplication:
|
|
2817
2849
|
"""Describes an External Application.
|
|
2818
2850
|
|
|
@@ -5037,6 +5069,19 @@ class ApiClient(ReadOnlyClient):
|
|
|
5037
5069
|
Project: This object represents the newly created project."""
|
|
5038
5070
|
return self._call_api('createProject', 'POST', query_params={}, body={'name': name, 'useCase': use_case}, parse_type=Project)
|
|
5039
5071
|
|
|
5072
|
+
def list_projects_dashboard(self, updated_filter: int = None, limit: int = 50, since_project_id: str = None, search: str = None, starred: bool = None, tag: str = None, tags: list = None) -> dict:
|
|
5073
|
+
"""Retrieves a list of projects for dashboard display with filtering and pagination support.
|
|
5074
|
+
|
|
5075
|
+
Args:
|
|
5076
|
+
updated_filter (int): Unix timestamp to filter projects updated after this time.
|
|
5077
|
+
limit (int): The maximum number of projects to return (default: 50).
|
|
5078
|
+
since_project_id (str): The ID of the project after which the list starts for pagination.
|
|
5079
|
+
search (str): Search term to filter projects by name, creator email, or use case.
|
|
5080
|
+
starred (bool): Filter by starred status (True for starred, False for non-starred).
|
|
5081
|
+
tag (str): Filter by a single tag (deprecated, use tags instead).
|
|
5082
|
+
tags (list): List of tags to filter projects by."""
|
|
5083
|
+
return self._call_api('listProjectsDashboard', 'POST', query_params={}, body={'updatedFilter': updated_filter, 'limit': limit, 'sinceProjectId': since_project_id, 'search': search, 'starred': starred, 'tag': tag, 'tags': tags})
|
|
5084
|
+
|
|
5040
5085
|
def rename_project(self, project_id: str, name: str):
|
|
5041
5086
|
"""This method renames a project after it is created.
|
|
5042
5087
|
|
|
@@ -5136,6 +5181,15 @@ class ApiClient(ReadOnlyClient):
|
|
|
5136
5181
|
list[Feature]: A list of objects that describes the resulting feature group's schema after the feature's featureMapping is set."""
|
|
5137
5182
|
return self._call_api('setFeatureMapping', 'POST', query_params={}, body={'projectId': project_id, 'featureGroupId': feature_group_id, 'featureName': feature_name, 'featureMapping': feature_mapping, 'nestedColumnName': nested_column_name}, parse_type=Feature)
|
|
5138
5183
|
|
|
5184
|
+
def add_project_scope_for_user(self, project_id: str, email: str, scope: list):
|
|
5185
|
+
"""Add a user to a project.
|
|
5186
|
+
|
|
5187
|
+
Args:
|
|
5188
|
+
project_id (str): The project's id.
|
|
5189
|
+
email (str): The user's email.
|
|
5190
|
+
scope (list): The list of project scopes."""
|
|
5191
|
+
return self._call_api('addProjectScopeForUser', 'POST', query_params={}, body={'projectId': project_id, 'email': email, 'scope': scope})
|
|
5192
|
+
|
|
5139
5193
|
def add_annotation(self, annotation: dict, feature_group_id: str, feature_name: str, doc_id: str = None, feature_group_row_identifier: str = None, annotation_source: str = 'ui', status: str = None, comments: dict = None, project_id: str = None, save_metadata: bool = False, pages: list = None) -> AnnotationEntry:
|
|
5140
5194
|
"""Add an annotation entry to the database.
|
|
5141
5195
|
|
|
@@ -7659,6 +7713,14 @@ class ApiClient(ReadOnlyClient):
|
|
|
7659
7713
|
deployment_id, deployment_token) if deployment_token else None
|
|
7660
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)
|
|
7661
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
|
+
|
|
7662
7724
|
def get_search_results(self, deployment_token: str, deployment_id: str, query_data: dict, num: int = 15) -> Dict:
|
|
7663
7725
|
"""Return the most relevant search results to the search query from the uploaded documents.
|
|
7664
7726
|
|
|
@@ -8894,6 +8956,35 @@ class ApiClient(ReadOnlyClient):
|
|
|
8894
8956
|
deployment_id (str): The deployment this conversation belongs to. This is required if not logged in."""
|
|
8895
8957
|
return self._proxy_request('renameDeploymentConversation', 'POST', query_params={'deploymentId': deployment_id}, body={'deploymentConversationId': deployment_conversation_id, 'name': name}, is_sync=True)
|
|
8896
8958
|
|
|
8959
|
+
def add_user_group_object_permission(self, object_id: str, user_group_id: str, object_type: str, permission: str = 'ALL'):
|
|
8960
|
+
"""Add user group object permission for any object type.
|
|
8961
|
+
|
|
8962
|
+
Args:
|
|
8963
|
+
object_id (str): The ID of the object (dataset_id, project_id, external_connection_id, feature_group_id, etc.)
|
|
8964
|
+
user_group_id (str): The ID of the user group
|
|
8965
|
+
object_type (str): The type of object ('dataset', 'project', 'external_connection', 'feature_group')
|
|
8966
|
+
permission (str): The permission to grant (default: 'ALL')"""
|
|
8967
|
+
return self._call_api('addUserGroupObjectPermission', 'POST', query_params={}, body={'objectId': object_id, 'userGroupId': user_group_id, 'objectType': object_type, 'permission': permission})
|
|
8968
|
+
|
|
8969
|
+
def update_user_group_object_permission(self, object_id: str, user_group_id: str, object_type: str, permission: str = 'ALL'):
|
|
8970
|
+
"""Update user group object permission for any object type.
|
|
8971
|
+
|
|
8972
|
+
Args:
|
|
8973
|
+
object_id (str): The ID of the object (dataset_id, project_id, external_connection_id, feature_group_id, etc.)
|
|
8974
|
+
user_group_id (str): The ID of the user group
|
|
8975
|
+
object_type (str): The type of object ('dataset', 'project', 'external_connection', 'feature_group')
|
|
8976
|
+
permission (str): The permission to grant (default: 'ALL')"""
|
|
8977
|
+
return self._call_api('updateUserGroupObjectPermission', 'POST', query_params={}, body={'objectId': object_id, 'userGroupId': user_group_id, 'objectType': object_type, 'permission': permission})
|
|
8978
|
+
|
|
8979
|
+
def remove_user_group_object_permission(self, object_id: str, user_group_id: str, object_type: str):
|
|
8980
|
+
"""Remove user group object permission for any object type.
|
|
8981
|
+
|
|
8982
|
+
Args:
|
|
8983
|
+
object_id (str): The ID of the object (dataset_id, project_id, external_connection_id, feature_group_id, etc.)
|
|
8984
|
+
user_group_id (str): The ID of the user group
|
|
8985
|
+
object_type (str): The type of object ('dataset', 'project', 'external_connection', 'feature_group')"""
|
|
8986
|
+
return self._call_api('removeUserGroupObjectPermission', 'POST', query_params={}, body={'objectId': object_id, 'userGroupId': user_group_id, 'objectType': object_type})
|
|
8987
|
+
|
|
8897
8988
|
def create_app_user_group(self, name: str) -> AppUserGroup:
|
|
8898
8989
|
"""Creates a new App User Group. This User Group is used to have permissions to access the external chatbots.
|
|
8899
8990
|
|
|
@@ -9076,7 +9167,7 @@ class ApiClient(ReadOnlyClient):
|
|
|
9076
9167
|
|
|
9077
9168
|
Returns:
|
|
9078
9169
|
LlmResponse: The response from the model, raw text and parsed components."""
|
|
9079
|
-
return self._proxy_request('
|
|
9170
|
+
return self._proxy_request('evaluatePrompt', 'POST', query_params={}, body={'prompt': prompt, 'systemMessage': system_message, 'llmName': llm_name, 'maxTokens': max_tokens, 'temperature': temperature, 'messages': messages, 'responseType': response_type, 'jsonResponseSchema': json_response_schema, 'stopSequences': stop_sequences, 'topP': top_p}, parse_type=LlmResponse, is_sync=True)
|
|
9080
9171
|
|
|
9081
9172
|
def render_feature_groups_for_llm(self, feature_group_ids: List, token_budget: int = None, include_definition: bool = True) -> List[LlmInput]:
|
|
9082
9173
|
"""Encode feature groups as language model inputs.
|
|
@@ -37,12 +37,13 @@ class DeploymentConversation(AbstractApiClass):
|
|
|
37
37
|
daemonTaskId (str): The daemon task id associated with the deployment conversation.
|
|
38
38
|
parentDeploymentConversationId (str): The parent deployment conversation id associated with the deployment conversation.
|
|
39
39
|
introMessage (str): The intro message for the deployment conversation.
|
|
40
|
-
previewInfo (dict): App preview info
|
|
40
|
+
previewInfo (dict): App preview info.
|
|
41
|
+
latestContext (dict): dict containing a list of important segments for pagination in deepagent.
|
|
41
42
|
history (DeploymentConversationEvent): The history of the deployment conversation.
|
|
42
43
|
hostedArtifacts (HostedArtifact): Artifacts that have been deployed by this conversation.
|
|
43
44
|
"""
|
|
44
45
|
|
|
45
|
-
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, history={}, hostedArtifacts={}):
|
|
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={}):
|
|
46
47
|
super().__init__(client, deploymentConversationId)
|
|
47
48
|
self.deployment_conversation_id = deploymentConversationId
|
|
48
49
|
self.name = name
|
|
@@ -73,6 +74,7 @@ class DeploymentConversation(AbstractApiClass):
|
|
|
73
74
|
self.parent_deployment_conversation_id = parentDeploymentConversationId
|
|
74
75
|
self.intro_message = introMessage
|
|
75
76
|
self.preview_info = previewInfo
|
|
77
|
+
self.latest_context = latestContext
|
|
76
78
|
self.history = client._build_class(
|
|
77
79
|
DeploymentConversationEvent, history)
|
|
78
80
|
self.hosted_artifacts = client._build_class(
|
|
@@ -80,8 +82,8 @@ class DeploymentConversation(AbstractApiClass):
|
|
|
80
82
|
self.deprecated_keys = {}
|
|
81
83
|
|
|
82
84
|
def __repr__(self):
|
|
83
|
-
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(
|
|
84
|
-
self.
|
|
85
|
+
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)}
|
|
85
87
|
class_name = "DeploymentConversation"
|
|
86
88
|
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
87
89
|
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
@@ -95,7 +97,7 @@ class DeploymentConversation(AbstractApiClass):
|
|
|
95
97
|
dict: The dict value representation of the class parameters
|
|
96
98
|
"""
|
|
97
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,
|
|
98
|
-
'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, 'history': self._get_attribute_as_dict(self.history), 'hosted_artifacts': self._get_attribute_as_dict(self.hosted_artifacts)}
|
|
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)}
|
|
99
101
|
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
|
|
100
102
|
|
|
101
103
|
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):
|
|
@@ -116,6 +118,15 @@ class DeploymentConversation(AbstractApiClass):
|
|
|
116
118
|
"""
|
|
117
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)
|
|
118
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
|
+
|
|
119
130
|
def delete(self, deployment_id: str = None):
|
|
120
131
|
"""
|
|
121
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}
|
|
@@ -10,20 +10,22 @@ class HostnameInfo(AbstractApiClass):
|
|
|
10
10
|
isRootDomain (bool): Whether the hostname is a root domain
|
|
11
11
|
registrar (str): The registrar of the domain
|
|
12
12
|
suggestedFlow (str): Suggested flow for the domain
|
|
13
|
+
isCnameSupported (bool): Whether CNAME is supported for the domain
|
|
13
14
|
isAutomaticFlowAvailable (bool): Whether entri is supported for the domain
|
|
14
15
|
"""
|
|
15
16
|
|
|
16
|
-
def __init__(self, client, isRootDomain=None, registrar=None, suggestedFlow=None, isAutomaticFlowAvailable=None):
|
|
17
|
+
def __init__(self, client, isRootDomain=None, registrar=None, suggestedFlow=None, isCnameSupported=None, isAutomaticFlowAvailable=None):
|
|
17
18
|
super().__init__(client, None)
|
|
18
19
|
self.is_root_domain = isRootDomain
|
|
19
20
|
self.registrar = registrar
|
|
20
21
|
self.suggested_flow = suggestedFlow
|
|
22
|
+
self.is_cname_supported = isCnameSupported
|
|
21
23
|
self.is_automatic_flow_available = isAutomaticFlowAvailable
|
|
22
24
|
self.deprecated_keys = {}
|
|
23
25
|
|
|
24
26
|
def __repr__(self):
|
|
25
27
|
repr_dict = {f'is_root_domain': repr(self.is_root_domain), f'registrar': repr(self.registrar), f'suggested_flow': repr(
|
|
26
|
-
self.suggested_flow), f'is_automatic_flow_available': repr(self.is_automatic_flow_available)}
|
|
28
|
+
self.suggested_flow), f'is_cname_supported': repr(self.is_cname_supported), f'is_automatic_flow_available': repr(self.is_automatic_flow_available)}
|
|
27
29
|
class_name = "HostnameInfo"
|
|
28
30
|
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
29
31
|
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
@@ -36,6 +38,6 @@ class HostnameInfo(AbstractApiClass):
|
|
|
36
38
|
Returns:
|
|
37
39
|
dict: The dict value representation of the class parameters
|
|
38
40
|
"""
|
|
39
|
-
resp = {'is_root_domain': self.is_root_domain, 'registrar': self.registrar,
|
|
40
|
-
'
|
|
41
|
+
resp = {'is_root_domain': self.is_root_domain, 'registrar': self.registrar, 'suggested_flow': self.suggested_flow,
|
|
42
|
+
'is_cname_supported': self.is_cname_supported, 'is_automatic_flow_available': self.is_automatic_flow_available}
|
|
41
43
|
return {key: value for key, value in resp.items() if value is not None and key not in self.deprecated_keys}
|
|
@@ -9,18 +9,20 @@ class ImageGenSettings(AbstractApiClass):
|
|
|
9
9
|
Args:
|
|
10
10
|
client (ApiClient): An authenticated API Client instance
|
|
11
11
|
settings (dict): The settings for each model.
|
|
12
|
+
warnings (dict): The warnings for each model.
|
|
12
13
|
model (ImageGenModel): Dropdown for models available for image generation.
|
|
13
14
|
"""
|
|
14
15
|
|
|
15
|
-
def __init__(self, client, settings=None, model={}):
|
|
16
|
+
def __init__(self, client, settings=None, warnings=None, model={}):
|
|
16
17
|
super().__init__(client, None)
|
|
17
18
|
self.settings = settings
|
|
19
|
+
self.warnings = warnings
|
|
18
20
|
self.model = client._build_class(ImageGenModel, model)
|
|
19
21
|
self.deprecated_keys = {}
|
|
20
22
|
|
|
21
23
|
def __repr__(self):
|
|
22
|
-
repr_dict = {f'settings': repr(
|
|
23
|
-
self.
|
|
24
|
+
repr_dict = {f'settings': repr(self.settings), f'warnings': repr(
|
|
25
|
+
self.warnings), f'model': repr(self.model)}
|
|
24
26
|
class_name = "ImageGenSettings"
|
|
25
27
|
repr_str = ',\n '.join([f'{key}={value}' for key, value in repr_dict.items(
|
|
26
28
|
) if getattr(self, key, None) is not None and key not in self.deprecated_keys])
|
|
@@ -33,6 +35,6 @@ class ImageGenSettings(AbstractApiClass):
|
|
|
33
35
|
Returns:
|
|
34
36
|
dict: The dict value representation of the class parameters
|
|
35
37
|
"""
|
|
36
|
-
resp = {'settings': self.settings,
|
|
38
|
+
resp = {'settings': self.settings, 'warnings': self.warnings,
|
|
37
39
|
'model': self._get_attribute_as_dict(self.model)}
|
|
38
40
|
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
|
|