dify-oapi2 0.3.0__py3-none-any.whl → 0.4.0__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.
- dify_oapi/api/completion/v1/model/completion/completion_inputs.py +28 -4
- dify_oapi/api/completion/v1/model/completion/completion_types.py +19 -1
- dify_oapi/api/completion/v1/model/completion/input_file_object.py +58 -0
- dify_oapi/api/completion/v1/model/completion/send_message_request_body.py +40 -44
- dify_oapi/api/completion/v1/model/completion/usage.py +4 -2
- dify_oapi/api/completion/v1/model/info/feature_config.py +91 -0
- dify_oapi/api/completion/v1/model/info/parameters_info.py +16 -8
- dify_oapi/api/completion/v1/model/info/site_info.py +3 -3
- dify_oapi/api/completion/v1/model/info/user_input_form.py +131 -16
- dify_oapi/api/knowledge/service.py +8 -0
- dify_oapi/api/knowledge/v1/model/batch_info.py +86 -0
- dify_oapi/api/knowledge/v1/model/bind_tags_to_dataset_request.py +30 -0
- dify_oapi/api/knowledge/v1/model/bind_tags_to_dataset_request_body.py +26 -0
- dify_oapi/api/{knowledge_base/v1/model/tag/bind_response.py → knowledge/v1/model/bind_tags_to_dataset_response.py} +1 -3
- dify_oapi/api/knowledge/v1/model/child_chunk_content.py +34 -0
- dify_oapi/api/knowledge/v1/model/child_chunk_info.py +101 -0
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/create_child_chunk_request.py +8 -2
- dify_oapi/api/knowledge/v1/model/create_child_chunk_request_body.py +44 -0
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/create_child_chunk_response.py +5 -1
- dify_oapi/api/knowledge/v1/model/create_dataset_request.py +30 -0
- dify_oapi/api/knowledge/v1/model/create_dataset_request_body.py +67 -0
- dify_oapi/api/knowledge/v1/model/create_dataset_response.py +7 -0
- dify_oapi/api/knowledge/v1/model/create_document_by_file_request.py +55 -0
- dify_oapi/api/knowledge/v1/model/create_document_by_file_request_body.py +73 -0
- dify_oapi/api/{knowledge_base/v1/model/document/create_by_file_response.py → knowledge/v1/model/create_document_by_file_response.py} +1 -1
- dify_oapi/api/knowledge/v1/model/create_document_by_text_request.py +44 -0
- dify_oapi/api/knowledge/v1/model/create_document_by_text_request_body.py +73 -0
- dify_oapi/api/{knowledge_base/v1/model/document/create_by_text_response.py → knowledge/v1/model/create_document_by_text_response.py} +3 -3
- dify_oapi/api/knowledge/v1/model/create_segment_request.py +50 -0
- dify_oapi/api/knowledge/v1/model/create_segment_request_body.py +31 -0
- dify_oapi/api/{knowledge_base/v1/model/segment/create_response.py → knowledge/v1/model/create_segment_response.py} +5 -2
- dify_oapi/api/knowledge/v1/model/create_tag_request.py +30 -0
- dify_oapi/api/knowledge/v1/model/create_tag_request_body.py +28 -0
- dify_oapi/api/knowledge/v1/model/create_tag_response.py +7 -0
- dify_oapi/api/knowledge/v1/model/data_source_info.py +34 -0
- dify_oapi/api/knowledge/v1/model/dataset_info.py +122 -0
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/delete_child_chunk_request.py +8 -2
- dify_oapi/api/knowledge/v1/model/delete_child_chunk_response.py +9 -0
- dify_oapi/api/knowledge/v1/model/delete_dataset_request.py +28 -0
- dify_oapi/api/{knowledge_base/v1/model/tag/delete_response.py → knowledge/v1/model/delete_dataset_response.py} +1 -3
- dify_oapi/api/knowledge/v1/model/delete_document_request.py +42 -0
- dify_oapi/api/knowledge/v1/model/delete_document_response.py +9 -0
- dify_oapi/api/knowledge/v1/model/delete_segment_request.py +48 -0
- dify_oapi/api/knowledge/v1/model/delete_segment_response.py +9 -0
- dify_oapi/api/knowledge/v1/model/delete_tag_request.py +30 -0
- dify_oapi/api/knowledge/v1/model/delete_tag_request_body.py +21 -0
- dify_oapi/api/{knowledge_base/v1/model/tag/unbind_response.py → knowledge/v1/model/delete_tag_response.py} +1 -3
- dify_oapi/api/knowledge/v1/model/document_info.py +132 -0
- dify_oapi/api/knowledge/v1/model/document_metadata.py +39 -0
- dify_oapi/api/knowledge/v1/model/embedding_model_parameters.py +47 -0
- dify_oapi/api/knowledge/v1/model/external_knowledge_info.py +34 -0
- dify_oapi/api/knowledge/v1/model/file_info.py +71 -0
- dify_oapi/api/knowledge/v1/model/get_batch_indexing_status_request.py +42 -0
- dify_oapi/api/knowledge/v1/model/get_batch_indexing_status_response.py +22 -0
- dify_oapi/api/knowledge/v1/model/get_dataset_request.py +28 -0
- dify_oapi/api/knowledge/v1/model/get_dataset_response.py +7 -0
- dify_oapi/api/knowledge/v1/model/get_dataset_tags_request.py +28 -0
- dify_oapi/api/knowledge/v1/model/get_dataset_tags_response.py +8 -0
- dify_oapi/api/knowledge/v1/model/get_document_request.py +42 -0
- dify_oapi/api/knowledge/v1/model/get_document_response.py +11 -0
- dify_oapi/api/knowledge/v1/model/get_segment_request.py +48 -0
- dify_oapi/api/{knowledge_base/v1/model/segment/get_response.py → knowledge/v1/model/get_segment_response.py} +5 -1
- dify_oapi/api/knowledge/v1/model/get_text_embedding_models_request.py +22 -0
- dify_oapi/api/knowledge/v1/model/get_text_embedding_models_response.py +7 -0
- dify_oapi/api/knowledge/v1/model/get_upload_file_info_request.py +42 -0
- dify_oapi/api/knowledge/v1/model/get_upload_file_info_response.py +11 -0
- dify_oapi/api/knowledge/v1/model/knowledge_types.py +100 -0
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/list_child_chunks_request.py +10 -4
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/list_child_chunks_response.py +4 -0
- dify_oapi/api/knowledge/v1/model/list_datasets_request.py +30 -0
- dify_oapi/api/{knowledge_base/v1/model/dataset/list_response.py → knowledge/v1/model/list_datasets_response.py} +1 -3
- dify_oapi/api/knowledge/v1/model/list_documents_request.py +48 -0
- dify_oapi/api/{knowledge_base/v1/model/document/list_response.py → knowledge/v1/model/list_documents_response.py} +3 -3
- dify_oapi/api/knowledge/v1/model/list_segments_request.py +60 -0
- dify_oapi/api/{knowledge_base/v1/model/segment/list_response.py → knowledge/v1/model/list_segments_response.py} +5 -2
- dify_oapi/api/knowledge/v1/model/list_tags_request.py +28 -0
- dify_oapi/api/knowledge/v1/model/list_tags_response.py +7 -0
- dify_oapi/api/knowledge/v1/model/model_credentials.py +34 -0
- dify_oapi/api/knowledge/v1/model/model_info.py +85 -0
- dify_oapi/api/knowledge/v1/model/model_parameters.py +34 -0
- dify_oapi/api/knowledge/v1/model/pagination_info.py +44 -0
- dify_oapi/api/knowledge/v1/model/preprocessing_rule.py +36 -0
- dify_oapi/api/knowledge/v1/model/process_rule.py +43 -0
- dify_oapi/api/knowledge/v1/model/process_rules.py +49 -0
- dify_oapi/api/knowledge/v1/model/query_info.py +29 -0
- dify_oapi/api/knowledge/v1/model/reranking_mode.py +36 -0
- dify_oapi/api/knowledge/v1/model/reranking_model.py +47 -0
- dify_oapi/api/knowledge/v1/model/retrieval_model.py +62 -0
- dify_oapi/api/knowledge/v1/model/retrieval_record.py +28 -0
- dify_oapi/api/knowledge/v1/model/retrieval_segment_info.py +41 -0
- dify_oapi/api/knowledge/v1/model/retrieve_from_dataset_request.py +36 -0
- dify_oapi/api/knowledge/v1/model/retrieve_from_dataset_request_body.py +38 -0
- dify_oapi/api/knowledge/v1/model/retrieve_from_dataset_response.py +9 -0
- dify_oapi/api/knowledge/v1/model/segment_content.py +39 -0
- dify_oapi/api/knowledge/v1/model/segment_document_info.py +41 -0
- dify_oapi/api/knowledge/v1/model/segment_info.py +131 -0
- dify_oapi/api/knowledge/v1/model/segmentation_rule.py +44 -0
- dify_oapi/api/knowledge/v1/model/subchunk_segmentation_rule.py +39 -0
- dify_oapi/api/knowledge/v1/model/tag_info.py +56 -0
- dify_oapi/api/knowledge/v1/model/unbind_tags_from_dataset_request.py +30 -0
- dify_oapi/api/knowledge/v1/model/unbind_tags_from_dataset_request_body.py +26 -0
- dify_oapi/api/knowledge/v1/model/unbind_tags_from_dataset_response.py +5 -0
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/update_child_chunk_request.py +8 -2
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/update_child_chunk_request_body.py +12 -1
- dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/update_child_chunk_response.py +4 -0
- dify_oapi/api/knowledge/v1/model/update_dataset_request.py +36 -0
- dify_oapi/api/knowledge/v1/model/update_dataset_request_body.py +62 -0
- dify_oapi/api/knowledge/v1/model/update_dataset_response.py +7 -0
- dify_oapi/api/knowledge/v1/model/update_document_by_file_request.py +61 -0
- dify_oapi/api/knowledge/v1/model/update_document_by_file_request_body.py +68 -0
- dify_oapi/api/{knowledge_base/v1/model/document/update_by_file_response.py → knowledge/v1/model/update_document_by_file_response.py} +3 -3
- dify_oapi/api/knowledge/v1/model/update_document_by_text_request.py +50 -0
- dify_oapi/api/knowledge/v1/model/update_document_by_text_request_body.py +73 -0
- dify_oapi/api/{knowledge_base/v1/model/document/update_by_text_response.py → knowledge/v1/model/update_document_by_text_response.py} +2 -4
- dify_oapi/api/knowledge/v1/model/update_document_status_request.py +51 -0
- dify_oapi/api/knowledge/v1/model/update_document_status_request_body.py +29 -0
- dify_oapi/api/knowledge/v1/model/update_document_status_response.py +9 -0
- dify_oapi/api/knowledge/v1/model/update_segment_request.py +56 -0
- dify_oapi/api/knowledge/v1/model/update_segment_request_body.py +31 -0
- dify_oapi/api/{knowledge_base/v1/model/segment/update_response.py → knowledge/v1/model/update_segment_response.py} +5 -1
- dify_oapi/api/knowledge/v1/model/update_tag_request.py +30 -0
- dify_oapi/api/knowledge/v1/model/update_tag_request_body.py +26 -0
- dify_oapi/api/knowledge/v1/model/update_tag_response.py +7 -0
- dify_oapi/api/knowledge/v1/resource/__init__.py +8 -0
- dify_oapi/api/knowledge/v1/resource/chunk.py +55 -0
- dify_oapi/api/knowledge/v1/resource/dataset.py +69 -0
- dify_oapi/api/knowledge/v1/resource/document.py +135 -0
- dify_oapi/api/knowledge/v1/resource/model.py +25 -0
- dify_oapi/api/knowledge/v1/resource/segment.py +55 -0
- dify_oapi/api/knowledge/v1/resource/tag.py +81 -0
- dify_oapi/api/knowledge/v1/version.py +18 -0
- dify_oapi/api/workflow/v1/model/{info/app_info.py → app_info.py} +1 -1
- dify_oapi/api/workflow/v1/model/file_upload_info.py +53 -0
- dify_oapi/api/workflow/v1/model/{log/get_workflow_logs_response.py → get_workflow_logs_response.py} +2 -2
- dify_oapi/api/workflow/v1/model/{workflow/get_workflow_run_detail_response.py → get_workflow_run_detail_response.py} +18 -0
- dify_oapi/api/workflow/v1/model/{info/site_info.py → site_info.py} +1 -1
- dify_oapi/api/workflow/v1/model/{file/upload_file_response.py → upload_file_response.py} +2 -2
- dify_oapi/api/workflow/v1/model/workflow_log_info.py +57 -0
- dify_oapi/api/workflow/v1/model/{log/workflow_run_log_info.py → workflow_run_log_info.py} +1 -1
- dify_oapi/api/workflow/v1/resource/workflow.py +56 -144
- dify_oapi/api/workflow/v1/version.py +1 -7
- dify_oapi/client.py +6 -6
- {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.4.0.dist-info}/METADATA +15 -11
- dify_oapi2-0.4.0.dist-info/RECORD +324 -0
- dify_oapi/api/knowledge_base/service.py +0 -8
- dify_oapi/api/knowledge_base/v1/model/dataset/__init__.py +0 -49
- dify_oapi/api/knowledge_base/v1/model/dataset/create_request.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/dataset/create_request_body.py +0 -72
- dify_oapi/api/knowledge_base/v1/model/dataset/create_response.py +0 -11
- dify_oapi/api/knowledge_base/v1/model/dataset/dataset_info.py +0 -150
- dify_oapi/api/knowledge_base/v1/model/dataset/dataset_types.py +0 -36
- dify_oapi/api/knowledge_base/v1/model/dataset/delete_request.py +0 -30
- dify_oapi/api/knowledge_base/v1/model/dataset/delete_response.py +0 -9
- dify_oapi/api/knowledge_base/v1/model/dataset/external_knowledge_info.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/dataset/filter_condition.py +0 -72
- dify_oapi/api/knowledge_base/v1/model/dataset/get_request.py +0 -30
- dify_oapi/api/knowledge_base/v1/model/dataset/get_response.py +0 -11
- dify_oapi/api/knowledge_base/v1/model/dataset/list_request.py +0 -45
- dify_oapi/api/knowledge_base/v1/model/dataset/metadata_filtering_conditions.py +0 -30
- dify_oapi/api/knowledge_base/v1/model/dataset/reranking_model.py +0 -28
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieval_model.py +0 -144
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_request_body.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/dataset/retrieve_response.py +0 -53
- dify_oapi/api/knowledge_base/v1/model/dataset/update_request.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/dataset/update_request_body.py +0 -58
- dify_oapi/api/knowledge_base/v1/model/dataset/update_response.py +0 -11
- dify_oapi/api/knowledge_base/v1/model/document/__init__.py +0 -0
- dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request.py +0 -53
- dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body.py +0 -31
- dify_oapi/api/knowledge_base/v1/model/document/create_by_file_request_body_data.py +0 -78
- dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/document/create_by_text_request_body.py +0 -75
- dify_oapi/api/knowledge_base/v1/model/document/data_source_info.py +0 -30
- dify_oapi/api/knowledge_base/v1/model/document/delete_request.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/document/delete_response.py +0 -9
- dify_oapi/api/knowledge_base/v1/model/document/document_info.py +0 -164
- dify_oapi/api/knowledge_base/v1/model/document/document_types.py +0 -36
- dify_oapi/api/knowledge_base/v1/model/document/get_request.py +0 -40
- dify_oapi/api/knowledge_base/v1/model/document/get_response.py +0 -9
- dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_request.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/document/get_upload_file_response.py +0 -11
- dify_oapi/api/knowledge_base/v1/model/document/indexing_status_info.py +0 -80
- dify_oapi/api/knowledge_base/v1/model/document/indexing_status_request.py +0 -36
- dify_oapi/api/knowledge_base/v1/model/document/indexing_status_response.py +0 -11
- dify_oapi/api/knowledge_base/v1/model/document/list_request.py +0 -42
- dify_oapi/api/knowledge_base/v1/model/document/pre_processing_rule.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/document/process_rule.py +0 -34
- dify_oapi/api/knowledge_base/v1/model/document/retrieval_model.py +0 -54
- dify_oapi/api/knowledge_base/v1/model/document/rules.py +0 -31
- dify_oapi/api/knowledge_base/v1/model/document/segmentation.py +0 -35
- dify_oapi/api/knowledge_base/v1/model/document/subchunk_segmentation.py +0 -35
- dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request.py +0 -53
- dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body.py +0 -26
- dify_oapi/api/knowledge_base/v1/model/document/update_by_file_request_body_data.py +0 -40
- dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request.py +0 -55
- dify_oapi/api/knowledge_base/v1/model/document/update_by_text_request_body.py +0 -46
- dify_oapi/api/knowledge_base/v1/model/document/update_status_request.py +0 -55
- dify_oapi/api/knowledge_base/v1/model/document/update_status_request_body.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/document/update_status_response.py +0 -9
- dify_oapi/api/knowledge_base/v1/model/document/upload_file_info.py +0 -65
- dify_oapi/api/knowledge_base/v1/model/metadata/__init__.py +0 -35
- dify_oapi/api/knowledge_base/v1/model/metadata/create_request.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/metadata/create_request_body.py +0 -31
- dify_oapi/api/knowledge_base/v1/model/metadata/create_response.py +0 -13
- dify_oapi/api/knowledge_base/v1/model/metadata/delete_request.py +0 -36
- dify_oapi/api/knowledge_base/v1/model/metadata/delete_response.py +0 -7
- dify_oapi/api/knowledge_base/v1/model/metadata/list_request.py +0 -30
- dify_oapi/api/knowledge_base/v1/model/metadata/list_response.py +0 -9
- dify_oapi/api/knowledge_base/v1/model/metadata/metadata_info.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/metadata/metadata_types.py +0 -15
- dify_oapi/api/knowledge_base/v1/model/metadata/toggle_builtin_request.py +0 -36
- dify_oapi/api/knowledge_base/v1/model/metadata/toggle_builtin_response.py +0 -7
- dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/metadata/update_document_request_body.py +0 -79
- dify_oapi/api/knowledge_base/v1/model/metadata/update_document_response.py +0 -7
- dify_oapi/api/knowledge_base/v1/model/metadata/update_request.py +0 -44
- dify_oapi/api/knowledge_base/v1/model/metadata/update_request_body.py +0 -24
- dify_oapi/api/knowledge_base/v1/model/metadata/update_response.py +0 -13
- dify_oapi/api/knowledge_base/v1/model/segment/__init__.py +0 -77
- dify_oapi/api/knowledge_base/v1/model/segment/child_chunk_info.py +0 -88
- dify_oapi/api/knowledge_base/v1/model/segment/create_child_chunk_request_body.py +0 -23
- dify_oapi/api/knowledge_base/v1/model/segment/create_request.py +0 -42
- dify_oapi/api/knowledge_base/v1/model/segment/create_request_body.py +0 -25
- dify_oapi/api/knowledge_base/v1/model/segment/delete_child_chunk_response.py +0 -5
- dify_oapi/api/knowledge_base/v1/model/segment/delete_request.py +0 -40
- dify_oapi/api/knowledge_base/v1/model/segment/delete_response.py +0 -5
- dify_oapi/api/knowledge_base/v1/model/segment/get_request.py +0 -40
- dify_oapi/api/knowledge_base/v1/model/segment/list_request.py +0 -50
- dify_oapi/api/knowledge_base/v1/model/segment/segment_data.py +0 -43
- dify_oapi/api/knowledge_base/v1/model/segment/segment_info.py +0 -123
- dify_oapi/api/knowledge_base/v1/model/segment/segment_types.py +0 -24
- dify_oapi/api/knowledge_base/v1/model/segment/update_request.py +0 -48
- dify_oapi/api/knowledge_base/v1/model/segment/update_request_body.py +0 -25
- dify_oapi/api/knowledge_base/v1/model/tag/__init__.py +0 -41
- dify_oapi/api/knowledge_base/v1/model/tag/bind_request.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/tag/bind_request_body.py +0 -29
- dify_oapi/api/knowledge_base/v1/model/tag/create_request.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/tag/create_request_body.py +0 -24
- dify_oapi/api/knowledge_base/v1/model/tag/create_response.py +0 -16
- dify_oapi/api/knowledge_base/v1/model/tag/delete_request.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/tag/delete_request_body.py +0 -24
- dify_oapi/api/knowledge_base/v1/model/tag/list_request.py +0 -24
- dify_oapi/api/knowledge_base/v1/model/tag/list_response.py +0 -19
- dify_oapi/api/knowledge_base/v1/model/tag/query_bound_request.py +0 -30
- dify_oapi/api/knowledge_base/v1/model/tag/query_bound_response.py +0 -9
- dify_oapi/api/knowledge_base/v1/model/tag/tag_info.py +0 -38
- dify_oapi/api/knowledge_base/v1/model/tag/tag_types.py +0 -12
- dify_oapi/api/knowledge_base/v1/model/tag/unbind_request.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/tag/unbind_request_body.py +0 -29
- dify_oapi/api/knowledge_base/v1/model/tag/update_request.py +0 -32
- dify_oapi/api/knowledge_base/v1/model/tag/update_request_body.py +0 -29
- dify_oapi/api/knowledge_base/v1/model/tag/update_response.py +0 -23
- dify_oapi/api/knowledge_base/v1/resource/__init__.py +0 -7
- dify_oapi/api/knowledge_base/v1/resource/dataset.py +0 -58
- dify_oapi/api/knowledge_base/v1/resource/document.py +0 -107
- dify_oapi/api/knowledge_base/v1/resource/metadata.py +0 -65
- dify_oapi/api/knowledge_base/v1/resource/segment.py +0 -110
- dify_oapi/api/knowledge_base/v1/resource/tag.py +0 -65
- dify_oapi/api/knowledge_base/v1/version.py +0 -12
- dify_oapi/api/workflow/v1/model/file/__init__.py +0 -1
- dify_oapi/api/workflow/v1/model/file/file_info.py +0 -53
- dify_oapi/api/workflow/v1/model/file/preview_file_request.py +0 -34
- dify_oapi/api/workflow/v1/model/file/preview_file_response.py +0 -9
- dify_oapi/api/workflow/v1/model/log/__init__.py +0 -0
- dify_oapi/api/workflow/v1/model/log/log_info.py +0 -57
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request.py +0 -38
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_request_body.py +0 -47
- dify_oapi/api/workflow/v1/model/workflow/run_specific_workflow_response.py +0 -9
- dify_oapi/api/workflow/v1/model/workflow/streaming_event.py +0 -42
- dify_oapi/api/workflow/v1/resource/file.py +0 -63
- dify_oapi/api/workflow/v1/resource/info.py +0 -93
- dify_oapi/api/workflow/v1/resource/log.py +0 -43
- dify_oapi2-0.3.0.dist-info/RECORD +0 -348
- /dify_oapi/api/{knowledge_base → knowledge}/__init__.py +0 -0
- /dify_oapi/api/{knowledge_base → knowledge}/v1/__init__.py +0 -0
- /dify_oapi/api/{knowledge_base → knowledge}/v1/model/__init__.py +0 -0
- /dify_oapi/api/workflow/v1/model/{log/end_user_info.py → end_user_info.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/execution_metadata.py → execution_metadata.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/file_upload_config.py → file_upload_config.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/get_info_request.py → get_info_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/get_info_response.py → get_info_response.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/get_parameters_request.py → get_parameters_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/get_parameters_response.py → get_parameters_response.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/get_site_request.py → get_site_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/get_site_response.py → get_site_response.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{log/get_workflow_logs_request.py → get_workflow_logs_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/get_workflow_run_detail_request.py → get_workflow_run_detail_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/node_info.py → node_info.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/parameters_info.py → parameters_info.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/run_workflow_request.py → run_workflow_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/run_workflow_request_body.py → run_workflow_request_body.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/run_workflow_response.py → run_workflow_response.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/stop_workflow_request.py → stop_workflow_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/stop_workflow_request_body.py → stop_workflow_request_body.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/stop_workflow_response.py → stop_workflow_response.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/system_parameters.py → system_parameters.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{file/upload_file_request.py → upload_file_request.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{file/upload_file_request_body.py → upload_file_request_body.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{info/user_input_form.py → user_input_form.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/workflow_file_info.py → workflow_file_info.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/workflow_inputs.py → workflow_inputs.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/workflow_run_data.py → workflow_run_data.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/workflow_run_info.py → workflow_run_info.py} +0 -0
- /dify_oapi/api/workflow/v1/model/{workflow/workflow_types.py → workflow_types.py} +0 -0
- {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.4.0.dist-info}/LICENSE +0 -0
- {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.4.0.dist-info}/WHEEL +0 -0
@@ -1,5 +1,7 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
from typing import Any
|
4
|
+
|
3
5
|
from pydantic import BaseModel
|
4
6
|
|
5
7
|
|
@@ -7,22 +9,44 @@ class CompletionInputs(BaseModel):
|
|
7
9
|
"""
|
8
10
|
Inputs for completion application containing variables defined in the App.
|
9
11
|
Text generation applications require at least the query field.
|
12
|
+
Additional custom variables can be added as needed.
|
10
13
|
"""
|
11
14
|
|
12
|
-
query: str
|
15
|
+
query: str # Required: User input text content
|
16
|
+
|
17
|
+
# Allow additional fields for custom variables
|
18
|
+
model_config = {"extra": "allow"}
|
13
19
|
|
14
20
|
@staticmethod
|
15
21
|
def builder() -> CompletionInputsBuilder:
|
16
22
|
return CompletionInputsBuilder()
|
17
23
|
|
24
|
+
def with_variables(self, **kwargs: Any) -> CompletionInputs:
|
25
|
+
result: CompletionInputs = self.model_copy(update=kwargs)
|
26
|
+
return result
|
27
|
+
|
18
28
|
|
19
29
|
class CompletionInputsBuilder:
|
20
30
|
def __init__(self):
|
21
|
-
self.
|
31
|
+
self._inputs: CompletionInputs | None = None
|
22
32
|
|
23
33
|
def build(self) -> CompletionInputs:
|
24
|
-
|
34
|
+
if self._inputs is None:
|
35
|
+
raise ValueError("query field is required for CompletionInputs")
|
36
|
+
return self._inputs
|
25
37
|
|
26
38
|
def query(self, query: str) -> CompletionInputsBuilder:
|
27
|
-
self.
|
39
|
+
self._inputs = CompletionInputs(query=query)
|
40
|
+
return self
|
41
|
+
|
42
|
+
def add_variable(self, key: str, value: Any) -> CompletionInputsBuilder:
|
43
|
+
if self._inputs is None:
|
44
|
+
raise ValueError("Must set query first")
|
45
|
+
self._inputs = self._inputs.with_variables(**{key: value})
|
46
|
+
return self
|
47
|
+
|
48
|
+
def variables(self, **kwargs: Any) -> CompletionInputsBuilder:
|
49
|
+
if self._inputs is None:
|
50
|
+
raise ValueError("Must set query first")
|
51
|
+
self._inputs = self._inputs.with_variables(**kwargs)
|
28
52
|
return self
|
@@ -12,7 +12,7 @@ FileType = Literal["image"]
|
|
12
12
|
TransferMethod = Literal["remote_url", "local_file"]
|
13
13
|
|
14
14
|
# Feedback rating types
|
15
|
-
FeedbackRating = Literal["like", "dislike"
|
15
|
+
FeedbackRating = Literal["like", "dislike"]
|
16
16
|
|
17
17
|
# Annotation action types
|
18
18
|
AnnotationAction = Literal["enable", "disable"]
|
@@ -25,3 +25,21 @@ AppMode = Literal["completion"]
|
|
25
25
|
|
26
26
|
# Job status types
|
27
27
|
JobStatus = Literal["waiting", "running", "completed", "failed"]
|
28
|
+
|
29
|
+
# Event types for streaming
|
30
|
+
EventType = Literal["message", "message_end", "tts_message", "tts_message_end", "message_replace", "error", "ping"]
|
31
|
+
|
32
|
+
# User input form types
|
33
|
+
UserInputFormType = Literal["text-input", "paragraph", "select"]
|
34
|
+
|
35
|
+
# Audio format types
|
36
|
+
AudioFormat = Literal["mp3", "wav"]
|
37
|
+
|
38
|
+
# Image format types
|
39
|
+
ImageFormat = Literal["png", "jpg", "jpeg", "webp", "gif"]
|
40
|
+
|
41
|
+
# Currency types (common currencies)
|
42
|
+
CurrencyType = Literal["USD", "EUR", "CNY", "JPY", "GBP"]
|
43
|
+
|
44
|
+
# Language codes (common language codes)
|
45
|
+
LanguageCode = Literal["en-US", "zh-CN", "ja-JP", "ko-KR", "fr-FR", "de-DE", "es-ES", "pt-BR", "ru-RU"]
|
@@ -0,0 +1,58 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel, field_validator
|
4
|
+
|
5
|
+
from .completion_types import FileType, TransferMethod
|
6
|
+
|
7
|
+
|
8
|
+
class InputFileObject(BaseModel):
|
9
|
+
"""File input object for multimodal understanding."""
|
10
|
+
|
11
|
+
type: FileType
|
12
|
+
transfer_method: TransferMethod
|
13
|
+
url: str | None = None
|
14
|
+
upload_file_id: str | None = None
|
15
|
+
|
16
|
+
@field_validator("url", "upload_file_id")
|
17
|
+
@classmethod
|
18
|
+
def validate_transfer_method_fields(cls, v, info):
|
19
|
+
"""Validate that the correct field is provided based on transfer_method."""
|
20
|
+
if info.data.get("transfer_method") == "remote_url":
|
21
|
+
if info.field_name == "url" and v is None:
|
22
|
+
raise ValueError("url is required when transfer_method is remote_url")
|
23
|
+
if info.field_name == "upload_file_id" and v is not None:
|
24
|
+
raise ValueError("upload_file_id must not be provided when transfer_method is remote_url")
|
25
|
+
elif info.data.get("transfer_method") == "local_file":
|
26
|
+
if info.field_name == "upload_file_id" and v is None:
|
27
|
+
raise ValueError("upload_file_id is required when transfer_method is local_file")
|
28
|
+
if info.field_name == "url" and v is not None:
|
29
|
+
raise ValueError("url must not be provided when transfer_method is local_file")
|
30
|
+
return v
|
31
|
+
|
32
|
+
@staticmethod
|
33
|
+
def builder() -> InputFileObjectBuilder:
|
34
|
+
return InputFileObjectBuilder()
|
35
|
+
|
36
|
+
|
37
|
+
class InputFileObjectBuilder:
|
38
|
+
def __init__(self):
|
39
|
+
self._file_object = InputFileObject(type="image", transfer_method="remote_url")
|
40
|
+
|
41
|
+
def build(self) -> InputFileObject:
|
42
|
+
return self._file_object
|
43
|
+
|
44
|
+
def type(self, type_: FileType) -> InputFileObjectBuilder:
|
45
|
+
self._file_object.type = type_
|
46
|
+
return self
|
47
|
+
|
48
|
+
def transfer_method(self, transfer_method: TransferMethod) -> InputFileObjectBuilder:
|
49
|
+
self._file_object.transfer_method = transfer_method
|
50
|
+
return self
|
51
|
+
|
52
|
+
def url(self, url: str) -> InputFileObjectBuilder:
|
53
|
+
self._file_object.url = url
|
54
|
+
return self
|
55
|
+
|
56
|
+
def upload_file_id(self, upload_file_id: str) -> InputFileObjectBuilder:
|
57
|
+
self._file_object.upload_file_id = upload_file_id
|
58
|
+
return self
|
@@ -1,51 +1,33 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from
|
3
|
+
from typing import Any
|
4
4
|
|
5
|
-
from
|
6
|
-
from .completion_types import FileType, ResponseMode, TransferMethod
|
7
|
-
|
8
|
-
|
9
|
-
class FileInfo(BaseModel):
|
10
|
-
type: FileType | None = None
|
11
|
-
transfer_method: TransferMethod | None = None
|
12
|
-
url: str | None = None
|
13
|
-
upload_file_id: str | None = None
|
14
|
-
|
15
|
-
@staticmethod
|
16
|
-
def builder() -> FileInfoBuilder:
|
17
|
-
return FileInfoBuilder()
|
18
|
-
|
19
|
-
|
20
|
-
class FileInfoBuilder:
|
21
|
-
def __init__(self):
|
22
|
-
self._file_info = FileInfo()
|
23
|
-
|
24
|
-
def build(self) -> FileInfo:
|
25
|
-
return self._file_info
|
26
|
-
|
27
|
-
def type(self, type_: FileType) -> FileInfoBuilder:
|
28
|
-
self._file_info.type = type_
|
29
|
-
return self
|
5
|
+
from pydantic import BaseModel, field_validator
|
30
6
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
def url(self, url: str) -> FileInfoBuilder:
|
36
|
-
self._file_info.url = url
|
37
|
-
return self
|
38
|
-
|
39
|
-
def upload_file_id(self, upload_file_id: str) -> FileInfoBuilder:
|
40
|
-
self._file_info.upload_file_id = upload_file_id
|
41
|
-
return self
|
7
|
+
from .completion_inputs import CompletionInputs
|
8
|
+
from .completion_types import ResponseMode
|
9
|
+
from .input_file_object import InputFileObject
|
42
10
|
|
43
11
|
|
44
12
|
class SendMessageRequestBody(BaseModel):
|
45
|
-
|
46
|
-
|
13
|
+
"""Request body for sending completion messages."""
|
14
|
+
|
15
|
+
inputs: dict[str, Any] # Variable values defined by the App, must include 'query'
|
16
|
+
response_mode: ResponseMode | None = "streaming"
|
47
17
|
user: str | None = None
|
48
|
-
files: list[
|
18
|
+
files: list[InputFileObject] | None = None
|
19
|
+
|
20
|
+
@field_validator("inputs")
|
21
|
+
@classmethod
|
22
|
+
def validate_inputs(cls, v):
|
23
|
+
"""Validate that inputs contains the required 'query' field."""
|
24
|
+
if not isinstance(v, dict):
|
25
|
+
raise ValueError("inputs must be a dictionary")
|
26
|
+
if "query" not in v:
|
27
|
+
raise ValueError('inputs must contain a "query" field')
|
28
|
+
if not isinstance(v["query"], str):
|
29
|
+
raise ValueError("query field must be a string")
|
30
|
+
return v
|
49
31
|
|
50
32
|
@staticmethod
|
51
33
|
def builder() -> SendMessageRequestBodyBuilder:
|
@@ -54,13 +36,27 @@ class SendMessageRequestBody(BaseModel):
|
|
54
36
|
|
55
37
|
class SendMessageRequestBodyBuilder:
|
56
38
|
def __init__(self):
|
57
|
-
self._send_message_request_body = SendMessageRequestBody()
|
39
|
+
self._send_message_request_body = SendMessageRequestBody(inputs={"query": ""})
|
58
40
|
|
59
41
|
def build(self) -> SendMessageRequestBody:
|
60
42
|
return self._send_message_request_body
|
61
43
|
|
62
|
-
def inputs(self, inputs: CompletionInputs) -> SendMessageRequestBodyBuilder:
|
63
|
-
|
44
|
+
def inputs(self, inputs: CompletionInputs | dict[str, Any]) -> SendMessageRequestBodyBuilder:
|
45
|
+
"""Set inputs from CompletionInputs object or dictionary."""
|
46
|
+
if isinstance(inputs, CompletionInputs):
|
47
|
+
self._send_message_request_body.inputs = inputs.model_dump()
|
48
|
+
else:
|
49
|
+
self._send_message_request_body.inputs = inputs
|
50
|
+
return self
|
51
|
+
|
52
|
+
def query(self, query: str) -> SendMessageRequestBodyBuilder:
|
53
|
+
"""Set the query field directly."""
|
54
|
+
self._send_message_request_body.inputs["query"] = query
|
55
|
+
return self
|
56
|
+
|
57
|
+
def add_variable(self, key: str, value: str) -> SendMessageRequestBodyBuilder:
|
58
|
+
"""Add a custom variable to inputs."""
|
59
|
+
self._send_message_request_body.inputs[key] = value
|
64
60
|
return self
|
65
61
|
|
66
62
|
def response_mode(self, response_mode: ResponseMode) -> SendMessageRequestBodyBuilder:
|
@@ -71,6 +67,6 @@ class SendMessageRequestBodyBuilder:
|
|
71
67
|
self._send_message_request_body.user = user
|
72
68
|
return self
|
73
69
|
|
74
|
-
def files(self, files: list[
|
70
|
+
def files(self, files: list[InputFileObject]) -> SendMessageRequestBodyBuilder:
|
75
71
|
self._send_message_request_body.files = files
|
76
72
|
return self
|
@@ -2,6 +2,8 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from pydantic import BaseModel
|
4
4
|
|
5
|
+
from .completion_types import CurrencyType
|
6
|
+
|
5
7
|
|
6
8
|
class Usage(BaseModel):
|
7
9
|
prompt_tokens: int | None = None
|
@@ -14,7 +16,7 @@ class Usage(BaseModel):
|
|
14
16
|
completion_price: str | None = None
|
15
17
|
total_tokens: int | None = None
|
16
18
|
total_price: str | None = None
|
17
|
-
currency:
|
19
|
+
currency: CurrencyType | None = None
|
18
20
|
latency: float | None = None
|
19
21
|
|
20
22
|
@staticmethod
|
@@ -69,7 +71,7 @@ class UsageBuilder:
|
|
69
71
|
self._usage.total_price = total_price
|
70
72
|
return self
|
71
73
|
|
72
|
-
def currency(self, currency:
|
74
|
+
def currency(self, currency: CurrencyType) -> UsageBuilder:
|
73
75
|
self._usage.currency = currency
|
74
76
|
return self
|
75
77
|
|
@@ -0,0 +1,91 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pydantic import BaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class SuggestedQuestionsAfterAnswerConfig(BaseModel):
|
7
|
+
"""Configuration for suggested questions after answer feature."""
|
8
|
+
|
9
|
+
enabled: bool
|
10
|
+
|
11
|
+
@staticmethod
|
12
|
+
def builder() -> SuggestedQuestionsAfterAnswerConfigBuilder:
|
13
|
+
return SuggestedQuestionsAfterAnswerConfigBuilder()
|
14
|
+
|
15
|
+
|
16
|
+
class SuggestedQuestionsAfterAnswerConfigBuilder:
|
17
|
+
def __init__(self):
|
18
|
+
self._config = SuggestedQuestionsAfterAnswerConfig(enabled=False)
|
19
|
+
|
20
|
+
def build(self) -> SuggestedQuestionsAfterAnswerConfig:
|
21
|
+
return self._config
|
22
|
+
|
23
|
+
def enabled(self, enabled: bool) -> SuggestedQuestionsAfterAnswerConfigBuilder:
|
24
|
+
self._config.enabled = enabled
|
25
|
+
return self
|
26
|
+
|
27
|
+
|
28
|
+
class SpeechToTextConfig(BaseModel):
|
29
|
+
"""Configuration for speech to text feature."""
|
30
|
+
|
31
|
+
enabled: bool
|
32
|
+
|
33
|
+
@staticmethod
|
34
|
+
def builder() -> SpeechToTextConfigBuilder:
|
35
|
+
return SpeechToTextConfigBuilder()
|
36
|
+
|
37
|
+
|
38
|
+
class SpeechToTextConfigBuilder:
|
39
|
+
def __init__(self):
|
40
|
+
self._config = SpeechToTextConfig(enabled=False)
|
41
|
+
|
42
|
+
def build(self) -> SpeechToTextConfig:
|
43
|
+
return self._config
|
44
|
+
|
45
|
+
def enabled(self, enabled: bool) -> SpeechToTextConfigBuilder:
|
46
|
+
self._config.enabled = enabled
|
47
|
+
return self
|
48
|
+
|
49
|
+
|
50
|
+
class RetrieverResourceConfig(BaseModel):
|
51
|
+
"""Configuration for retriever resource (citation and attribution) feature."""
|
52
|
+
|
53
|
+
enabled: bool
|
54
|
+
|
55
|
+
@staticmethod
|
56
|
+
def builder() -> RetrieverResourceConfigBuilder:
|
57
|
+
return RetrieverResourceConfigBuilder()
|
58
|
+
|
59
|
+
|
60
|
+
class RetrieverResourceConfigBuilder:
|
61
|
+
def __init__(self):
|
62
|
+
self._config = RetrieverResourceConfig(enabled=False)
|
63
|
+
|
64
|
+
def build(self) -> RetrieverResourceConfig:
|
65
|
+
return self._config
|
66
|
+
|
67
|
+
def enabled(self, enabled: bool) -> RetrieverResourceConfigBuilder:
|
68
|
+
self._config.enabled = enabled
|
69
|
+
return self
|
70
|
+
|
71
|
+
|
72
|
+
class AnnotationReplyConfig(BaseModel):
|
73
|
+
"""Configuration for annotation reply feature."""
|
74
|
+
|
75
|
+
enabled: bool
|
76
|
+
|
77
|
+
@staticmethod
|
78
|
+
def builder() -> AnnotationReplyConfigBuilder:
|
79
|
+
return AnnotationReplyConfigBuilder()
|
80
|
+
|
81
|
+
|
82
|
+
class AnnotationReplyConfigBuilder:
|
83
|
+
def __init__(self):
|
84
|
+
self._config = AnnotationReplyConfig(enabled=False)
|
85
|
+
|
86
|
+
def build(self) -> AnnotationReplyConfig:
|
87
|
+
return self._config
|
88
|
+
|
89
|
+
def enabled(self, enabled: bool) -> AnnotationReplyConfigBuilder:
|
90
|
+
self._config.enabled = enabled
|
91
|
+
return self
|
@@ -2,6 +2,12 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from pydantic import BaseModel
|
4
4
|
|
5
|
+
from .feature_config import (
|
6
|
+
AnnotationReplyConfig,
|
7
|
+
RetrieverResourceConfig,
|
8
|
+
SpeechToTextConfig,
|
9
|
+
SuggestedQuestionsAfterAnswerConfig,
|
10
|
+
)
|
5
11
|
from .file_upload_config import FileUploadConfig
|
6
12
|
from .system_parameters import SystemParameters
|
7
13
|
from .user_input_form import UserInputForm
|
@@ -10,10 +16,10 @@ from .user_input_form import UserInputForm
|
|
10
16
|
class ParametersInfo(BaseModel):
|
11
17
|
opening_statement: str | None = None
|
12
18
|
suggested_questions: list[str] | None = None
|
13
|
-
suggested_questions_after_answer:
|
14
|
-
speech_to_text:
|
15
|
-
retriever_resource:
|
16
|
-
annotation_reply:
|
19
|
+
suggested_questions_after_answer: SuggestedQuestionsAfterAnswerConfig | None = None
|
20
|
+
speech_to_text: SpeechToTextConfig | None = None
|
21
|
+
retriever_resource: RetrieverResourceConfig | None = None
|
22
|
+
annotation_reply: AnnotationReplyConfig | None = None
|
17
23
|
user_input_form: list[UserInputForm] | None = None
|
18
24
|
file_upload: FileUploadConfig | None = None
|
19
25
|
system_parameters: SystemParameters | None = None
|
@@ -38,19 +44,21 @@ class ParametersInfoBuilder:
|
|
38
44
|
self._parameters_info.suggested_questions = suggested_questions
|
39
45
|
return self
|
40
46
|
|
41
|
-
def suggested_questions_after_answer(
|
47
|
+
def suggested_questions_after_answer(
|
48
|
+
self, suggested_questions_after_answer: SuggestedQuestionsAfterAnswerConfig
|
49
|
+
) -> ParametersInfoBuilder:
|
42
50
|
self._parameters_info.suggested_questions_after_answer = suggested_questions_after_answer
|
43
51
|
return self
|
44
52
|
|
45
|
-
def speech_to_text(self, speech_to_text:
|
53
|
+
def speech_to_text(self, speech_to_text: SpeechToTextConfig) -> ParametersInfoBuilder:
|
46
54
|
self._parameters_info.speech_to_text = speech_to_text
|
47
55
|
return self
|
48
56
|
|
49
|
-
def retriever_resource(self, retriever_resource:
|
57
|
+
def retriever_resource(self, retriever_resource: RetrieverResourceConfig) -> ParametersInfoBuilder:
|
50
58
|
self._parameters_info.retriever_resource = retriever_resource
|
51
59
|
return self
|
52
60
|
|
53
|
-
def annotation_reply(self, annotation_reply:
|
61
|
+
def annotation_reply(self, annotation_reply: AnnotationReplyConfig) -> ParametersInfoBuilder:
|
54
62
|
self._parameters_info.annotation_reply = annotation_reply
|
55
63
|
return self
|
56
64
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from pydantic import BaseModel
|
4
4
|
|
5
|
-
from ..completion.completion_types import IconType
|
5
|
+
from ..completion.completion_types import IconType, LanguageCode
|
6
6
|
|
7
7
|
|
8
8
|
class SiteInfo(BaseModel):
|
@@ -17,7 +17,7 @@ class SiteInfo(BaseModel):
|
|
17
17
|
copyright: str | None = None
|
18
18
|
privacy_policy: str | None = None
|
19
19
|
custom_disclaimer: str | None = None
|
20
|
-
default_language:
|
20
|
+
default_language: LanguageCode | None = None
|
21
21
|
show_workflow_steps: bool | None = None
|
22
22
|
use_icon_as_answer_icon: bool | None = None
|
23
23
|
|
@@ -77,7 +77,7 @@ class SiteInfoBuilder:
|
|
77
77
|
self._site_info.custom_disclaimer = custom_disclaimer
|
78
78
|
return self
|
79
79
|
|
80
|
-
def default_language(self, default_language:
|
80
|
+
def default_language(self, default_language: LanguageCode) -> SiteInfoBuilder:
|
81
81
|
self._site_info.default_language = default_language
|
82
82
|
return self
|
83
83
|
|
@@ -1,19 +1,60 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from pydantic import BaseModel
|
3
|
+
from pydantic import BaseModel, Field
|
4
4
|
|
5
5
|
|
6
|
-
class
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
class TextInputControl(BaseModel):
|
7
|
+
"""Text input control configuration."""
|
8
|
+
|
9
|
+
label: str
|
10
|
+
variable: str
|
11
|
+
required: bool
|
12
|
+
default: str | None = None
|
13
|
+
|
14
|
+
|
15
|
+
class ParagraphControl(BaseModel):
|
16
|
+
"""Paragraph (multi-line text) control configuration."""
|
17
|
+
|
18
|
+
label: str
|
19
|
+
variable: str
|
20
|
+
required: bool
|
10
21
|
default: str | None = None
|
11
|
-
|
22
|
+
|
23
|
+
|
24
|
+
class SelectControl(BaseModel):
|
25
|
+
"""Select (dropdown) control configuration."""
|
26
|
+
|
27
|
+
label: str
|
28
|
+
variable: str
|
29
|
+
required: bool
|
30
|
+
default: str | None = None
|
31
|
+
options: list[str]
|
32
|
+
|
33
|
+
|
34
|
+
class UserInputForm(BaseModel):
|
35
|
+
"""User input form configuration supporting different control types."""
|
36
|
+
|
37
|
+
# Use discriminated union to support different form control types
|
38
|
+
text_input: TextInputControl | None = Field(default=None, alias="text-input")
|
39
|
+
paragraph: ParagraphControl | None = None
|
40
|
+
select: SelectControl | None = None
|
12
41
|
|
13
42
|
@staticmethod
|
14
43
|
def builder() -> UserInputFormBuilder:
|
15
44
|
return UserInputFormBuilder()
|
16
45
|
|
46
|
+
@staticmethod
|
47
|
+
def text_input_builder() -> TextInputFormBuilder:
|
48
|
+
return TextInputFormBuilder()
|
49
|
+
|
50
|
+
@staticmethod
|
51
|
+
def paragraph_builder() -> ParagraphFormBuilder:
|
52
|
+
return ParagraphFormBuilder()
|
53
|
+
|
54
|
+
@staticmethod
|
55
|
+
def select_builder() -> SelectFormBuilder:
|
56
|
+
return SelectFormBuilder()
|
57
|
+
|
17
58
|
|
18
59
|
class UserInputFormBuilder:
|
19
60
|
def __init__(self):
|
@@ -22,22 +63,96 @@ class UserInputFormBuilder:
|
|
22
63
|
def build(self) -> UserInputForm:
|
23
64
|
return self._user_input_form
|
24
65
|
|
25
|
-
def
|
26
|
-
self._user_input_form.
|
66
|
+
def text_input(self, text_input: TextInputControl) -> UserInputFormBuilder:
|
67
|
+
self._user_input_form.text_input = text_input
|
68
|
+
return self
|
69
|
+
|
70
|
+
def paragraph(self, paragraph: ParagraphControl) -> UserInputFormBuilder:
|
71
|
+
self._user_input_form.paragraph = paragraph
|
72
|
+
return self
|
73
|
+
|
74
|
+
def select(self, select: SelectControl) -> UserInputFormBuilder:
|
75
|
+
self._user_input_form.select = select
|
76
|
+
return self
|
77
|
+
|
78
|
+
|
79
|
+
class TextInputFormBuilder:
|
80
|
+
def __init__(self):
|
81
|
+
self._control = TextInputControl(label="", variable="", required=False)
|
82
|
+
|
83
|
+
def build(self) -> UserInputForm:
|
84
|
+
form = UserInputForm()
|
85
|
+
form.text_input = self._control
|
86
|
+
return form
|
87
|
+
|
88
|
+
def label(self, label: str) -> TextInputFormBuilder:
|
89
|
+
self._control.label = label
|
90
|
+
return self
|
91
|
+
|
92
|
+
def variable(self, variable: str) -> TextInputFormBuilder:
|
93
|
+
self._control.variable = variable
|
94
|
+
return self
|
95
|
+
|
96
|
+
def required(self, required: bool) -> TextInputFormBuilder:
|
97
|
+
self._control.required = required
|
98
|
+
return self
|
99
|
+
|
100
|
+
def default(self, default: str) -> TextInputFormBuilder:
|
101
|
+
self._control.default = default
|
102
|
+
return self
|
103
|
+
|
104
|
+
|
105
|
+
class ParagraphFormBuilder:
|
106
|
+
def __init__(self):
|
107
|
+
self._control = ParagraphControl(label="", variable="", required=False)
|
108
|
+
|
109
|
+
def build(self) -> UserInputForm:
|
110
|
+
form = UserInputForm()
|
111
|
+
form.paragraph = self._control
|
112
|
+
return form
|
113
|
+
|
114
|
+
def label(self, label: str) -> ParagraphFormBuilder:
|
115
|
+
self._control.label = label
|
116
|
+
return self
|
117
|
+
|
118
|
+
def variable(self, variable: str) -> ParagraphFormBuilder:
|
119
|
+
self._control.variable = variable
|
120
|
+
return self
|
121
|
+
|
122
|
+
def required(self, required: bool) -> ParagraphFormBuilder:
|
123
|
+
self._control.required = required
|
124
|
+
return self
|
125
|
+
|
126
|
+
def default(self, default: str) -> ParagraphFormBuilder:
|
127
|
+
self._control.default = default
|
128
|
+
return self
|
129
|
+
|
130
|
+
|
131
|
+
class SelectFormBuilder:
|
132
|
+
def __init__(self):
|
133
|
+
self._control = SelectControl(label="", variable="", required=False, options=[])
|
134
|
+
|
135
|
+
def build(self) -> UserInputForm:
|
136
|
+
form = UserInputForm()
|
137
|
+
form.select = self._control
|
138
|
+
return form
|
139
|
+
|
140
|
+
def label(self, label: str) -> SelectFormBuilder:
|
141
|
+
self._control.label = label
|
27
142
|
return self
|
28
143
|
|
29
|
-
def variable(self, variable: str) ->
|
30
|
-
self.
|
144
|
+
def variable(self, variable: str) -> SelectFormBuilder:
|
145
|
+
self._control.variable = variable
|
31
146
|
return self
|
32
147
|
|
33
|
-
def required(self, required: bool) ->
|
34
|
-
self.
|
148
|
+
def required(self, required: bool) -> SelectFormBuilder:
|
149
|
+
self._control.required = required
|
35
150
|
return self
|
36
151
|
|
37
|
-
def default(self, default: str) ->
|
38
|
-
self.
|
152
|
+
def default(self, default: str) -> SelectFormBuilder:
|
153
|
+
self._control.default = default
|
39
154
|
return self
|
40
155
|
|
41
|
-
def options(self, options: list[str]) ->
|
42
|
-
self.
|
156
|
+
def options(self, options: list[str]) -> SelectFormBuilder:
|
157
|
+
self._control.options = options
|
43
158
|
return self
|