antfly-sdk 0.0.2.dev2__py3-none-any.whl
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.
- antfly/.gitignore +23 -0
- antfly/README.md +124 -0
- antfly/__init__.py +20 -0
- antfly/client.py +260 -0
- antfly/client_generated/__init__.py +8 -0
- antfly/client_generated/api/__init__.py +1 -0
- antfly/client_generated/api/api_key/__init__.py +1 -0
- antfly/client_generated/api/api_key/create_api_key.py +209 -0
- antfly/client_generated/api/api_key/delete_api_key.py +182 -0
- antfly/client_generated/api/api_key/list_api_keys.py +182 -0
- antfly/client_generated/api/cluster_management/__init__.py +1 -0
- antfly/client_generated/api/cluster_management/backup.py +259 -0
- antfly/client_generated/api/cluster_management/delete_secret.py +177 -0
- antfly/client_generated/api/cluster_management/get_cluster.py +147 -0
- antfly/client_generated/api/cluster_management/get_status.py +145 -0
- antfly/client_generated/api/cluster_management/list_backups.py +187 -0
- antfly/client_generated/api/cluster_management/list_secrets.py +147 -0
- antfly/client_generated/api/cluster_management/put_secret.py +200 -0
- antfly/client_generated/api/cluster_management/restore.py +215 -0
- antfly/client_generated/api/data_operations/__init__.py +1 -0
- antfly/client_generated/api/data_operations/abort_transaction_session.py +176 -0
- antfly/client_generated/api/data_operations/backup_table.py +192 -0
- antfly/client_generated/api/data_operations/batch_write.py +318 -0
- antfly/client_generated/api/data_operations/begin_transaction.py +172 -0
- antfly/client_generated/api/data_operations/cleanup_transaction_sessions.py +171 -0
- antfly/client_generated/api/data_operations/commit_transaction.py +289 -0
- antfly/client_generated/api/data_operations/commit_transaction_session.py +234 -0
- antfly/client_generated/api/data_operations/create_transaction_savepoint.py +176 -0
- antfly/client_generated/api/data_operations/get_transaction_session.py +176 -0
- antfly/client_generated/api/data_operations/linear_merge.py +338 -0
- antfly/client_generated/api/data_operations/list_transaction_sessions.py +134 -0
- antfly/client_generated/api/data_operations/lookup_key.py +206 -0
- antfly/client_generated/api/data_operations/multi_batch_write.py +248 -0
- antfly/client_generated/api/data_operations/restore_table.py +187 -0
- antfly/client_generated/api/data_operations/rollback_transaction_savepoint.py +190 -0
- antfly/client_generated/api/data_operations/stage_transaction_delete.py +197 -0
- antfly/client_generated/api/data_operations/stage_transaction_read.py +198 -0
- antfly/client_generated/api/data_operations/stage_transaction_session.py +233 -0
- antfly/client_generated/api/data_operations/stage_transaction_write.py +197 -0
- antfly/client_generated/api/default/__init__.py +1 -0
- antfly/client_generated/api/default/chat_completions.py +193 -0
- antfly/client_generated/api/default/chunk_text.py +243 -0
- antfly/client_generated/api/default/create_embedding.py +204 -0
- antfly/client_generated/api/default/extract.py +201 -0
- antfly/client_generated/api/default/generate_content.py +257 -0
- antfly/client_generated/api/default/generate_embeddings.py +204 -0
- antfly/client_generated/api/default/list_models.py +327 -0
- antfly/client_generated/api/default/read_images.py +281 -0
- antfly/client_generated/api/default/rerank_multimodal_prompts.py +204 -0
- antfly/client_generated/api/default/rerank_prompts.py +289 -0
- antfly/client_generated/api/default/rewrite_text.py +241 -0
- antfly/client_generated/api/default/transcribe_audio.py +329 -0
- antfly/client_generated/api/index_management/__init__.py +1 -0
- antfly/client_generated/api/index_management/create_index.py +209 -0
- antfly/client_generated/api/index_management/drop_index.py +174 -0
- antfly/client_generated/api/index_management/get_index.py +176 -0
- antfly/client_generated/api/index_management/list_indexes.py +171 -0
- antfly/client_generated/api/permission/__init__.py +1 -0
- antfly/client_generated/api/permission/add_permission_to_user.py +198 -0
- antfly/client_generated/api/permission/get_user_permissions.py +184 -0
- antfly/client_generated/api/permission/remove_permission_from_user.py +215 -0
- antfly/client_generated/api/query_operations/__init__.py +1 -0
- antfly/client_generated/api/query_operations/evaluate.py +211 -0
- antfly/client_generated/api/query_operations/query_builder_agent.py +202 -0
- antfly/client_generated/api/role/__init__.py +1 -0
- antfly/client_generated/api/role/add_role_to_user.py +198 -0
- antfly/client_generated/api/role/list_auth_subjects.py +147 -0
- antfly/client_generated/api/role/list_user_roles.py +169 -0
- antfly/client_generated/api/role/remove_role_from_user.py +194 -0
- antfly/client_generated/api/row_filter/__init__.py +1 -0
- antfly/client_generated/api/row_filter/get_row_filter.py +186 -0
- antfly/client_generated/api/row_filter/get_subject_row_filter.py +186 -0
- antfly/client_generated/api/row_filter/list_row_filters.py +179 -0
- antfly/client_generated/api/row_filter/list_subject_row_filters.py +174 -0
- antfly/client_generated/api/row_filter/remove_row_filter.py +182 -0
- antfly/client_generated/api/row_filter/remove_subject_row_filter.py +182 -0
- antfly/client_generated/api/row_filter/set_row_filter.py +216 -0
- antfly/client_generated/api/row_filter/set_subject_row_filter.py +207 -0
- antfly/client_generated/api/table_management/__init__.py +1 -0
- antfly/client_generated/api/table_management/drop_table.py +160 -0
- antfly/client_generated/api/table_management/get_table.py +151 -0
- antfly/client_generated/api/table_management/list_tables.py +176 -0
- antfly/client_generated/api/table_management/update_schema.py +182 -0
- antfly/client_generated/api/user/__init__.py +1 -0
- antfly/client_generated/api/user/create_user.py +196 -0
- antfly/client_generated/api/user/delete_user.py +173 -0
- antfly/client_generated/api/user/get_current_user.py +147 -0
- antfly/client_generated/api/user/get_user_by_name.py +175 -0
- antfly/client_generated/api/user/list_users.py +157 -0
- antfly/client_generated/api/user/update_user_password.py +198 -0
- antfly/client_generated/client.py +268 -0
- antfly/client_generated/errors.py +16 -0
- antfly/client_generated/models/__init__.py +1087 -0
- antfly/client_generated/models/agent_decision.py +81 -0
- antfly/client_generated/models/agent_question.py +120 -0
- antfly/client_generated/models/agent_question_kind.py +12 -0
- antfly/client_generated/models/agent_status.py +12 -0
- antfly/client_generated/models/agent_step.py +155 -0
- antfly/client_generated/models/agent_step_details.py +47 -0
- antfly/client_generated/models/agent_step_kind.py +13 -0
- antfly/client_generated/models/agent_step_status.py +10 -0
- antfly/client_generated/models/aggregation_bucket.py +156 -0
- antfly/client_generated/models/aggregation_bucket_sub_aggregations.py +60 -0
- antfly/client_generated/models/aggregation_date_range.py +81 -0
- antfly/client_generated/models/aggregation_range.py +81 -0
- antfly/client_generated/models/aggregation_result.py +160 -0
- antfly/client_generated/models/aggregation_type.py +23 -0
- antfly/client_generated/models/algebraic_aggregation_join.py +96 -0
- antfly/client_generated/models/algebraic_aggregation_join_kind.py +11 -0
- antfly/client_generated/models/algebraic_index_config.py +64 -0
- antfly/client_generated/models/algebraic_index_stats.py +329 -0
- antfly/client_generated/models/algebraic_index_stats_index_type.py +8 -0
- antfly/client_generated/models/algebraic_index_stats_planner_last_decision.py +9 -0
- antfly/client_generated/models/analyses.py +70 -0
- antfly/client_generated/models/analyses_result.py +74 -0
- antfly/client_generated/models/answer_agent_result.py +159 -0
- antfly/client_generated/models/answer_agent_steps.py +136 -0
- antfly/client_generated/models/antfly_chunker_config.py +149 -0
- antfly/client_generated/models/antfly_embedder_config.py +90 -0
- antfly/client_generated/models/antfly_generator_config.py +119 -0
- antfly/client_generated/models/antfly_reranker_config.py +77 -0
- antfly/client_generated/models/antfly_type.py +19 -0
- antfly/client_generated/models/antfly_type_2.py +19 -0
- antfly/client_generated/models/anthropic_generator_config.py +119 -0
- antfly/client_generated/models/api_key.py +202 -0
- antfly/client_generated/models/api_key_row_filter_type_0.py +50 -0
- antfly/client_generated/models/api_key_with_secret.py +220 -0
- antfly/client_generated/models/audio_chunk_options.py +72 -0
- antfly/client_generated/models/auth_subject.py +72 -0
- antfly/client_generated/models/auth_subject_kind.py +11 -0
- antfly/client_generated/models/backup_info.py +115 -0
- antfly/client_generated/models/backup_info_format.py +9 -0
- antfly/client_generated/models/backup_list_response.py +75 -0
- antfly/client_generated/models/backup_request.py +101 -0
- antfly/client_generated/models/backup_request_format.py +9 -0
- antfly/client_generated/models/backup_table_response_201.py +61 -0
- antfly/client_generated/models/batch_request.py +195 -0
- antfly/client_generated/models/batch_request_inserts.py +71 -0
- antfly/client_generated/models/batch_request_inserts_additional_property.py +47 -0
- antfly/client_generated/models/batch_response.py +79 -0
- antfly/client_generated/models/bedrock_embedder_config.py +139 -0
- antfly/client_generated/models/bedrock_generator_config.py +109 -0
- antfly/client_generated/models/bing_search_config.py +159 -0
- antfly/client_generated/models/bing_search_config_freshness.py +10 -0
- antfly/client_generated/models/bool_field_query.py +93 -0
- antfly/client_generated/models/boolean_query.py +534 -0
- antfly/client_generated/models/brave_search_config.py +169 -0
- antfly/client_generated/models/brave_search_config_freshness.py +11 -0
- antfly/client_generated/models/calendar_interval.py +14 -0
- antfly/client_generated/models/chain_condition.py +11 -0
- antfly/client_generated/models/chain_link.py +110 -0
- antfly/client_generated/models/chat_message.py +208 -0
- antfly/client_generated/models/chat_message_role.py +11 -0
- antfly/client_generated/models/chat_tool_name.py +16 -0
- antfly/client_generated/models/chat_tools_config.py +157 -0
- antfly/client_generated/models/chunk_options.py +111 -0
- antfly/client_generated/models/chunker_config.py +103 -0
- antfly/client_generated/models/chunker_config_full_text_index.py +51 -0
- antfly/client_generated/models/chunker_provider.py +9 -0
- antfly/client_generated/models/classification_step_config.py +169 -0
- antfly/client_generated/models/classification_transformation_result.py +158 -0
- antfly/client_generated/models/cluster_backup_request.py +113 -0
- antfly/client_generated/models/cluster_backup_request_format.py +9 -0
- antfly/client_generated/models/cluster_backup_response.py +93 -0
- antfly/client_generated/models/cluster_backup_response_status.py +10 -0
- antfly/client_generated/models/cluster_data_group_status.py +209 -0
- antfly/client_generated/models/cluster_data_node_status.py +197 -0
- antfly/client_generated/models/cluster_data_range_status.py +200 -0
- antfly/client_generated/models/cluster_data_replica_status.py +98 -0
- antfly/client_generated/models/cluster_data_status.py +149 -0
- antfly/client_generated/models/cluster_health.py +12 -0
- antfly/client_generated/models/cluster_restore_request.py +107 -0
- antfly/client_generated/models/cluster_restore_request_restore_mode.py +10 -0
- antfly/client_generated/models/cluster_restore_response.py +85 -0
- antfly/client_generated/models/cluster_restore_response_status.py +10 -0
- antfly/client_generated/models/cluster_status.py +114 -0
- antfly/client_generated/models/cluster_topology.py +124 -0
- antfly/client_generated/models/cohere_embedder_config.py +119 -0
- antfly/client_generated/models/cohere_embedder_config_input_type.py +11 -0
- antfly/client_generated/models/cohere_embedder_config_truncate.py +10 -0
- antfly/client_generated/models/cohere_generator_config.py +127 -0
- antfly/client_generated/models/cohere_reranker_config.py +102 -0
- antfly/client_generated/models/confidence_step_config.py +119 -0
- antfly/client_generated/models/conjunction_query.py +492 -0
- antfly/client_generated/models/create_api_key_request.py +156 -0
- antfly/client_generated/models/create_api_key_request_row_filter_type_0.py +50 -0
- antfly/client_generated/models/create_user_request.py +153 -0
- antfly/client_generated/models/create_user_request_metadata_type_0.py +52 -0
- antfly/client_generated/models/credentials.py +102 -0
- antfly/client_generated/models/date_range_string_query.py +165 -0
- antfly/client_generated/models/disjunction_query.py +501 -0
- antfly/client_generated/models/distance_metric.py +10 -0
- antfly/client_generated/models/distance_range.py +81 -0
- antfly/client_generated/models/distance_unit.py +12 -0
- antfly/client_generated/models/doc_id_query.py +84 -0
- antfly/client_generated/models/document_schema.py +85 -0
- antfly/client_generated/models/document_schema_schema.py +50 -0
- antfly/client_generated/models/duck_duck_go_search_config.py +143 -0
- antfly/client_generated/models/dynamic_template.py +141 -0
- antfly/client_generated/models/dynamic_template_match_mapping_type.py +12 -0
- antfly/client_generated/models/edge.py +144 -0
- antfly/client_generated/models/edge_direction.py +10 -0
- antfly/client_generated/models/edge_metadata.py +47 -0
- antfly/client_generated/models/edge_type_config.py +133 -0
- antfly/client_generated/models/edge_type_config_topology.py +9 -0
- antfly/client_generated/models/edges_response.py +88 -0
- antfly/client_generated/models/embedder_config.py +267 -0
- antfly/client_generated/models/embedder_provider.py +16 -0
- antfly/client_generated/models/embedding_type_1.py +70 -0
- antfly/client_generated/models/embedding_type_3.py +71 -0
- antfly/client_generated/models/embeddings_index_config.py +393 -0
- antfly/client_generated/models/embeddings_index_stats.py +146 -0
- antfly/client_generated/models/embeddings_index_stats_index_type.py +8 -0
- antfly/client_generated/models/error.py +61 -0
- antfly/client_generated/models/eval_config.py +135 -0
- antfly/client_generated/models/eval_options.py +80 -0
- antfly/client_generated/models/eval_request.py +185 -0
- antfly/client_generated/models/eval_request_context_item.py +47 -0
- antfly/client_generated/models/eval_result.py +102 -0
- antfly/client_generated/models/eval_scores.py +93 -0
- antfly/client_generated/models/eval_scores_generation.py +60 -0
- antfly/client_generated/models/eval_scores_retrieval.py +60 -0
- antfly/client_generated/models/eval_summary.py +89 -0
- antfly/client_generated/models/evaluator_name.py +20 -0
- antfly/client_generated/models/evaluator_score.py +102 -0
- antfly/client_generated/models/evaluator_score_metadata.py +47 -0
- antfly/client_generated/models/extraction_classification.py +80 -0
- antfly/client_generated/models/extraction_classification_schema.py +80 -0
- antfly/client_generated/models/extraction_entity.py +98 -0
- antfly/client_generated/models/extraction_input.py +201 -0
- antfly/client_generated/models/extraction_input_metadata.py +47 -0
- antfly/client_generated/models/extraction_object.py +152 -0
- antfly/client_generated/models/extraction_object_structures.py +47 -0
- antfly/client_generated/models/extraction_options.py +110 -0
- antfly/client_generated/models/extraction_reader_options.py +88 -0
- antfly/client_generated/models/extraction_relation.py +110 -0
- antfly/client_generated/models/extraction_relation_endpoint.py +70 -0
- antfly/client_generated/models/extraction_relation_schema.py +81 -0
- antfly/client_generated/models/extraction_request.py +113 -0
- antfly/client_generated/models/extraction_response.py +112 -0
- antfly/client_generated/models/extraction_response_object.py +8 -0
- antfly/client_generated/models/extraction_response_usage.py +47 -0
- antfly/client_generated/models/extraction_schema.py +131 -0
- antfly/client_generated/models/extraction_schema_structures.py +60 -0
- antfly/client_generated/models/extraction_structure_field_type_1.py +47 -0
- antfly/client_generated/models/extraction_structure_schema.py +74 -0
- antfly/client_generated/models/extraction_structure_schema_fields.py +76 -0
- antfly/client_generated/models/extraction_token.py +74 -0
- antfly/client_generated/models/failed_operation.py +87 -0
- antfly/client_generated/models/failed_operation_operation.py +9 -0
- antfly/client_generated/models/fetch_config.py +140 -0
- antfly/client_generated/models/field_statistics.py +98 -0
- antfly/client_generated/models/filter_spec.py +88 -0
- antfly/client_generated/models/filter_spec_operator.py +17 -0
- antfly/client_generated/models/followup_step_config.py +128 -0
- antfly/client_generated/models/foreign_column.py +82 -0
- antfly/client_generated/models/foreign_source.py +114 -0
- antfly/client_generated/models/foreign_source_type.py +8 -0
- antfly/client_generated/models/full_text_index_config.py +61 -0
- antfly/client_generated/models/full_text_index_stats.py +118 -0
- antfly/client_generated/models/full_text_index_stats_index_type.py +8 -0
- antfly/client_generated/models/fuzziness_type_1.py +8 -0
- antfly/client_generated/models/fuzzy_query.py +131 -0
- antfly/client_generated/models/generation_step_config.py +128 -0
- antfly/client_generated/models/generator_config.py +67 -0
- antfly/client_generated/models/generator_provider.py +17 -0
- antfly/client_generated/models/geo_bounding_box_query.py +101 -0
- antfly/client_generated/models/geo_bounding_polygon_query.py +107 -0
- antfly/client_generated/models/geo_distance_query.py +101 -0
- antfly/client_generated/models/geo_point.py +70 -0
- antfly/client_generated/models/geo_shape_geometry_relation.py +10 -0
- antfly/client_generated/models/get_current_user_response_200.py +122 -0
- antfly/client_generated/models/get_current_user_response_200_metadata_type_0.py +47 -0
- antfly/client_generated/models/google_embedder_config.py +120 -0
- antfly/client_generated/models/google_generator_config.py +136 -0
- antfly/client_generated/models/google_search_config.py +173 -0
- antfly/client_generated/models/google_search_config_search_type.py +9 -0
- antfly/client_generated/models/graph_index_config.py +121 -0
- antfly/client_generated/models/graph_index_stats.py +151 -0
- antfly/client_generated/models/graph_index_stats_algebraic_graph.py +75 -0
- antfly/client_generated/models/graph_index_stats_algebraic_graph_traversal.py +97 -0
- antfly/client_generated/models/graph_index_stats_edge_types.py +47 -0
- antfly/client_generated/models/graph_index_stats_index_type.py +8 -0
- antfly/client_generated/models/graph_node_selector.py +106 -0
- antfly/client_generated/models/graph_query.py +192 -0
- antfly/client_generated/models/graph_query_params.py +216 -0
- antfly/client_generated/models/graph_query_params_algorithm_params.py +47 -0
- antfly/client_generated/models/graph_query_result.py +155 -0
- antfly/client_generated/models/graph_query_type.py +12 -0
- antfly/client_generated/models/graph_result_node.py +173 -0
- antfly/client_generated/models/graph_result_node_document.py +47 -0
- antfly/client_generated/models/ground_truth.py +74 -0
- antfly/client_generated/models/image_url.py +62 -0
- antfly/client_generated/models/image_url_content_part.py +78 -0
- antfly/client_generated/models/image_url_content_part_type.py +8 -0
- antfly/client_generated/models/incomplete_details.py +68 -0
- antfly/client_generated/models/incomplete_details_reason.py +11 -0
- antfly/client_generated/models/index_status.py +190 -0
- antfly/client_generated/models/index_status_shard_status.py +116 -0
- antfly/client_generated/models/index_type.py +11 -0
- antfly/client_generated/models/inference_audio_chunk_config.py +95 -0
- antfly/client_generated/models/inference_backend_runtimes.py +116 -0
- antfly/client_generated/models/inference_binary_content.py +98 -0
- antfly/client_generated/models/inference_chat_message.py +198 -0
- antfly/client_generated/models/inference_chunk.py +70 -0
- antfly/client_generated/models/inference_chunk_config.py +123 -0
- antfly/client_generated/models/inference_chunk_object.py +88 -0
- antfly/client_generated/models/inference_chunk_object_object.py +8 -0
- antfly/client_generated/models/inference_chunk_request.py +148 -0
- antfly/client_generated/models/inference_chunk_response.py +117 -0
- antfly/client_generated/models/inference_chunk_response_object.py +8 -0
- antfly/client_generated/models/inference_classify_object.py +93 -0
- antfly/client_generated/models/inference_classify_object_object.py +8 -0
- antfly/client_generated/models/inference_classify_request.py +105 -0
- antfly/client_generated/models/inference_classify_response.py +103 -0
- antfly/client_generated/models/inference_classify_response_object.py +8 -0
- antfly/client_generated/models/inference_classify_result.py +69 -0
- antfly/client_generated/models/inference_config.py +327 -0
- antfly/client_generated/models/inference_config_model_strategies.py +74 -0
- antfly/client_generated/models/inference_config_model_strategies_additional_property.py +10 -0
- antfly/client_generated/models/inference_content_security_config.py +128 -0
- antfly/client_generated/models/inference_credentials.py +102 -0
- antfly/client_generated/models/inference_document_classification_features.py +141 -0
- antfly/client_generated/models/inference_document_classification_object.py +162 -0
- antfly/client_generated/models/inference_document_classification_object_input.py +69 -0
- antfly/client_generated/models/inference_document_classification_object_object.py +8 -0
- antfly/client_generated/models/inference_document_classification_request.py +99 -0
- antfly/client_generated/models/inference_document_classification_response.py +103 -0
- antfly/client_generated/models/inference_document_classification_response_object.py +8 -0
- antfly/client_generated/models/inference_document_classification_result.py +69 -0
- antfly/client_generated/models/inference_document_token_box.py +70 -0
- antfly/client_generated/models/inference_document_token_classification_features.py +101 -0
- antfly/client_generated/models/inference_document_token_classification_object.py +124 -0
- antfly/client_generated/models/inference_document_token_classification_object_object.py +8 -0
- antfly/client_generated/models/inference_document_token_classification_prediction.py +145 -0
- antfly/client_generated/models/inference_document_token_classification_request.py +105 -0
- antfly/client_generated/models/inference_document_token_classification_response.py +105 -0
- antfly/client_generated/models/inference_document_token_classification_response_object.py +8 -0
- antfly/client_generated/models/inference_document_token_classification_result.py +69 -0
- antfly/client_generated/models/inference_embed_request.py +226 -0
- antfly/client_generated/models/inference_embed_request_encoding_format.py +8 -0
- antfly/client_generated/models/inference_embed_request_input_type.py +13 -0
- antfly/client_generated/models/inference_embed_request_task_type.py +15 -0
- antfly/client_generated/models/inference_embed_response.py +104 -0
- antfly/client_generated/models/inference_embed_response_object.py +8 -0
- antfly/client_generated/models/inference_embedding_object.py +113 -0
- antfly/client_generated/models/inference_embedding_object_object.py +8 -0
- antfly/client_generated/models/inference_embedding_usage.py +70 -0
- antfly/client_generated/models/inference_error.py +61 -0
- antfly/client_generated/models/inference_extract_field_value.py +90 -0
- antfly/client_generated/models/inference_extract_object.py +88 -0
- antfly/client_generated/models/inference_extract_object_object.py +8 -0
- antfly/client_generated/models/inference_extract_object_results.py +80 -0
- antfly/client_generated/models/inference_extract_object_results_additional_property_item.py +47 -0
- antfly/client_generated/models/inference_extract_request.py +179 -0
- antfly/client_generated/models/inference_extract_request_schema.py +62 -0
- antfly/client_generated/models/inference_extract_response.py +103 -0
- antfly/client_generated/models/inference_extract_response_object.py +8 -0
- antfly/client_generated/models/inference_finish_reason.py +12 -0
- antfly/client_generated/models/inference_function_definition.py +107 -0
- antfly/client_generated/models/inference_function_definition_parameters.py +53 -0
- antfly/client_generated/models/inference_generate_choice.py +121 -0
- antfly/client_generated/models/inference_generate_choice_logprobs_type_0.py +47 -0
- antfly/client_generated/models/inference_generate_chunk.py +110 -0
- antfly/client_generated/models/inference_generate_chunk_choice.py +94 -0
- antfly/client_generated/models/inference_generate_chunk_object.py +8 -0
- antfly/client_generated/models/inference_generate_delta.py +117 -0
- antfly/client_generated/models/inference_generate_json_schema_config.py +92 -0
- antfly/client_generated/models/inference_generate_json_schema_config_schema.py +47 -0
- antfly/client_generated/models/inference_generate_message.py +112 -0
- antfly/client_generated/models/inference_generate_request.py +380 -0
- antfly/client_generated/models/inference_generate_request_backend.py +14 -0
- antfly/client_generated/models/inference_generate_request_cache_dtype.py +12 -0
- antfly/client_generated/models/inference_generate_request_compiled_target.py +9 -0
- antfly/client_generated/models/inference_generate_request_mode.py +9 -0
- antfly/client_generated/models/inference_generate_response.py +120 -0
- antfly/client_generated/models/inference_generate_response_format.py +86 -0
- antfly/client_generated/models/inference_generate_response_format_type.py +10 -0
- antfly/client_generated/models/inference_generate_response_object.py +8 -0
- antfly/client_generated/models/inference_generate_usage.py +77 -0
- antfly/client_generated/models/inference_image_url.py +62 -0
- antfly/client_generated/models/inference_image_url_content_part.py +78 -0
- antfly/client_generated/models/inference_image_url_content_part_type.py +8 -0
- antfly/client_generated/models/inference_level.py +11 -0
- antfly/client_generated/models/inference_media_content_part.py +80 -0
- antfly/client_generated/models/inference_media_content_part_type.py +8 -0
- antfly/client_generated/models/inference_model_info.py +76 -0
- antfly/client_generated/models/inference_models_response.py +204 -0
- antfly/client_generated/models/inference_models_response_chunkers.py +60 -0
- antfly/client_generated/models/inference_models_response_classifiers.py +60 -0
- antfly/client_generated/models/inference_models_response_data_item.py +47 -0
- antfly/client_generated/models/inference_models_response_embedders.py +60 -0
- antfly/client_generated/models/inference_models_response_extractors.py +60 -0
- antfly/client_generated/models/inference_models_response_generators.py +60 -0
- antfly/client_generated/models/inference_models_response_object.py +8 -0
- antfly/client_generated/models/inference_models_response_readers.py +60 -0
- antfly/client_generated/models/inference_models_response_recognizers.py +60 -0
- antfly/client_generated/models/inference_models_response_rerankers.py +60 -0
- antfly/client_generated/models/inference_models_response_rewriters.py +60 -0
- antfly/client_generated/models/inference_models_response_transcribers.py +60 -0
- antfly/client_generated/models/inference_read_object.py +130 -0
- antfly/client_generated/models/inference_read_object_object.py +8 -0
- antfly/client_generated/models/inference_read_request.py +113 -0
- antfly/client_generated/models/inference_read_response.py +103 -0
- antfly/client_generated/models/inference_read_response_object.py +8 -0
- antfly/client_generated/models/inference_read_result.py +113 -0
- antfly/client_generated/models/inference_read_result_fields.py +54 -0
- antfly/client_generated/models/inference_recognize_entity.py +93 -0
- antfly/client_generated/models/inference_recognize_object.py +118 -0
- antfly/client_generated/models/inference_recognize_object_object.py +8 -0
- antfly/client_generated/models/inference_recognize_request.py +129 -0
- antfly/client_generated/models/inference_recognize_response.py +103 -0
- antfly/client_generated/models/inference_recognize_response_object.py +8 -0
- antfly/client_generated/models/inference_relation.py +91 -0
- antfly/client_generated/models/inference_rerank_multimodal_document.py +160 -0
- antfly/client_generated/models/inference_rerank_multimodal_request.py +91 -0
- antfly/client_generated/models/inference_rerank_object.py +79 -0
- antfly/client_generated/models/inference_rerank_object_object.py +8 -0
- antfly/client_generated/models/inference_rerank_request.py +79 -0
- antfly/client_generated/models/inference_rerank_response.py +103 -0
- antfly/client_generated/models/inference_rerank_response_object.py +8 -0
- antfly/client_generated/models/inference_resolver_config.py +110 -0
- antfly/client_generated/models/inference_rewrite_object.py +79 -0
- antfly/client_generated/models/inference_rewrite_object_object.py +8 -0
- antfly/client_generated/models/inference_rewrite_request.py +69 -0
- antfly/client_generated/models/inference_rewrite_response.py +103 -0
- antfly/client_generated/models/inference_rewrite_response_object.py +8 -0
- antfly/client_generated/models/inference_role.py +11 -0
- antfly/client_generated/models/inference_sparse_vector.py +70 -0
- antfly/client_generated/models/inference_style.py +11 -0
- antfly/client_generated/models/inference_text_chunk_options.py +82 -0
- antfly/client_generated/models/inference_text_content.py +78 -0
- antfly/client_generated/models/inference_text_content_part.py +72 -0
- antfly/client_generated/models/inference_text_content_part_type.py +8 -0
- antfly/client_generated/models/inference_text_region.py +89 -0
- antfly/client_generated/models/inference_tool.py +78 -0
- antfly/client_generated/models/inference_tool_call_delta.py +110 -0
- antfly/client_generated/models/inference_tool_call_delta_type.py +8 -0
- antfly/client_generated/models/inference_tool_call_function_delta.py +71 -0
- antfly/client_generated/models/inference_tool_choice_type_0.py +10 -0
- antfly/client_generated/models/inference_tool_choice_type_1_function.py +61 -0
- antfly/client_generated/models/inference_tool_choice_type_1_type.py +8 -0
- antfly/client_generated/models/inference_tool_type.py +8 -0
- antfly/client_generated/models/inference_transcribe_object.py +89 -0
- antfly/client_generated/models/inference_transcribe_object_object.py +8 -0
- antfly/client_generated/models/inference_transcribe_request.py +81 -0
- antfly/client_generated/models/inference_transcribe_response.py +103 -0
- antfly/client_generated/models/inference_transcribe_response_object.py +8 -0
- antfly/client_generated/models/inference_vad_options.py +92 -0
- antfly/client_generated/models/inferenceschemas_config.py +88 -0
- antfly/client_generated/models/ip_range_query.py +93 -0
- antfly/client_generated/models/join_condition.py +95 -0
- antfly/client_generated/models/join_operator.py +13 -0
- antfly/client_generated/models/join_profile.py +130 -0
- antfly/client_generated/models/join_strategy.py +10 -0
- antfly/client_generated/models/join_type.py +10 -0
- antfly/client_generated/models/key_range.py +71 -0
- antfly/client_generated/models/linear_merge_page_status.py +10 -0
- antfly/client_generated/models/linear_merge_request.py +150 -0
- antfly/client_generated/models/linear_merge_request_records.py +59 -0
- antfly/client_generated/models/linear_merge_result.py +183 -0
- antfly/client_generated/models/list_users_response_200_item.py +61 -0
- antfly/client_generated/models/lookup_key_response_200.py +47 -0
- antfly/client_generated/models/lsm_storage_status.py +116 -0
- antfly/client_generated/models/match_all_query.py +90 -0
- antfly/client_generated/models/match_all_query_match_all.py +47 -0
- antfly/client_generated/models/match_none_query.py +90 -0
- antfly/client_generated/models/match_none_query_match_none.py +47 -0
- antfly/client_generated/models/match_phrase_query.py +131 -0
- antfly/client_generated/models/match_query.py +157 -0
- antfly/client_generated/models/match_query_operator.py +9 -0
- antfly/client_generated/models/media_content_part.py +80 -0
- antfly/client_generated/models/media_content_part_type.py +8 -0
- antfly/client_generated/models/merge_config.py +118 -0
- antfly/client_generated/models/merge_config_weights.py +54 -0
- antfly/client_generated/models/merge_profile.py +101 -0
- antfly/client_generated/models/merge_strategy.py +10 -0
- antfly/client_generated/models/multi_batch_request.py +104 -0
- antfly/client_generated/models/multi_batch_request_tables.py +67 -0
- antfly/client_generated/models/multi_batch_response.py +75 -0
- antfly/client_generated/models/multi_batch_response_tables.py +60 -0
- antfly/client_generated/models/multi_match_body.py +101 -0
- antfly/client_generated/models/multi_match_body_type.py +8 -0
- antfly/client_generated/models/multi_match_query.py +67 -0
- antfly/client_generated/models/multi_phrase_query.py +131 -0
- antfly/client_generated/models/node_filter.py +84 -0
- antfly/client_generated/models/node_filter_filter_query.py +47 -0
- antfly/client_generated/models/numeric_range_query.py +163 -0
- antfly/client_generated/models/ollama_embedder_config.py +84 -0
- antfly/client_generated/models/ollama_generator_config.py +118 -0
- antfly/client_generated/models/ollama_reranker_config.py +73 -0
- antfly/client_generated/models/open_ai_embedder_config.py +104 -0
- antfly/client_generated/models/open_ai_generator_config.py +127 -0
- antfly/client_generated/models/open_router_embedder_config.py +94 -0
- antfly/client_generated/models/open_router_generator_config.py +128 -0
- antfly/client_generated/models/path.py +108 -0
- antfly/client_generated/models/path_edge.py +110 -0
- antfly/client_generated/models/path_edge_metadata.py +47 -0
- antfly/client_generated/models/path_find_request.py +158 -0
- antfly/client_generated/models/path_find_result.py +135 -0
- antfly/client_generated/models/path_find_weight_mode.py +10 -0
- antfly/client_generated/models/path_weight_mode.py +10 -0
- antfly/client_generated/models/pattern_edge_step.py +120 -0
- antfly/client_generated/models/pattern_match.py +98 -0
- antfly/client_generated/models/pattern_match_bindings.py +60 -0
- antfly/client_generated/models/pattern_step.py +102 -0
- antfly/client_generated/models/permission.py +80 -0
- antfly/client_generated/models/permission_type.py +10 -0
- antfly/client_generated/models/phrase_query.py +122 -0
- antfly/client_generated/models/prefix_query.py +93 -0
- antfly/client_generated/models/prune_stats.py +89 -0
- antfly/client_generated/models/pruner.py +115 -0
- antfly/client_generated/models/query_builder_request.py +250 -0
- antfly/client_generated/models/query_builder_request_constraints.py +53 -0
- antfly/client_generated/models/query_builder_request_example_documents_item.py +47 -0
- antfly/client_generated/models/query_hit.py +124 -0
- antfly/client_generated/models/query_hit_index_scores.py +47 -0
- antfly/client_generated/models/query_hit_source.py +47 -0
- antfly/client_generated/models/query_hits.py +98 -0
- antfly/client_generated/models/query_profile.py +130 -0
- antfly/client_generated/models/query_responses.py +80 -0
- antfly/client_generated/models/query_result.py +187 -0
- antfly/client_generated/models/query_result_aggregations.py +63 -0
- antfly/client_generated/models/query_result_analyses.py +60 -0
- antfly/client_generated/models/query_result_graph_results.py +60 -0
- antfly/client_generated/models/query_strategy.py +11 -0
- antfly/client_generated/models/query_string_query.py +84 -0
- antfly/client_generated/models/regexp_query.py +93 -0
- antfly/client_generated/models/replication_source_action_hint.py +81 -0
- antfly/client_generated/models/replication_source_status.py +225 -0
- antfly/client_generated/models/replication_transform_op.py +87 -0
- antfly/client_generated/models/reranker_config.py +86 -0
- antfly/client_generated/models/reranker_profile.py +80 -0
- antfly/client_generated/models/reranker_provider.py +11 -0
- antfly/client_generated/models/resource_type.py +10 -0
- antfly/client_generated/models/restore_table_response_202.py +61 -0
- antfly/client_generated/models/retrieval_agent_result.py +397 -0
- antfly/client_generated/models/retrieval_agent_steps.py +179 -0
- antfly/client_generated/models/retrieval_agent_usage.py +129 -0
- antfly/client_generated/models/retrieval_strategy.py +13 -0
- antfly/client_generated/models/retry_config.py +89 -0
- antfly/client_generated/models/role_assignment.py +61 -0
- antfly/client_generated/models/route_type.py +9 -0
- antfly/client_generated/models/row_filter_entry.py +77 -0
- antfly/client_generated/models/row_filter_entry_filter.py +52 -0
- antfly/client_generated/models/secret_entry.py +115 -0
- antfly/client_generated/models/secret_list.py +75 -0
- antfly/client_generated/models/secret_status.py +10 -0
- antfly/client_generated/models/secret_store_status.py +62 -0
- antfly/client_generated/models/secret_write_request.py +61 -0
- antfly/client_generated/models/semantic_query_mode.py +9 -0
- antfly/client_generated/models/serper_search_config.py +170 -0
- antfly/client_generated/models/serper_search_config_search_type.py +12 -0
- antfly/client_generated/models/serper_search_config_time_period.py +11 -0
- antfly/client_generated/models/set_row_filter_body.py +47 -0
- antfly/client_generated/models/set_subject_row_filter_body.py +47 -0
- antfly/client_generated/models/shard_config.py +61 -0
- antfly/client_generated/models/shards_profile.py +80 -0
- antfly/client_generated/models/significance_algorithm.py +11 -0
- antfly/client_generated/models/sort_field.py +73 -0
- antfly/client_generated/models/sse_error.py +62 -0
- antfly/client_generated/models/sse_event.py +19 -0
- antfly/client_generated/models/sse_step_completed.py +155 -0
- antfly/client_generated/models/sse_step_completed_details.py +47 -0
- antfly/client_generated/models/sse_step_progress.py +64 -0
- antfly/client_generated/models/sse_step_started.py +98 -0
- antfly/client_generated/models/sse_tool_mode.py +74 -0
- antfly/client_generated/models/sse_tool_mode_mode.py +9 -0
- antfly/client_generated/models/storage_status.py +93 -0
- antfly/client_generated/models/success_message.py +61 -0
- antfly/client_generated/models/sync_level.py +13 -0
- antfly/client_generated/models/table_backup_status.py +81 -0
- antfly/client_generated/models/table_backup_status_status.py +10 -0
- antfly/client_generated/models/table_migration.py +79 -0
- antfly/client_generated/models/table_migration_state.py +8 -0
- antfly/client_generated/models/table_restore_status.py +81 -0
- antfly/client_generated/models/table_restore_status_status.py +10 -0
- antfly/client_generated/models/table_schema.py +150 -0
- antfly/client_generated/models/table_schema_document_schemas.py +60 -0
- antfly/client_generated/models/table_statistics.py +111 -0
- antfly/client_generated/models/table_statistics_field_stats.py +60 -0
- antfly/client_generated/models/tavily_search_config.py +195 -0
- antfly/client_generated/models/tavily_search_config_search_depth.py +9 -0
- antfly/client_generated/models/template_field_mapping.py +116 -0
- antfly/client_generated/models/term_query.py +93 -0
- antfly/client_generated/models/term_range_query.py +163 -0
- antfly/client_generated/models/text_chunk_options.py +82 -0
- antfly/client_generated/models/text_content_part.py +72 -0
- antfly/client_generated/models/text_content_part_type.py +8 -0
- antfly/client_generated/models/tool_call.py +86 -0
- antfly/client_generated/models/tool_call_function.py +70 -0
- antfly/client_generated/models/tool_call_type.py +8 -0
- antfly/client_generated/models/transaction_begin_request.py +76 -0
- antfly/client_generated/models/transaction_begin_response.py +77 -0
- antfly/client_generated/models/transaction_commit_request.py +123 -0
- antfly/client_generated/models/transaction_commit_request_tables.py +60 -0
- antfly/client_generated/models/transaction_commit_response.py +107 -0
- antfly/client_generated/models/transaction_commit_response_conflict.py +80 -0
- antfly/client_generated/models/transaction_commit_response_status.py +9 -0
- antfly/client_generated/models/transaction_commit_response_tables.py +60 -0
- antfly/client_generated/models/transaction_read_item.py +80 -0
- antfly/client_generated/models/transaction_savepoint_response.py +77 -0
- antfly/client_generated/models/transaction_session_cleanup_response.py +70 -0
- antfly/client_generated/models/transaction_session_commit_response.py +114 -0
- antfly/client_generated/models/transaction_session_details_response.py +268 -0
- antfly/client_generated/models/transaction_session_list_response.py +106 -0
- antfly/client_generated/models/transaction_session_read_snapshot.py +88 -0
- antfly/client_generated/models/transaction_session_status.py +207 -0
- antfly/client_generated/models/transaction_session_table_detail.py +97 -0
- antfly/client_generated/models/transaction_stage_delete_request.py +69 -0
- antfly/client_generated/models/transaction_stage_read_request.py +77 -0
- antfly/client_generated/models/transaction_stage_read_response.py +83 -0
- antfly/client_generated/models/transaction_stage_read_snapshot.py +85 -0
- antfly/client_generated/models/transaction_stage_write_request.py +83 -0
- antfly/client_generated/models/transaction_stage_write_request_document.py +47 -0
- antfly/client_generated/models/transaction_status_response.py +69 -0
- antfly/client_generated/models/transform.py +104 -0
- antfly/client_generated/models/transform_op.py +82 -0
- antfly/client_generated/models/transform_op_type.py +19 -0
- antfly/client_generated/models/traversal_result.py +137 -0
- antfly/client_generated/models/traversal_result_document.py +47 -0
- antfly/client_generated/models/traversal_rules.py +138 -0
- antfly/client_generated/models/traverse_response.py +88 -0
- antfly/client_generated/models/tree_search_config.py +97 -0
- antfly/client_generated/models/update_password_request.py +61 -0
- antfly/client_generated/models/user.py +110 -0
- antfly/client_generated/models/user_metadata_type_0.py +52 -0
- antfly/client_generated/models/vertex_embedder_config.py +115 -0
- antfly/client_generated/models/vertex_generator_config.py +127 -0
- antfly/client_generated/models/vertex_reranker_config.py +108 -0
- antfly/client_generated/models/web_search_config.py +127 -0
- antfly/client_generated/models/web_search_provider.py +13 -0
- antfly/client_generated/models/wildcard_query.py +93 -0
- antfly/client_generated/py.typed +1 -0
- antfly/client_generated/types.py +54 -0
- antfly/exceptions.py +19 -0
- antfly/pyproject.toml +26 -0
- antfly_sdk-0.0.2.dev2.dist-info/METADATA +153 -0
- antfly_sdk-0.0.2.dev2.dist-info/RECORD +640 -0
- antfly_sdk-0.0.2.dev2.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from ..models.inference_config_model_strategies import InferenceConfigModelStrategies
|
|
13
|
+
from ..models.inference_content_security_config import InferenceContentSecurityConfig
|
|
14
|
+
from ..models.inference_credentials import InferenceCredentials
|
|
15
|
+
from ..models.inferenceschemas_config import InferenceschemasConfig
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
T = TypeVar("T", bound="InferenceConfig")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@_attrs_define
|
|
22
|
+
class InferenceConfig:
|
|
23
|
+
"""
|
|
24
|
+
Attributes:
|
|
25
|
+
api_url (str): URL of the inference embedding/chunking service Example: http://localhost:8080.
|
|
26
|
+
api_key (str | Unset): API key used when calling an authenticated shared Antfly inference API.
|
|
27
|
+
models_dir (str | Unset): Base directory containing model subdirectories. Antfly inference auto-discovers models
|
|
28
|
+
from:
|
|
29
|
+
- `{models_dir}/embedders/` - Embedding models (ONNX)
|
|
30
|
+
- `{models_dir}/chunkers/` - Chunking models (ONNX)
|
|
31
|
+
- `{models_dir}/rerankers/` - Reranking models (ONNX)
|
|
32
|
+
- `{models_dir}/recognizers/` - Recognition models (ONNX)
|
|
33
|
+
- `{models_dir}/rewriters/` - Seq2Seq rewriter models (ONNX)
|
|
34
|
+
|
|
35
|
+
Defaults to ~/.antfly/inference/models (set via viper). If not set, only built-in fixed chunking is available.
|
|
36
|
+
Example: ~/.antfly/inference/models.
|
|
37
|
+
content_security (InferenceContentSecurityConfig | Unset):
|
|
38
|
+
s3_credentials (InferenceCredentials | Unset):
|
|
39
|
+
keep_alive (str | Unset): How long to keep models loaded in memory after last use (Ollama-compatible).
|
|
40
|
+
Models are automatically unloaded after this duration of inactivity.
|
|
41
|
+
Use Go duration format: "5m" (5 minutes), "1h" (1 hour), "0" (eager loading).
|
|
42
|
+
Defaults to "5m" (lazy loading) like Ollama. Set to "0" to explicitly enable eager loading
|
|
43
|
+
where all models are loaded at startup and never unloaded.
|
|
44
|
+
Default: '5m'. Example: 5m.
|
|
45
|
+
max_loaded_models (int | Unset): Maximum total models loaded across all registry types (embedders, rerankers,
|
|
46
|
+
generators, chunkers, etc.). When the limit is reached, the least-recently-used
|
|
47
|
+
idle model from any registry is evicted to make room. Set to 0 for unlimited (default).
|
|
48
|
+
Default: 0. Example: 3.
|
|
49
|
+
pool_size (int | Unset): Number of concurrent inference pipelines per model. Each pipeline loads
|
|
50
|
+
a copy of the model, so higher values use more memory but allow more
|
|
51
|
+
concurrent requests. Note: pool_size multiplies per-model memory
|
|
52
|
+
independently of max_loaded_models.
|
|
53
|
+
Default: 1. Example: 1.
|
|
54
|
+
backend_priority (list[str] | Unset): Backend priority order for model loading with optional device specifiers.
|
|
55
|
+
Format: `backend` or `backend:device` where device defaults to `auto`.
|
|
56
|
+
|
|
57
|
+
Antfly inference tries entries in order and uses the first available backend+device
|
|
58
|
+
combination that supports the model.
|
|
59
|
+
|
|
60
|
+
**Backends** (depend on build flags):
|
|
61
|
+
- `native` - Native CPU backend
|
|
62
|
+
- `onnx` - ONNX Runtime backend
|
|
63
|
+
- `metal` - Apple Metal backend
|
|
64
|
+
- `mlx` - MLX backend
|
|
65
|
+
- `cuda` - NVIDIA CUDA backend
|
|
66
|
+
- `xla` - PJRT/XLA compiled backend
|
|
67
|
+
|
|
68
|
+
**Devices**:
|
|
69
|
+
- `auto` - Auto-detect best available (default)
|
|
70
|
+
- `cuda` - NVIDIA CUDA GPU
|
|
71
|
+
- `tpu` - Google TPU (used by XLA)
|
|
72
|
+
- `cpu` - Force CPU only
|
|
73
|
+
|
|
74
|
+
**Examples**:
|
|
75
|
+
- `["native", "onnx", "xla"]` - Try backends with auto device detection
|
|
76
|
+
- `["cuda", "onnx:cuda", "xla:tpu", "native"]` - Prefer GPU, fall back to CPU
|
|
77
|
+
Example: ['cuda', 'onnx:cuda', 'xla:tpu', 'native'].
|
|
78
|
+
max_concurrent_requests (int | Unset): Maximum number of concurrent inference requests allowed.
|
|
79
|
+
Additional requests will be queued up to max_queue_size.
|
|
80
|
+
Set to 0 for unlimited (default).
|
|
81
|
+
Default: 0. Example: 4.
|
|
82
|
+
max_queue_size (int | Unset): Maximum number of requests to queue when max_concurrent_requests is reached.
|
|
83
|
+
When the queue is full, new requests receive 503 Service Unavailable with Retry-After header.
|
|
84
|
+
Set to 0 for unlimited queue (default). Only effective when max_concurrent_requests > 0.
|
|
85
|
+
Default: 0. Example: 100.
|
|
86
|
+
request_timeout (str | Unset): Maximum time to wait for a request to complete, including queue wait time.
|
|
87
|
+
Use Go duration format: "30s", "1m", "0" (no timeout, default).
|
|
88
|
+
Requests exceeding this timeout receive 504 Gateway Timeout.
|
|
89
|
+
Default: '0'. Example: 30s.
|
|
90
|
+
preload (list[str] | Unset): List of model names to preload at startup (Ollama-compatible).
|
|
91
|
+
These models are loaded immediately when inference starts, avoiding first-request latency.
|
|
92
|
+
Model names should match those in models_dir/embedders/ (e.g., "BAAI/bge-small-en-v1.5").
|
|
93
|
+
Only effective when keep_alive is non-zero (lazy loading mode).
|
|
94
|
+
Example: ['BAAI/bge-small-en-v1.5', 'openai/clip-vit-base-patch32'].
|
|
95
|
+
max_memory_mb (int | Unset): Maximum memory (in MB) to use for loaded models.
|
|
96
|
+
When this limit is approached, least recently used models are unloaded.
|
|
97
|
+
Set to 0 for unlimited (default). This is an advisory limit - actual memory
|
|
98
|
+
usage depends on model sizes and may temporarily exceed this value.
|
|
99
|
+
Works alongside max_loaded_models for fine-grained control.
|
|
100
|
+
Default: 0. Example: 4096.
|
|
101
|
+
model_strategies (InferenceConfigModelStrategies | Unset): Per-model loading strategy overrides. Maps model
|
|
102
|
+
names to their loading strategy.
|
|
103
|
+
Models not in this map use the default strategy based on keep_alive:
|
|
104
|
+
- If keep_alive>0 (default "5m"): lazy loading (load on demand, unload after idle)
|
|
105
|
+
- If keep_alive="0": eager loading (load at startup, never unload)
|
|
106
|
+
|
|
107
|
+
When a model has strategy "eager" in this map:
|
|
108
|
+
- It is loaded at startup (as part of preload)
|
|
109
|
+
- It is never unloaded, even when keep_alive>0 (pinned in memory)
|
|
110
|
+
|
|
111
|
+
This allows mixing eager and lazy models in the same pool.
|
|
112
|
+
Example: {'BAAI/bge-small-en-v1.5': 'eager', 'mirth/chonky-mmbert-small-multilingual-1': 'lazy'}.
|
|
113
|
+
allow_downloads (bool | Unset): Whether the dashboard should show model download commands.
|
|
114
|
+
Defaults to true for standalone/swarm mode. Set to false in managed
|
|
115
|
+
deployments (e.g., Kubernetes operator) where models are managed externally.
|
|
116
|
+
Default: True.
|
|
117
|
+
log (InferenceschemasConfig | Unset): Logging configuration for inference services
|
|
118
|
+
"""
|
|
119
|
+
|
|
120
|
+
api_url: str
|
|
121
|
+
api_key: str | Unset = UNSET
|
|
122
|
+
models_dir: str | Unset = UNSET
|
|
123
|
+
content_security: InferenceContentSecurityConfig | Unset = UNSET
|
|
124
|
+
s3_credentials: InferenceCredentials | Unset = UNSET
|
|
125
|
+
keep_alive: str | Unset = "5m"
|
|
126
|
+
max_loaded_models: int | Unset = 0
|
|
127
|
+
pool_size: int | Unset = 1
|
|
128
|
+
backend_priority: list[str] | Unset = UNSET
|
|
129
|
+
max_concurrent_requests: int | Unset = 0
|
|
130
|
+
max_queue_size: int | Unset = 0
|
|
131
|
+
request_timeout: str | Unset = "0"
|
|
132
|
+
preload: list[str] | Unset = UNSET
|
|
133
|
+
max_memory_mb: int | Unset = 0
|
|
134
|
+
model_strategies: InferenceConfigModelStrategies | Unset = UNSET
|
|
135
|
+
allow_downloads: bool | Unset = True
|
|
136
|
+
log: InferenceschemasConfig | Unset = UNSET
|
|
137
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
138
|
+
|
|
139
|
+
def to_dict(self) -> dict[str, Any]:
|
|
140
|
+
api_url = self.api_url
|
|
141
|
+
|
|
142
|
+
api_key = self.api_key
|
|
143
|
+
|
|
144
|
+
models_dir = self.models_dir
|
|
145
|
+
|
|
146
|
+
content_security: dict[str, Any] | Unset = UNSET
|
|
147
|
+
if not isinstance(self.content_security, Unset):
|
|
148
|
+
content_security = self.content_security.to_dict()
|
|
149
|
+
|
|
150
|
+
s3_credentials: dict[str, Any] | Unset = UNSET
|
|
151
|
+
if not isinstance(self.s3_credentials, Unset):
|
|
152
|
+
s3_credentials = self.s3_credentials.to_dict()
|
|
153
|
+
|
|
154
|
+
keep_alive = self.keep_alive
|
|
155
|
+
|
|
156
|
+
max_loaded_models = self.max_loaded_models
|
|
157
|
+
|
|
158
|
+
pool_size = self.pool_size
|
|
159
|
+
|
|
160
|
+
backend_priority: list[str] | Unset = UNSET
|
|
161
|
+
if not isinstance(self.backend_priority, Unset):
|
|
162
|
+
backend_priority = self.backend_priority
|
|
163
|
+
|
|
164
|
+
max_concurrent_requests = self.max_concurrent_requests
|
|
165
|
+
|
|
166
|
+
max_queue_size = self.max_queue_size
|
|
167
|
+
|
|
168
|
+
request_timeout = self.request_timeout
|
|
169
|
+
|
|
170
|
+
preload: list[str] | Unset = UNSET
|
|
171
|
+
if not isinstance(self.preload, Unset):
|
|
172
|
+
preload = self.preload
|
|
173
|
+
|
|
174
|
+
max_memory_mb = self.max_memory_mb
|
|
175
|
+
|
|
176
|
+
model_strategies: dict[str, Any] | Unset = UNSET
|
|
177
|
+
if not isinstance(self.model_strategies, Unset):
|
|
178
|
+
model_strategies = self.model_strategies.to_dict()
|
|
179
|
+
|
|
180
|
+
allow_downloads = self.allow_downloads
|
|
181
|
+
|
|
182
|
+
log: dict[str, Any] | Unset = UNSET
|
|
183
|
+
if not isinstance(self.log, Unset):
|
|
184
|
+
log = self.log.to_dict()
|
|
185
|
+
|
|
186
|
+
field_dict: dict[str, Any] = {}
|
|
187
|
+
field_dict.update(self.additional_properties)
|
|
188
|
+
field_dict.update(
|
|
189
|
+
{
|
|
190
|
+
"api_url": api_url,
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
if api_key is not UNSET:
|
|
194
|
+
field_dict["api_key"] = api_key
|
|
195
|
+
if models_dir is not UNSET:
|
|
196
|
+
field_dict["models_dir"] = models_dir
|
|
197
|
+
if content_security is not UNSET:
|
|
198
|
+
field_dict["content_security"] = content_security
|
|
199
|
+
if s3_credentials is not UNSET:
|
|
200
|
+
field_dict["s3_credentials"] = s3_credentials
|
|
201
|
+
if keep_alive is not UNSET:
|
|
202
|
+
field_dict["keep_alive"] = keep_alive
|
|
203
|
+
if max_loaded_models is not UNSET:
|
|
204
|
+
field_dict["max_loaded_models"] = max_loaded_models
|
|
205
|
+
if pool_size is not UNSET:
|
|
206
|
+
field_dict["pool_size"] = pool_size
|
|
207
|
+
if backend_priority is not UNSET:
|
|
208
|
+
field_dict["backend_priority"] = backend_priority
|
|
209
|
+
if max_concurrent_requests is not UNSET:
|
|
210
|
+
field_dict["max_concurrent_requests"] = max_concurrent_requests
|
|
211
|
+
if max_queue_size is not UNSET:
|
|
212
|
+
field_dict["max_queue_size"] = max_queue_size
|
|
213
|
+
if request_timeout is not UNSET:
|
|
214
|
+
field_dict["request_timeout"] = request_timeout
|
|
215
|
+
if preload is not UNSET:
|
|
216
|
+
field_dict["preload"] = preload
|
|
217
|
+
if max_memory_mb is not UNSET:
|
|
218
|
+
field_dict["max_memory_mb"] = max_memory_mb
|
|
219
|
+
if model_strategies is not UNSET:
|
|
220
|
+
field_dict["model_strategies"] = model_strategies
|
|
221
|
+
if allow_downloads is not UNSET:
|
|
222
|
+
field_dict["allow_downloads"] = allow_downloads
|
|
223
|
+
if log is not UNSET:
|
|
224
|
+
field_dict["log"] = log
|
|
225
|
+
|
|
226
|
+
return field_dict
|
|
227
|
+
|
|
228
|
+
@classmethod
|
|
229
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
230
|
+
from ..models.inference_config_model_strategies import InferenceConfigModelStrategies
|
|
231
|
+
from ..models.inference_content_security_config import InferenceContentSecurityConfig
|
|
232
|
+
from ..models.inference_credentials import InferenceCredentials
|
|
233
|
+
from ..models.inferenceschemas_config import InferenceschemasConfig
|
|
234
|
+
|
|
235
|
+
d = dict(src_dict)
|
|
236
|
+
api_url = d.pop("api_url")
|
|
237
|
+
|
|
238
|
+
api_key = d.pop("api_key", UNSET)
|
|
239
|
+
|
|
240
|
+
models_dir = d.pop("models_dir", UNSET)
|
|
241
|
+
|
|
242
|
+
_content_security = d.pop("content_security", UNSET)
|
|
243
|
+
content_security: InferenceContentSecurityConfig | Unset
|
|
244
|
+
if isinstance(_content_security, Unset):
|
|
245
|
+
content_security = UNSET
|
|
246
|
+
else:
|
|
247
|
+
content_security = InferenceContentSecurityConfig.from_dict(_content_security)
|
|
248
|
+
|
|
249
|
+
_s3_credentials = d.pop("s3_credentials", UNSET)
|
|
250
|
+
s3_credentials: InferenceCredentials | Unset
|
|
251
|
+
if isinstance(_s3_credentials, Unset):
|
|
252
|
+
s3_credentials = UNSET
|
|
253
|
+
else:
|
|
254
|
+
s3_credentials = InferenceCredentials.from_dict(_s3_credentials)
|
|
255
|
+
|
|
256
|
+
keep_alive = d.pop("keep_alive", UNSET)
|
|
257
|
+
|
|
258
|
+
max_loaded_models = d.pop("max_loaded_models", UNSET)
|
|
259
|
+
|
|
260
|
+
pool_size = d.pop("pool_size", UNSET)
|
|
261
|
+
|
|
262
|
+
backend_priority = cast(list[str], d.pop("backend_priority", UNSET))
|
|
263
|
+
|
|
264
|
+
max_concurrent_requests = d.pop("max_concurrent_requests", UNSET)
|
|
265
|
+
|
|
266
|
+
max_queue_size = d.pop("max_queue_size", UNSET)
|
|
267
|
+
|
|
268
|
+
request_timeout = d.pop("request_timeout", UNSET)
|
|
269
|
+
|
|
270
|
+
preload = cast(list[str], d.pop("preload", UNSET))
|
|
271
|
+
|
|
272
|
+
max_memory_mb = d.pop("max_memory_mb", UNSET)
|
|
273
|
+
|
|
274
|
+
_model_strategies = d.pop("model_strategies", UNSET)
|
|
275
|
+
model_strategies: InferenceConfigModelStrategies | Unset
|
|
276
|
+
if isinstance(_model_strategies, Unset):
|
|
277
|
+
model_strategies = UNSET
|
|
278
|
+
else:
|
|
279
|
+
model_strategies = InferenceConfigModelStrategies.from_dict(_model_strategies)
|
|
280
|
+
|
|
281
|
+
allow_downloads = d.pop("allow_downloads", UNSET)
|
|
282
|
+
|
|
283
|
+
_log = d.pop("log", UNSET)
|
|
284
|
+
log: InferenceschemasConfig | Unset
|
|
285
|
+
if isinstance(_log, Unset):
|
|
286
|
+
log = UNSET
|
|
287
|
+
else:
|
|
288
|
+
log = InferenceschemasConfig.from_dict(_log)
|
|
289
|
+
|
|
290
|
+
inference_config = cls(
|
|
291
|
+
api_url=api_url,
|
|
292
|
+
api_key=api_key,
|
|
293
|
+
models_dir=models_dir,
|
|
294
|
+
content_security=content_security,
|
|
295
|
+
s3_credentials=s3_credentials,
|
|
296
|
+
keep_alive=keep_alive,
|
|
297
|
+
max_loaded_models=max_loaded_models,
|
|
298
|
+
pool_size=pool_size,
|
|
299
|
+
backend_priority=backend_priority,
|
|
300
|
+
max_concurrent_requests=max_concurrent_requests,
|
|
301
|
+
max_queue_size=max_queue_size,
|
|
302
|
+
request_timeout=request_timeout,
|
|
303
|
+
preload=preload,
|
|
304
|
+
max_memory_mb=max_memory_mb,
|
|
305
|
+
model_strategies=model_strategies,
|
|
306
|
+
allow_downloads=allow_downloads,
|
|
307
|
+
log=log,
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
inference_config.additional_properties = d
|
|
311
|
+
return inference_config
|
|
312
|
+
|
|
313
|
+
@property
|
|
314
|
+
def additional_keys(self) -> list[str]:
|
|
315
|
+
return list(self.additional_properties.keys())
|
|
316
|
+
|
|
317
|
+
def __getitem__(self, key: str) -> Any:
|
|
318
|
+
return self.additional_properties[key]
|
|
319
|
+
|
|
320
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
321
|
+
self.additional_properties[key] = value
|
|
322
|
+
|
|
323
|
+
def __delitem__(self, key: str) -> None:
|
|
324
|
+
del self.additional_properties[key]
|
|
325
|
+
|
|
326
|
+
def __contains__(self, key: str) -> bool:
|
|
327
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..models.inference_config_model_strategies_additional_property import (
|
|
10
|
+
InferenceConfigModelStrategiesAdditionalProperty,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
T = TypeVar("T", bound="InferenceConfigModelStrategies")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@_attrs_define
|
|
17
|
+
class InferenceConfigModelStrategies:
|
|
18
|
+
"""Per-model loading strategy overrides. Maps model names to their loading strategy.
|
|
19
|
+
Models not in this map use the default strategy based on keep_alive:
|
|
20
|
+
- If keep_alive>0 (default "5m"): lazy loading (load on demand, unload after idle)
|
|
21
|
+
- If keep_alive="0": eager loading (load at startup, never unload)
|
|
22
|
+
|
|
23
|
+
When a model has strategy "eager" in this map:
|
|
24
|
+
- It is loaded at startup (as part of preload)
|
|
25
|
+
- It is never unloaded, even when keep_alive>0 (pinned in memory)
|
|
26
|
+
|
|
27
|
+
This allows mixing eager and lazy models in the same pool.
|
|
28
|
+
|
|
29
|
+
Example:
|
|
30
|
+
{'BAAI/bge-small-en-v1.5': 'eager', 'mirth/chonky-mmbert-small-multilingual-1': 'lazy'}
|
|
31
|
+
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
additional_properties: dict[str, InferenceConfigModelStrategiesAdditionalProperty] = _attrs_field(
|
|
35
|
+
init=False, factory=dict
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def to_dict(self) -> dict[str, Any]:
|
|
39
|
+
|
|
40
|
+
field_dict: dict[str, Any] = {}
|
|
41
|
+
for prop_name, prop in self.additional_properties.items():
|
|
42
|
+
field_dict[prop_name] = prop.value
|
|
43
|
+
|
|
44
|
+
return field_dict
|
|
45
|
+
|
|
46
|
+
@classmethod
|
|
47
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
48
|
+
d = dict(src_dict)
|
|
49
|
+
inference_config_model_strategies = cls()
|
|
50
|
+
|
|
51
|
+
additional_properties = {}
|
|
52
|
+
for prop_name, prop_dict in d.items():
|
|
53
|
+
additional_property = InferenceConfigModelStrategiesAdditionalProperty(prop_dict)
|
|
54
|
+
|
|
55
|
+
additional_properties[prop_name] = additional_property
|
|
56
|
+
|
|
57
|
+
inference_config_model_strategies.additional_properties = additional_properties
|
|
58
|
+
return inference_config_model_strategies
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def additional_keys(self) -> list[str]:
|
|
62
|
+
return list(self.additional_properties.keys())
|
|
63
|
+
|
|
64
|
+
def __getitem__(self, key: str) -> InferenceConfigModelStrategiesAdditionalProperty:
|
|
65
|
+
return self.additional_properties[key]
|
|
66
|
+
|
|
67
|
+
def __setitem__(self, key: str, value: InferenceConfigModelStrategiesAdditionalProperty) -> None:
|
|
68
|
+
self.additional_properties[key] = value
|
|
69
|
+
|
|
70
|
+
def __delitem__(self, key: str) -> None:
|
|
71
|
+
del self.additional_properties[key]
|
|
72
|
+
|
|
73
|
+
def __contains__(self, key: str) -> bool:
|
|
74
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar, cast
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="InferenceContentSecurityConfig")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class InferenceContentSecurityConfig:
|
|
16
|
+
"""
|
|
17
|
+
Attributes:
|
|
18
|
+
allowed_hosts (list[str] | Unset): Whitelist of allowed hostnames/IPs for link downloads. If empty, all hosts
|
|
19
|
+
are allowed (except private IPs if block_private_ips is true). Example: ['example.com', 'cdn.example.com',
|
|
20
|
+
'192.0.2.1'].
|
|
21
|
+
block_private_ips (bool | Unset): Block requests to private IP ranges (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12,
|
|
22
|
+
192.168.0.0/16, 169.254.0.0/16) Default: True.
|
|
23
|
+
max_download_size_bytes (int | Unset): Maximum size of downloaded content in bytes Default: 104857600. Example:
|
|
24
|
+
104857600.
|
|
25
|
+
download_timeout_seconds (int | Unset): Timeout for individual download operations in seconds Default: 30.
|
|
26
|
+
Example: 30.
|
|
27
|
+
max_image_dimension (int | Unset): Maximum image width/height in pixels (images will be resized) Default: 2048.
|
|
28
|
+
Example: 2048.
|
|
29
|
+
allowed_paths (list[str] | Unset): Whitelist of allowed path prefixes for file:// and s3:// URLs. If empty, all
|
|
30
|
+
paths are allowed. For file:// use absolute paths (e.g., /Users/data/). For s3:// use bucket/prefix (e.g., my-
|
|
31
|
+
bucket/uploads/). Example: ['/Users/data/', 'my-bucket/uploads/'].
|
|
32
|
+
user_agent (str | Unset): User-Agent header for HTTP downloads. Defaults to 'AntflyDB/1.0' if not set. Some
|
|
33
|
+
servers (e.g., Wikipedia) reject requests without a User-Agent. Example: AntflyDB/1.0.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
allowed_hosts: list[str] | Unset = UNSET
|
|
37
|
+
block_private_ips: bool | Unset = True
|
|
38
|
+
max_download_size_bytes: int | Unset = 104857600
|
|
39
|
+
download_timeout_seconds: int | Unset = 30
|
|
40
|
+
max_image_dimension: int | Unset = 2048
|
|
41
|
+
allowed_paths: list[str] | Unset = UNSET
|
|
42
|
+
user_agent: str | Unset = UNSET
|
|
43
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
44
|
+
|
|
45
|
+
def to_dict(self) -> dict[str, Any]:
|
|
46
|
+
allowed_hosts: list[str] | Unset = UNSET
|
|
47
|
+
if not isinstance(self.allowed_hosts, Unset):
|
|
48
|
+
allowed_hosts = self.allowed_hosts
|
|
49
|
+
|
|
50
|
+
block_private_ips = self.block_private_ips
|
|
51
|
+
|
|
52
|
+
max_download_size_bytes = self.max_download_size_bytes
|
|
53
|
+
|
|
54
|
+
download_timeout_seconds = self.download_timeout_seconds
|
|
55
|
+
|
|
56
|
+
max_image_dimension = self.max_image_dimension
|
|
57
|
+
|
|
58
|
+
allowed_paths: list[str] | Unset = UNSET
|
|
59
|
+
if not isinstance(self.allowed_paths, Unset):
|
|
60
|
+
allowed_paths = self.allowed_paths
|
|
61
|
+
|
|
62
|
+
user_agent = self.user_agent
|
|
63
|
+
|
|
64
|
+
field_dict: dict[str, Any] = {}
|
|
65
|
+
field_dict.update(self.additional_properties)
|
|
66
|
+
field_dict.update({})
|
|
67
|
+
if allowed_hosts is not UNSET:
|
|
68
|
+
field_dict["allowed_hosts"] = allowed_hosts
|
|
69
|
+
if block_private_ips is not UNSET:
|
|
70
|
+
field_dict["block_private_ips"] = block_private_ips
|
|
71
|
+
if max_download_size_bytes is not UNSET:
|
|
72
|
+
field_dict["max_download_size_bytes"] = max_download_size_bytes
|
|
73
|
+
if download_timeout_seconds is not UNSET:
|
|
74
|
+
field_dict["download_timeout_seconds"] = download_timeout_seconds
|
|
75
|
+
if max_image_dimension is not UNSET:
|
|
76
|
+
field_dict["max_image_dimension"] = max_image_dimension
|
|
77
|
+
if allowed_paths is not UNSET:
|
|
78
|
+
field_dict["allowed_paths"] = allowed_paths
|
|
79
|
+
if user_agent is not UNSET:
|
|
80
|
+
field_dict["user_agent"] = user_agent
|
|
81
|
+
|
|
82
|
+
return field_dict
|
|
83
|
+
|
|
84
|
+
@classmethod
|
|
85
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
86
|
+
d = dict(src_dict)
|
|
87
|
+
allowed_hosts = cast(list[str], d.pop("allowed_hosts", UNSET))
|
|
88
|
+
|
|
89
|
+
block_private_ips = d.pop("block_private_ips", UNSET)
|
|
90
|
+
|
|
91
|
+
max_download_size_bytes = d.pop("max_download_size_bytes", UNSET)
|
|
92
|
+
|
|
93
|
+
download_timeout_seconds = d.pop("download_timeout_seconds", UNSET)
|
|
94
|
+
|
|
95
|
+
max_image_dimension = d.pop("max_image_dimension", UNSET)
|
|
96
|
+
|
|
97
|
+
allowed_paths = cast(list[str], d.pop("allowed_paths", UNSET))
|
|
98
|
+
|
|
99
|
+
user_agent = d.pop("user_agent", UNSET)
|
|
100
|
+
|
|
101
|
+
inference_content_security_config = cls(
|
|
102
|
+
allowed_hosts=allowed_hosts,
|
|
103
|
+
block_private_ips=block_private_ips,
|
|
104
|
+
max_download_size_bytes=max_download_size_bytes,
|
|
105
|
+
download_timeout_seconds=download_timeout_seconds,
|
|
106
|
+
max_image_dimension=max_image_dimension,
|
|
107
|
+
allowed_paths=allowed_paths,
|
|
108
|
+
user_agent=user_agent,
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
inference_content_security_config.additional_properties = d
|
|
112
|
+
return inference_content_security_config
|
|
113
|
+
|
|
114
|
+
@property
|
|
115
|
+
def additional_keys(self) -> list[str]:
|
|
116
|
+
return list(self.additional_properties.keys())
|
|
117
|
+
|
|
118
|
+
def __getitem__(self, key: str) -> Any:
|
|
119
|
+
return self.additional_properties[key]
|
|
120
|
+
|
|
121
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
122
|
+
self.additional_properties[key] = value
|
|
123
|
+
|
|
124
|
+
def __delitem__(self, key: str) -> None:
|
|
125
|
+
del self.additional_properties[key]
|
|
126
|
+
|
|
127
|
+
def __contains__(self, key: str) -> bool:
|
|
128
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T", bound="InferenceCredentials")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@_attrs_define
|
|
15
|
+
class InferenceCredentials:
|
|
16
|
+
"""
|
|
17
|
+
Attributes:
|
|
18
|
+
endpoint (str | Unset): S3-compatible endpoint (e.g., 's3.amazonaws.com' or 'localhost:9000' for MinIO) Example:
|
|
19
|
+
s3.amazonaws.com.
|
|
20
|
+
use_ssl (bool | Unset): Enable SSL/TLS for S3 connections (default: true for AWS, false for local MinIO)
|
|
21
|
+
Default: True.
|
|
22
|
+
access_key_id (str | Unset): AWS access key ID. Supports keystore syntax for secret lookup. Falls back to
|
|
23
|
+
AWS_ACCESS_KEY_ID environment variable if not set. Example: your-access-key-id.
|
|
24
|
+
secret_access_key (str | Unset): AWS secret access key. Supports keystore syntax for secret lookup. Falls back
|
|
25
|
+
to AWS_SECRET_ACCESS_KEY environment variable if not set. Example: your-secret-access-key.
|
|
26
|
+
session_token (str | Unset): Optional AWS session token for temporary credentials. Supports keystore syntax for
|
|
27
|
+
secret lookup. Example: your-session-token.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
endpoint: str | Unset = UNSET
|
|
31
|
+
use_ssl: bool | Unset = True
|
|
32
|
+
access_key_id: str | Unset = UNSET
|
|
33
|
+
secret_access_key: str | Unset = UNSET
|
|
34
|
+
session_token: str | Unset = UNSET
|
|
35
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
36
|
+
|
|
37
|
+
def to_dict(self) -> dict[str, Any]:
|
|
38
|
+
endpoint = self.endpoint
|
|
39
|
+
|
|
40
|
+
use_ssl = self.use_ssl
|
|
41
|
+
|
|
42
|
+
access_key_id = self.access_key_id
|
|
43
|
+
|
|
44
|
+
secret_access_key = self.secret_access_key
|
|
45
|
+
|
|
46
|
+
session_token = self.session_token
|
|
47
|
+
|
|
48
|
+
field_dict: dict[str, Any] = {}
|
|
49
|
+
field_dict.update(self.additional_properties)
|
|
50
|
+
field_dict.update({})
|
|
51
|
+
if endpoint is not UNSET:
|
|
52
|
+
field_dict["endpoint"] = endpoint
|
|
53
|
+
if use_ssl is not UNSET:
|
|
54
|
+
field_dict["use_ssl"] = use_ssl
|
|
55
|
+
if access_key_id is not UNSET:
|
|
56
|
+
field_dict["access_key_id"] = access_key_id
|
|
57
|
+
if secret_access_key is not UNSET:
|
|
58
|
+
field_dict["secret_access_key"] = secret_access_key
|
|
59
|
+
if session_token is not UNSET:
|
|
60
|
+
field_dict["session_token"] = session_token
|
|
61
|
+
|
|
62
|
+
return field_dict
|
|
63
|
+
|
|
64
|
+
@classmethod
|
|
65
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
66
|
+
d = dict(src_dict)
|
|
67
|
+
endpoint = d.pop("endpoint", UNSET)
|
|
68
|
+
|
|
69
|
+
use_ssl = d.pop("use_ssl", UNSET)
|
|
70
|
+
|
|
71
|
+
access_key_id = d.pop("access_key_id", UNSET)
|
|
72
|
+
|
|
73
|
+
secret_access_key = d.pop("secret_access_key", UNSET)
|
|
74
|
+
|
|
75
|
+
session_token = d.pop("session_token", UNSET)
|
|
76
|
+
|
|
77
|
+
inference_credentials = cls(
|
|
78
|
+
endpoint=endpoint,
|
|
79
|
+
use_ssl=use_ssl,
|
|
80
|
+
access_key_id=access_key_id,
|
|
81
|
+
secret_access_key=secret_access_key,
|
|
82
|
+
session_token=session_token,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
inference_credentials.additional_properties = d
|
|
86
|
+
return inference_credentials
|
|
87
|
+
|
|
88
|
+
@property
|
|
89
|
+
def additional_keys(self) -> list[str]:
|
|
90
|
+
return list(self.additional_properties.keys())
|
|
91
|
+
|
|
92
|
+
def __getitem__(self, key: str) -> Any:
|
|
93
|
+
return self.additional_properties[key]
|
|
94
|
+
|
|
95
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
96
|
+
self.additional_properties[key] = value
|
|
97
|
+
|
|
98
|
+
def __delitem__(self, key: str) -> None:
|
|
99
|
+
del self.additional_properties[key]
|
|
100
|
+
|
|
101
|
+
def __contains__(self, key: str) -> bool:
|
|
102
|
+
return key in self.additional_properties
|