dify-oapi2 0.3.0__py3-none-any.whl → 0.5.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/chat/v1/model/__init__.py +37 -0
- dify_oapi/api/chat/v1/model/agent_thought.py +69 -0
- dify_oapi/api/chat/v1/model/annotation_info.py +43 -0
- dify_oapi/api/chat/v1/model/app_info.py +35 -0
- dify_oapi/api/chat/v1/model/app_parameters.py +494 -0
- dify_oapi/api/chat/v1/model/audio_to_text_request_body.py +2 -2
- dify_oapi/api/chat/v1/model/chat_file.py +53 -0
- dify_oapi/api/chat/v1/model/chat_request_body.py +26 -13
- dify_oapi/api/chat/v1/model/chat_response.py +12 -2
- dify_oapi/api/chat/v1/model/chat_types.py +65 -0
- dify_oapi/api/chat/v1/model/configure_annotation_reply_request.py +36 -0
- dify_oapi/api/chat/v1/model/configure_annotation_reply_request_body.py +39 -0
- dify_oapi/api/chat/v1/model/configure_annotation_reply_response.py +10 -0
- dify_oapi/api/chat/v1/model/conversation_info.py +57 -0
- dify_oapi/api/chat/v1/model/conversation_variable.py +55 -0
- dify_oapi/api/chat/v1/model/create_annotation_request.py +29 -0
- dify_oapi/api/chat/v1/model/create_annotation_request_body.py +32 -0
- dify_oapi/api/chat/v1/model/create_annotation_response.py +9 -0
- dify_oapi/api/chat/v1/model/delete_annotation_request.py +26 -0
- dify_oapi/api/chat/v1/model/delete_annotation_response.py +7 -0
- dify_oapi/api/chat/v1/model/feedback_info.py +75 -0
- dify_oapi/api/{workflow/v1/model/file → chat/v1/model}/file_info.py +6 -0
- dify_oapi/api/chat/v1/model/get_annotation_reply_status_request.py +32 -0
- dify_oapi/api/chat/v1/model/get_annotation_reply_status_response.py +11 -0
- dify_oapi/api/chat/v1/model/get_app_info_request.py +24 -0
- dify_oapi/api/chat/v1/model/get_app_info_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_app_meta_request.py +24 -0
- dify_oapi/api/chat/v1/model/get_app_meta_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_app_parameters_request.py +28 -0
- dify_oapi/api/chat/v1/model/get_app_parameters_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_conversation_list_request.py +25 -24
- dify_oapi/api/chat/v1/model/get_conversation_list_response.py +4 -15
- dify_oapi/api/chat/v1/model/get_conversation_variables_request.py +54 -0
- dify_oapi/api/chat/v1/model/get_conversation_variables_response.py +10 -0
- dify_oapi/api/chat/v1/model/get_feedbacks_request.py +32 -0
- dify_oapi/api/chat/v1/model/get_feedbacks_response.py +7 -0
- dify_oapi/api/chat/v1/model/get_site_settings_request.py +24 -0
- dify_oapi/api/chat/v1/model/get_site_settings_response.py +9 -0
- dify_oapi/api/chat/v1/model/get_suggested_questions_request.py +36 -0
- dify_oapi/api/chat/v1/model/{message_suggested_response.py → get_suggested_questions_response.py} +1 -1
- dify_oapi/api/chat/v1/model/list_annotations_request.py +32 -0
- dify_oapi/api/chat/v1/model/list_annotations_response.py +11 -0
- dify_oapi/api/chat/v1/model/message_file.py +46 -0
- dify_oapi/api/chat/v1/model/message_history_request.py +24 -24
- dify_oapi/api/chat/v1/model/message_history_response.py +4 -43
- dify_oapi/api/chat/v1/model/message_info.py +73 -0
- dify_oapi/api/chat/v1/model/pagination_info.py +44 -0
- dify_oapi/api/chat/v1/model/rename_conversation_request_body.py +1 -1
- dify_oapi/api/chat/v1/model/retriever_resource.py +64 -0
- dify_oapi/api/chat/v1/model/site_settings.py +92 -0
- dify_oapi/api/chat/v1/model/submit_feedback_request.py +34 -0
- dify_oapi/api/chat/v1/model/submit_feedback_request_body.py +33 -0
- dify_oapi/api/chat/v1/model/submit_feedback_response.py +5 -0
- dify_oapi/api/chat/v1/model/text_to_audio_request.py +32 -0
- dify_oapi/api/chat/v1/model/text_to_audio_request_body.py +33 -0
- dify_oapi/api/chat/v1/model/text_to_audio_response.py +7 -0
- dify_oapi/api/chat/v1/model/tool_icon.py +52 -0
- dify_oapi/api/chat/v1/model/update_annotation_request.py +33 -0
- dify_oapi/api/chat/v1/model/update_annotation_request_body.py +32 -0
- dify_oapi/api/chat/v1/model/update_annotation_response.py +9 -0
- dify_oapi/api/chat/v1/model/upload_file_request.py +54 -0
- dify_oapi/api/chat/v1/model/upload_file_request_body.py +29 -0
- dify_oapi/api/chat/v1/model/upload_file_response.py +10 -0
- dify_oapi/api/chat/v1/model/usage_info.py +84 -0
- dify_oapi/api/chat/v1/resource/__init__.py +7 -3
- dify_oapi/api/chat/v1/resource/annotation.py +77 -0
- dify_oapi/api/chat/v1/resource/app.py +47 -0
- dify_oapi/api/chat/v1/resource/audio.py +13 -0
- dify_oapi/api/chat/v1/resource/chat.py +14 -0
- dify_oapi/api/chat/v1/resource/conversation.py +55 -9
- dify_oapi/api/chat/v1/resource/feedback.py +31 -0
- dify_oapi/api/chat/v1/resource/file.py +25 -0
- dify_oapi/api/chat/v1/resource/message.py +19 -15
- dify_oapi/api/chat/v1/version.py +8 -2
- dify_oapi/api/chatflow/service.py +25 -0
- dify_oapi/api/chatflow/v1/model/annotation_info.py +43 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request.py +37 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_settings_request_body.py +33 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_settings_response.py +10 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_status_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/annotation_reply_status_response.py +11 -0
- dify_oapi/api/chatflow/v1/model/app_info.py +33 -0
- dify_oapi/api/chatflow/v1/model/app_parameters.py +276 -0
- dify_oapi/api/chatflow/v1/model/audio_to_text_request.py +37 -0
- dify_oapi/api/chatflow/v1/model/audio_to_text_response.py +21 -0
- dify_oapi/api/chatflow/v1/model/chat_file.py +40 -0
- dify_oapi/api/chatflow/v1/model/chat_message.py +88 -0
- dify_oapi/api/chatflow/v1/model/chatflow_types.py +210 -0
- dify_oapi/api/chatflow/v1/model/conversation_info.py +53 -0
- dify_oapi/api/chatflow/v1/model/conversation_variable.py +55 -0
- dify_oapi/api/chatflow/v1/model/create_annotation_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/create_annotation_request_body.py +28 -0
- dify_oapi/api/chatflow/v1/model/create_annotation_response.py +9 -0
- dify_oapi/api/chatflow/v1/model/delete_annotation_request.py +28 -0
- dify_oapi/api/chatflow/v1/model/delete_annotation_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/delete_conversation_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/delete_conversation_request_body.py +21 -0
- dify_oapi/api/chatflow/v1/model/delete_conversation_response.py +17 -0
- dify_oapi/api/chatflow/v1/model/feedback_info.py +75 -0
- dify_oapi/api/chatflow/v1/model/file_info.py +53 -0
- dify_oapi/api/chatflow/v1/model/get_annotations_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/get_annotations_response.py +13 -0
- dify_oapi/api/chatflow/v1/model/get_app_feedbacks_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/get_app_feedbacks_response.py +23 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_messages_request.py +38 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_messages_response.py +33 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_variables_request.py +44 -0
- dify_oapi/api/chatflow/v1/model/get_conversation_variables_response.py +33 -0
- dify_oapi/api/chatflow/v1/model/get_conversations_request.py +40 -0
- dify_oapi/api/chatflow/v1/model/get_conversations_response.py +33 -0
- dify_oapi/api/chatflow/v1/model/get_info_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_info_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_meta_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_meta_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_parameters_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_parameters_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_site_request.py +22 -0
- dify_oapi/api/chatflow/v1/model/get_site_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/get_suggested_questions_request.py +32 -0
- dify_oapi/api/{knowledge_base/v1/model/metadata/toggle_builtin_response.py → chatflow/v1/model/get_suggested_questions_response.py} +2 -3
- dify_oapi/api/chatflow/v1/model/message_feedback_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/message_feedback_request_body.py +33 -0
- dify_oapi/api/chatflow/v1/model/message_feedback_response.py +21 -0
- dify_oapi/api/chatflow/v1/model/rename_conversation_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/rename_conversation_request_body.py +31 -0
- dify_oapi/api/chatflow/v1/model/rename_conversation_response.py +53 -0
- dify_oapi/api/chatflow/v1/model/retriever_resource.py +58 -0
- dify_oapi/api/chatflow/v1/model/send_chat_message_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/send_chat_message_request_body.py +54 -0
- dify_oapi/api/chatflow/v1/model/send_chat_message_response.py +7 -0
- dify_oapi/api/chatflow/v1/model/stop_chat_message_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/stop_chat_message_request_body.py +21 -0
- dify_oapi/api/{knowledge_base/v1/model/tag/bind_response.py → chatflow/v1/model/stop_chat_message_response.py} +1 -3
- dify_oapi/api/chatflow/v1/model/text_to_audio_request.py +30 -0
- dify_oapi/api/chatflow/v1/model/text_to_audio_request_body.py +36 -0
- dify_oapi/api/chatflow/v1/model/text_to_audio_response.py +19 -0
- dify_oapi/api/chatflow/v1/model/tool_icon.py +48 -0
- dify_oapi/api/chatflow/v1/model/update_annotation_request.py +36 -0
- dify_oapi/api/chatflow/v1/model/update_annotation_request_body.py +28 -0
- dify_oapi/api/chatflow/v1/model/update_annotation_response.py +9 -0
- dify_oapi/api/chatflow/v1/model/upload_file_request.py +41 -0
- dify_oapi/api/{workflow/v1/model/file → chatflow/v1/model}/upload_file_response.py +2 -0
- dify_oapi/api/chatflow/v1/model/usage_info.py +78 -0
- dify_oapi/api/chatflow/v1/model/user_input_form.py +141 -0
- dify_oapi/api/chatflow/v1/model/webapp_settings.py +88 -0
- dify_oapi/api/chatflow/v1/resource/annotation.py +122 -0
- dify_oapi/api/chatflow/v1/resource/application.py +76 -0
- dify_oapi/api/chatflow/v1/resource/chatflow.py +91 -0
- dify_oapi/api/chatflow/v1/resource/conversation.py +104 -0
- dify_oapi/api/chatflow/v1/resource/feedback.py +69 -0
- dify_oapi/api/chatflow/v1/resource/file.py +39 -0
- dify_oapi/api/chatflow/v1/resource/tts.py +29 -0
- dify_oapi/api/chatflow/v1/version.py +29 -0
- 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/__init__.py +0 -0
- dify_oapi/api/knowledge/v1/model/__init__.py +0 -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/delete_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_detail.py +23 -0
- dify_oapi/api/knowledge/v1/model/data_source_info.py +34 -0
- dify_oapi/api/knowledge/v1/model/dataset_info.py +123 -0
- dify_oapi/api/knowledge/v1/model/dataset_metadata.py +14 -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/unbind_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/v1/model/delete_tag_response.py +5 -0
- dify_oapi/api/knowledge/v1/model/document_info.py +144 -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_base/v1/model/dataset → knowledge/v1/model}/external_knowledge_info.py +18 -12
- dify_oapi/api/knowledge/v1/model/external_retrieval_model.py +13 -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 +68 -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/model/weights.py +27 -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/chunk_workflow_event.py +74 -0
- 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/input_file_object_workflow.py +76 -0
- dify_oapi/api/workflow/v1/model/node_finished_data.py +118 -0
- dify_oapi/api/workflow/v1/model/node_started_data.py +81 -0
- dify_oapi/api/workflow/v1/model/ping_data.py +28 -0
- dify_oapi/api/workflow/v1/model/{workflow/run_workflow_request_body.py → run_workflow_request_body.py} +1 -1
- dify_oapi/api/workflow/v1/model/{info/site_info.py → site_info.py} +1 -1
- dify_oapi/api/workflow/v1/model/text_chunk_data.py +39 -0
- dify_oapi/api/workflow/v1/model/tts_message_data.py +45 -0
- dify_oapi/api/workflow/v1/model/tts_message_end_data.py +45 -0
- dify_oapi/api/{knowledge_base/v1/model/dataset/delete_response.py → workflow/v1/model/upload_file_response.py} +2 -2
- dify_oapi/api/workflow/v1/model/workflow_completion_response.py +50 -0
- dify_oapi/api/workflow/v1/model/workflow_finished_data.py +93 -0
- 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/model/workflow_started_data.py +51 -0
- dify_oapi/api/workflow/v1/model/workflow_types.py +69 -0
- dify_oapi/api/workflow/v1/resource/workflow.py +56 -144
- dify_oapi/api/workflow/v1/version.py +1 -7
- dify_oapi/client.py +51 -6
- dify_oapi/core/http/transport/__init__.py +2 -1
- dify_oapi/core/http/transport/async_transport.py +73 -50
- dify_oapi/core/http/transport/connection_pool.py +131 -0
- dify_oapi/core/http/transport/sync_transport.py +73 -50
- dify_oapi/core/model/config.py +10 -0
- {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.5.0.dist-info}/METADATA +57 -21
- dify_oapi2-0.5.0.dist-info/RECORD +479 -0
- dify_oapi/api/chat/v1/model/chat_request_file.py +0 -46
- dify_oapi/api/chat/v1/model/message_suggested_request.py +0 -36
- 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/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/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/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/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/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/model/workflow/workflow_types.py +0 -54
- 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 → chatflow}/__init__.py +0 -0
- /dify_oapi/api/{knowledge_base → chatflow}/v1/__init__.py +0 -0
- /dify_oapi/api/{knowledge_base → chatflow}/v1/model/__init__.py +0 -0
- /dify_oapi/api/{knowledge_base/v1/model/document → chatflow/v1/resource}/__init__.py +0 -0
- /dify_oapi/api/{workflow/v1/model/log → knowledge}/__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_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_oapi2-0.3.0.dist-info → dify_oapi2-0.5.0.dist-info}/LICENSE +0 -0
- {dify_oapi2-0.3.0.dist-info → dify_oapi2-0.5.0.dist-info}/WHEEL +0 -0
@@ -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
|
File without changes
|
File without changes
|
@@ -0,0 +1,86 @@
|
|
1
|
+
"""Batch information model for Knowledge Base API."""
|
2
|
+
|
3
|
+
from typing import Optional
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .knowledge_types import IndexingStatus
|
8
|
+
|
9
|
+
|
10
|
+
class BatchInfo(BaseModel):
|
11
|
+
"""Batch information model with builder pattern."""
|
12
|
+
|
13
|
+
id: Optional[str] = None
|
14
|
+
indexing_status: Optional[IndexingStatus] = None
|
15
|
+
processing_started_at: Optional[float] = None
|
16
|
+
parsing_completed_at: Optional[float] = None
|
17
|
+
cleaning_completed_at: Optional[float] = None
|
18
|
+
splitting_completed_at: Optional[float] = None
|
19
|
+
completed_at: Optional[float] = None
|
20
|
+
paused_at: Optional[float] = None
|
21
|
+
error: Optional[str] = None
|
22
|
+
stopped_at: Optional[float] = None
|
23
|
+
completed_segments: Optional[int] = None
|
24
|
+
total_segments: Optional[int] = None
|
25
|
+
|
26
|
+
@staticmethod
|
27
|
+
def builder() -> "BatchInfoBuilder":
|
28
|
+
return BatchInfoBuilder()
|
29
|
+
|
30
|
+
|
31
|
+
class BatchInfoBuilder:
|
32
|
+
"""Builder for BatchInfo."""
|
33
|
+
|
34
|
+
def __init__(self):
|
35
|
+
self._batch_info = BatchInfo()
|
36
|
+
|
37
|
+
def build(self) -> BatchInfo:
|
38
|
+
return self._batch_info
|
39
|
+
|
40
|
+
def id(self, id: str) -> "BatchInfoBuilder":
|
41
|
+
self._batch_info.id = id
|
42
|
+
return self
|
43
|
+
|
44
|
+
def indexing_status(self, indexing_status: IndexingStatus) -> "BatchInfoBuilder":
|
45
|
+
self._batch_info.indexing_status = indexing_status
|
46
|
+
return self
|
47
|
+
|
48
|
+
def processing_started_at(self, processing_started_at: float) -> "BatchInfoBuilder":
|
49
|
+
self._batch_info.processing_started_at = processing_started_at
|
50
|
+
return self
|
51
|
+
|
52
|
+
def parsing_completed_at(self, parsing_completed_at: float) -> "BatchInfoBuilder":
|
53
|
+
self._batch_info.parsing_completed_at = parsing_completed_at
|
54
|
+
return self
|
55
|
+
|
56
|
+
def cleaning_completed_at(self, cleaning_completed_at: float) -> "BatchInfoBuilder":
|
57
|
+
self._batch_info.cleaning_completed_at = cleaning_completed_at
|
58
|
+
return self
|
59
|
+
|
60
|
+
def splitting_completed_at(self, splitting_completed_at: float) -> "BatchInfoBuilder":
|
61
|
+
self._batch_info.splitting_completed_at = splitting_completed_at
|
62
|
+
return self
|
63
|
+
|
64
|
+
def completed_at(self, completed_at: float) -> "BatchInfoBuilder":
|
65
|
+
self._batch_info.completed_at = completed_at
|
66
|
+
return self
|
67
|
+
|
68
|
+
def paused_at(self, paused_at: float) -> "BatchInfoBuilder":
|
69
|
+
self._batch_info.paused_at = paused_at
|
70
|
+
return self
|
71
|
+
|
72
|
+
def error(self, error: str) -> "BatchInfoBuilder":
|
73
|
+
self._batch_info.error = error
|
74
|
+
return self
|
75
|
+
|
76
|
+
def stopped_at(self, stopped_at: float) -> "BatchInfoBuilder":
|
77
|
+
self._batch_info.stopped_at = stopped_at
|
78
|
+
return self
|
79
|
+
|
80
|
+
def completed_segments(self, completed_segments: int) -> "BatchInfoBuilder":
|
81
|
+
self._batch_info.completed_segments = completed_segments
|
82
|
+
return self
|
83
|
+
|
84
|
+
def total_segments(self, total_segments: int) -> "BatchInfoBuilder":
|
85
|
+
self._batch_info.total_segments = total_segments
|
86
|
+
return self
|
@@ -0,0 +1,30 @@
|
|
1
|
+
from dify_oapi.core.enum import HttpMethod
|
2
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
3
|
+
|
4
|
+
from .bind_tags_to_dataset_request_body import BindTagsToDatasetRequestBody
|
5
|
+
|
6
|
+
|
7
|
+
class BindTagsToDatasetRequest(BaseRequest):
|
8
|
+
def __init__(self):
|
9
|
+
super().__init__()
|
10
|
+
self.request_body: BindTagsToDatasetRequestBody | None = None
|
11
|
+
|
12
|
+
@staticmethod
|
13
|
+
def builder() -> "BindTagsToDatasetRequestBuilder":
|
14
|
+
return BindTagsToDatasetRequestBuilder()
|
15
|
+
|
16
|
+
|
17
|
+
class BindTagsToDatasetRequestBuilder:
|
18
|
+
def __init__(self):
|
19
|
+
bind_tags_to_dataset_request = BindTagsToDatasetRequest()
|
20
|
+
bind_tags_to_dataset_request.http_method = HttpMethod.POST
|
21
|
+
bind_tags_to_dataset_request.uri = "/v1/datasets/tags/binding"
|
22
|
+
self._bind_tags_to_dataset_request = bind_tags_to_dataset_request
|
23
|
+
|
24
|
+
def build(self) -> BindTagsToDatasetRequest:
|
25
|
+
return self._bind_tags_to_dataset_request
|
26
|
+
|
27
|
+
def request_body(self, request_body: BindTagsToDatasetRequestBody) -> "BindTagsToDatasetRequestBuilder":
|
28
|
+
self._bind_tags_to_dataset_request.request_body = request_body
|
29
|
+
self._bind_tags_to_dataset_request.body = request_body.model_dump(exclude_none=True, mode="json")
|
30
|
+
return self
|
@@ -0,0 +1,26 @@
|
|
1
|
+
from pydantic import BaseModel
|
2
|
+
|
3
|
+
|
4
|
+
class BindTagsToDatasetRequestBody(BaseModel):
|
5
|
+
target_id: str | None = None
|
6
|
+
tag_ids: list[str] | None = None
|
7
|
+
|
8
|
+
@staticmethod
|
9
|
+
def builder() -> "BindTagsToDatasetRequestBodyBuilder":
|
10
|
+
return BindTagsToDatasetRequestBodyBuilder()
|
11
|
+
|
12
|
+
|
13
|
+
class BindTagsToDatasetRequestBodyBuilder:
|
14
|
+
def __init__(self):
|
15
|
+
self._bind_tags_to_dataset_request_body = BindTagsToDatasetRequestBody()
|
16
|
+
|
17
|
+
def build(self) -> BindTagsToDatasetRequestBody:
|
18
|
+
return self._bind_tags_to_dataset_request_body
|
19
|
+
|
20
|
+
def target_id(self, target_id: str) -> "BindTagsToDatasetRequestBodyBuilder":
|
21
|
+
self._bind_tags_to_dataset_request_body.target_id = target_id
|
22
|
+
return self
|
23
|
+
|
24
|
+
def tag_ids(self, tag_ids: list[str]) -> "BindTagsToDatasetRequestBodyBuilder":
|
25
|
+
self._bind_tags_to_dataset_request_body.tag_ids = tag_ids
|
26
|
+
return self
|
@@ -0,0 +1,34 @@
|
|
1
|
+
"""Child chunk content model for Knowledge Base API."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
|
8
|
+
class ChildChunkContent(BaseModel):
|
9
|
+
"""Child chunk content model with builder pattern."""
|
10
|
+
|
11
|
+
content: str | None = None
|
12
|
+
keywords: list[str] | None = None
|
13
|
+
|
14
|
+
@staticmethod
|
15
|
+
def builder() -> ChildChunkContentBuilder:
|
16
|
+
return ChildChunkContentBuilder()
|
17
|
+
|
18
|
+
|
19
|
+
class ChildChunkContentBuilder:
|
20
|
+
"""Builder for ChildChunkContent."""
|
21
|
+
|
22
|
+
def __init__(self) -> None:
|
23
|
+
self._child_chunk_content = ChildChunkContent()
|
24
|
+
|
25
|
+
def build(self) -> ChildChunkContent:
|
26
|
+
return self._child_chunk_content
|
27
|
+
|
28
|
+
def content(self, content: str) -> ChildChunkContentBuilder:
|
29
|
+
self._child_chunk_content.content = content
|
30
|
+
return self
|
31
|
+
|
32
|
+
def keywords(self, keywords: list[str]) -> ChildChunkContentBuilder:
|
33
|
+
self._child_chunk_content.keywords = keywords
|
34
|
+
return self
|
@@ -0,0 +1,101 @@
|
|
1
|
+
"""Child chunk information model for Knowledge Base API."""
|
2
|
+
|
3
|
+
from typing import Optional
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
from .knowledge_types import ChunkStatus
|
8
|
+
|
9
|
+
|
10
|
+
class ChildChunkInfo(BaseModel):
|
11
|
+
"""Child chunk information model with builder pattern."""
|
12
|
+
|
13
|
+
id: Optional[str] = None
|
14
|
+
segment_id: Optional[str] = None
|
15
|
+
content: Optional[str] = None
|
16
|
+
word_count: Optional[int] = None
|
17
|
+
tokens: Optional[int] = None
|
18
|
+
keywords: Optional[list[str]] = None
|
19
|
+
index_node_id: Optional[str] = None
|
20
|
+
index_node_hash: Optional[str] = None
|
21
|
+
status: Optional[ChunkStatus] = None
|
22
|
+
created_by: Optional[str] = None
|
23
|
+
created_at: Optional[float] = None
|
24
|
+
indexing_at: Optional[float] = None
|
25
|
+
completed_at: Optional[float] = None
|
26
|
+
error: Optional[str] = None
|
27
|
+
stopped_at: Optional[float] = None
|
28
|
+
|
29
|
+
@staticmethod
|
30
|
+
def builder() -> "ChildChunkInfoBuilder":
|
31
|
+
return ChildChunkInfoBuilder()
|
32
|
+
|
33
|
+
|
34
|
+
class ChildChunkInfoBuilder:
|
35
|
+
"""Builder for ChildChunkInfo."""
|
36
|
+
|
37
|
+
def __init__(self):
|
38
|
+
self._child_chunk_info = ChildChunkInfo()
|
39
|
+
|
40
|
+
def build(self) -> ChildChunkInfo:
|
41
|
+
return self._child_chunk_info
|
42
|
+
|
43
|
+
def id(self, id: str) -> "ChildChunkInfoBuilder":
|
44
|
+
self._child_chunk_info.id = id
|
45
|
+
return self
|
46
|
+
|
47
|
+
def content(self, content: str) -> "ChildChunkInfoBuilder":
|
48
|
+
self._child_chunk_info.content = content
|
49
|
+
return self
|
50
|
+
|
51
|
+
def keywords(self, keywords: list[str]) -> "ChildChunkInfoBuilder":
|
52
|
+
self._child_chunk_info.keywords = keywords
|
53
|
+
return self
|
54
|
+
|
55
|
+
def segment_id(self, segment_id: str) -> "ChildChunkInfoBuilder":
|
56
|
+
self._child_chunk_info.segment_id = segment_id
|
57
|
+
return self
|
58
|
+
|
59
|
+
def word_count(self, word_count: int) -> "ChildChunkInfoBuilder":
|
60
|
+
self._child_chunk_info.word_count = word_count
|
61
|
+
return self
|
62
|
+
|
63
|
+
def tokens(self, tokens: int) -> "ChildChunkInfoBuilder":
|
64
|
+
self._child_chunk_info.tokens = tokens
|
65
|
+
return self
|
66
|
+
|
67
|
+
def index_node_id(self, index_node_id: str) -> "ChildChunkInfoBuilder":
|
68
|
+
self._child_chunk_info.index_node_id = index_node_id
|
69
|
+
return self
|
70
|
+
|
71
|
+
def index_node_hash(self, index_node_hash: str) -> "ChildChunkInfoBuilder":
|
72
|
+
self._child_chunk_info.index_node_hash = index_node_hash
|
73
|
+
return self
|
74
|
+
|
75
|
+
def status(self, status: ChunkStatus) -> "ChildChunkInfoBuilder":
|
76
|
+
self._child_chunk_info.status = status
|
77
|
+
return self
|
78
|
+
|
79
|
+
def created_by(self, created_by: str) -> "ChildChunkInfoBuilder":
|
80
|
+
self._child_chunk_info.created_by = created_by
|
81
|
+
return self
|
82
|
+
|
83
|
+
def created_at(self, created_at: float) -> "ChildChunkInfoBuilder":
|
84
|
+
self._child_chunk_info.created_at = created_at
|
85
|
+
return self
|
86
|
+
|
87
|
+
def indexing_at(self, indexing_at: float) -> "ChildChunkInfoBuilder":
|
88
|
+
self._child_chunk_info.indexing_at = indexing_at
|
89
|
+
return self
|
90
|
+
|
91
|
+
def completed_at(self, completed_at: float) -> "ChildChunkInfoBuilder":
|
92
|
+
self._child_chunk_info.completed_at = completed_at
|
93
|
+
return self
|
94
|
+
|
95
|
+
def error(self, error: str) -> "ChildChunkInfoBuilder":
|
96
|
+
self._child_chunk_info.error = error
|
97
|
+
return self
|
98
|
+
|
99
|
+
def stopped_at(self, stopped_at: float) -> "ChildChunkInfoBuilder":
|
100
|
+
self._child_chunk_info.stopped_at = stopped_at
|
101
|
+
return self
|
dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/create_child_chunk_request.py
RENAMED
@@ -1,3 +1,5 @@
|
|
1
|
+
"""Create child chunk request model."""
|
2
|
+
|
1
3
|
from __future__ import annotations
|
2
4
|
|
3
5
|
from dify_oapi.core.enum import HttpMethod
|
@@ -7,7 +9,9 @@ from .create_child_chunk_request_body import CreateChildChunkRequestBody
|
|
7
9
|
|
8
10
|
|
9
11
|
class CreateChildChunkRequest(BaseRequest):
|
10
|
-
|
12
|
+
"""Request model for create child chunk API."""
|
13
|
+
|
14
|
+
def __init__(self) -> None:
|
11
15
|
super().__init__()
|
12
16
|
self.dataset_id: str | None = None
|
13
17
|
self.document_id: str | None = None
|
@@ -20,7 +24,9 @@ class CreateChildChunkRequest(BaseRequest):
|
|
20
24
|
|
21
25
|
|
22
26
|
class CreateChildChunkRequestBuilder:
|
23
|
-
|
27
|
+
"""Builder for CreateChildChunkRequest."""
|
28
|
+
|
29
|
+
def __init__(self) -> None:
|
24
30
|
create_child_chunk_request = CreateChildChunkRequest()
|
25
31
|
create_child_chunk_request.http_method = HttpMethod.POST
|
26
32
|
create_child_chunk_request.uri = (
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"""Create child chunk request body model."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
|
5
|
+
from pydantic import BaseModel
|
6
|
+
|
7
|
+
|
8
|
+
class ChunkContent(BaseModel):
|
9
|
+
"""Individual chunk content for creation."""
|
10
|
+
|
11
|
+
content: str | None = None
|
12
|
+
keywords: list[str] | None = None
|
13
|
+
|
14
|
+
|
15
|
+
class CreateChildChunkRequestBody(BaseModel):
|
16
|
+
"""Request body model for create child chunk API."""
|
17
|
+
|
18
|
+
chunks: list[ChunkContent] | None = None
|
19
|
+
|
20
|
+
@staticmethod
|
21
|
+
def builder() -> CreateChildChunkRequestBodyBuilder:
|
22
|
+
return CreateChildChunkRequestBodyBuilder()
|
23
|
+
|
24
|
+
|
25
|
+
class CreateChildChunkRequestBodyBuilder:
|
26
|
+
"""Builder for CreateChildChunkRequestBody."""
|
27
|
+
|
28
|
+
def __init__(self) -> None:
|
29
|
+
self._create_child_chunk_request_body = CreateChildChunkRequestBody()
|
30
|
+
|
31
|
+
def build(self) -> CreateChildChunkRequestBody:
|
32
|
+
return self._create_child_chunk_request_body
|
33
|
+
|
34
|
+
def chunks(self, chunks: list[ChunkContent]) -> CreateChildChunkRequestBodyBuilder:
|
35
|
+
self._create_child_chunk_request_body.chunks = chunks
|
36
|
+
return self
|
37
|
+
|
38
|
+
def add_chunk(self, content: str, keywords: list[str] | None = None) -> CreateChildChunkRequestBodyBuilder:
|
39
|
+
"""Convenience method to add a single chunk."""
|
40
|
+
chunk = ChunkContent(content=content, keywords=keywords)
|
41
|
+
if self._create_child_chunk_request_body.chunks is None:
|
42
|
+
self._create_child_chunk_request_body.chunks = []
|
43
|
+
self._create_child_chunk_request_body.chunks.append(chunk)
|
44
|
+
return self
|
dify_oapi/api/{knowledge_base/v1/model/segment → knowledge/v1/model}/create_child_chunk_response.py
RENAMED
@@ -1,7 +1,11 @@
|
|
1
|
+
"""Create child chunk response model."""
|
2
|
+
|
1
3
|
from dify_oapi.core.model.base_response import BaseResponse
|
2
4
|
|
3
5
|
from .child_chunk_info import ChildChunkInfo
|
4
6
|
|
5
7
|
|
6
8
|
class CreateChildChunkResponse(BaseResponse):
|
7
|
-
|
9
|
+
"""Response model for create child chunk API."""
|
10
|
+
|
11
|
+
data: list[ChildChunkInfo] | None = None
|
@@ -0,0 +1,30 @@
|
|
1
|
+
from dify_oapi.core.enum import HttpMethod
|
2
|
+
from dify_oapi.core.model.base_request import BaseRequest
|
3
|
+
|
4
|
+
from .create_dataset_request_body import CreateDatasetRequestBody
|
5
|
+
|
6
|
+
|
7
|
+
class CreateDatasetRequest(BaseRequest):
|
8
|
+
def __init__(self) -> None:
|
9
|
+
super().__init__()
|
10
|
+
self.request_body: CreateDatasetRequestBody | None = None
|
11
|
+
|
12
|
+
@staticmethod
|
13
|
+
def builder() -> "CreateDatasetRequestBuilder":
|
14
|
+
return CreateDatasetRequestBuilder()
|
15
|
+
|
16
|
+
|
17
|
+
class CreateDatasetRequestBuilder:
|
18
|
+
def __init__(self) -> None:
|
19
|
+
create_dataset_request = CreateDatasetRequest()
|
20
|
+
create_dataset_request.http_method = HttpMethod.POST
|
21
|
+
create_dataset_request.uri = "/v1/datasets"
|
22
|
+
self._create_dataset_request = create_dataset_request
|
23
|
+
|
24
|
+
def build(self) -> CreateDatasetRequest:
|
25
|
+
return self._create_dataset_request
|
26
|
+
|
27
|
+
def request_body(self, request_body: CreateDatasetRequestBody) -> "CreateDatasetRequestBuilder":
|
28
|
+
self._create_dataset_request.request_body = request_body
|
29
|
+
self._create_dataset_request.body = request_body.model_dump(exclude_none=True, mode="json")
|
30
|
+
return self
|
@@ -0,0 +1,67 @@
|
|
1
|
+
from pydantic import BaseModel
|
2
|
+
|
3
|
+
from .embedding_model_parameters import EmbeddingModelParameters
|
4
|
+
from .knowledge_types import DatasetType, IndexingTechnique, Permission
|
5
|
+
from .retrieval_model import RetrievalModel
|
6
|
+
|
7
|
+
|
8
|
+
class CreateDatasetRequestBody(BaseModel):
|
9
|
+
name: str | None = None
|
10
|
+
description: str | None = None
|
11
|
+
type: DatasetType | None = None
|
12
|
+
indexing_technique: IndexingTechnique | None = None
|
13
|
+
permission: Permission | None = None
|
14
|
+
provider: str | None = None
|
15
|
+
model: str | None = None
|
16
|
+
embedding_model_parameters: EmbeddingModelParameters | None = None
|
17
|
+
retrieval_model: RetrievalModel | None = None
|
18
|
+
|
19
|
+
@staticmethod
|
20
|
+
def builder() -> "CreateDatasetRequestBodyBuilder":
|
21
|
+
return CreateDatasetRequestBodyBuilder()
|
22
|
+
|
23
|
+
|
24
|
+
class CreateDatasetRequestBodyBuilder:
|
25
|
+
def __init__(self) -> None:
|
26
|
+
self._create_dataset_request_body = CreateDatasetRequestBody()
|
27
|
+
|
28
|
+
def build(self) -> CreateDatasetRequestBody:
|
29
|
+
return self._create_dataset_request_body
|
30
|
+
|
31
|
+
def name(self, name: str) -> "CreateDatasetRequestBodyBuilder":
|
32
|
+
self._create_dataset_request_body.name = name
|
33
|
+
return self
|
34
|
+
|
35
|
+
def description(self, description: str) -> "CreateDatasetRequestBodyBuilder":
|
36
|
+
self._create_dataset_request_body.description = description
|
37
|
+
return self
|
38
|
+
|
39
|
+
def type(self, type: DatasetType) -> "CreateDatasetRequestBodyBuilder":
|
40
|
+
self._create_dataset_request_body.type = type
|
41
|
+
return self
|
42
|
+
|
43
|
+
def indexing_technique(self, indexing_technique: IndexingTechnique) -> "CreateDatasetRequestBodyBuilder":
|
44
|
+
self._create_dataset_request_body.indexing_technique = indexing_technique
|
45
|
+
return self
|
46
|
+
|
47
|
+
def permission(self, permission: Permission) -> "CreateDatasetRequestBodyBuilder":
|
48
|
+
self._create_dataset_request_body.permission = permission
|
49
|
+
return self
|
50
|
+
|
51
|
+
def provider(self, provider: str) -> "CreateDatasetRequestBodyBuilder":
|
52
|
+
self._create_dataset_request_body.provider = provider
|
53
|
+
return self
|
54
|
+
|
55
|
+
def model(self, model: str) -> "CreateDatasetRequestBodyBuilder":
|
56
|
+
self._create_dataset_request_body.model = model
|
57
|
+
return self
|
58
|
+
|
59
|
+
def embedding_model_parameters(
|
60
|
+
self, embedding_model_parameters: EmbeddingModelParameters
|
61
|
+
) -> "CreateDatasetRequestBodyBuilder":
|
62
|
+
self._create_dataset_request_body.embedding_model_parameters = embedding_model_parameters
|
63
|
+
return self
|
64
|
+
|
65
|
+
def retrieval_model(self, retrieval_model: RetrievalModel) -> "CreateDatasetRequestBodyBuilder":
|
66
|
+
self._create_dataset_request_body.retrieval_model = retrieval_model
|
67
|
+
return self
|