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
@@ -0,0 +1,69 @@
|
|
1
|
+
"""Workflow API type definitions.
|
2
|
+
|
3
|
+
This module contains all Literal type definitions for the Workflow API,
|
4
|
+
ensuring strict type safety throughout the workflow module.
|
5
|
+
"""
|
6
|
+
|
7
|
+
from typing import Literal
|
8
|
+
|
9
|
+
# Response mode types for workflow execution
|
10
|
+
ResponseMode = Literal["streaming", "blocking"]
|
11
|
+
|
12
|
+
# File types supported in workflow inputs
|
13
|
+
FileType = Literal["document", "image", "audio", "video", "custom"]
|
14
|
+
|
15
|
+
# File transfer methods
|
16
|
+
TransferMethod = Literal["remote_url", "local_file"]
|
17
|
+
|
18
|
+
# Workflow execution status
|
19
|
+
WorkflowStatus = Literal["running", "succeeded", "failed", "stopped"]
|
20
|
+
|
21
|
+
# Node execution status
|
22
|
+
NodeStatus = Literal["running", "succeeded", "failed", "stopped"]
|
23
|
+
|
24
|
+
# Streaming event types
|
25
|
+
EventType = Literal[
|
26
|
+
"workflow_started",
|
27
|
+
"node_started",
|
28
|
+
"text_chunk",
|
29
|
+
"node_finished",
|
30
|
+
"workflow_finished",
|
31
|
+
"tts_message",
|
32
|
+
"tts_message_end",
|
33
|
+
"ping",
|
34
|
+
]
|
35
|
+
|
36
|
+
# Workflow node types
|
37
|
+
NodeType = Literal[
|
38
|
+
"start",
|
39
|
+
"end",
|
40
|
+
"llm",
|
41
|
+
"code",
|
42
|
+
"template",
|
43
|
+
"knowledge_retrieval",
|
44
|
+
"question_classifier",
|
45
|
+
"if_else",
|
46
|
+
"variable_assigner",
|
47
|
+
"parameter_extractor",
|
48
|
+
]
|
49
|
+
|
50
|
+
# WebApp icon types
|
51
|
+
IconType = Literal["emoji", "image"]
|
52
|
+
|
53
|
+
# Application mode types
|
54
|
+
AppMode = Literal["workflow"]
|
55
|
+
|
56
|
+
# Log status filter types (includes "running" for filtering)
|
57
|
+
LogStatus = Literal["succeeded", "failed", "stopped", "running"]
|
58
|
+
|
59
|
+
# Creator role types
|
60
|
+
CreatedByRole = Literal["end_user", "account"]
|
61
|
+
|
62
|
+
# Creation source types
|
63
|
+
CreatedFrom = Literal["service-api", "web-app"]
|
64
|
+
|
65
|
+
# User input form control types
|
66
|
+
UserInputFormType = Literal["text-input", "paragraph", "select"]
|
67
|
+
|
68
|
+
# UUID format validation pattern
|
69
|
+
UUID_PATTERN = r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
|
@@ -5,14 +5,22 @@ from dify_oapi.core.http.transport import ATransport, Transport
|
|
5
5
|
from dify_oapi.core.model.config import Config
|
6
6
|
from dify_oapi.core.model.request_option import RequestOption
|
7
7
|
|
8
|
-
from ..model.
|
9
|
-
from ..model.
|
10
|
-
from ..model.
|
11
|
-
from ..model.
|
12
|
-
from ..model.
|
13
|
-
from ..model.
|
14
|
-
from ..model.
|
15
|
-
from ..model.
|
8
|
+
from ..model.get_info_request import GetInfoRequest
|
9
|
+
from ..model.get_info_response import GetInfoResponse
|
10
|
+
from ..model.get_parameters_request import GetParametersRequest
|
11
|
+
from ..model.get_parameters_response import GetParametersResponse
|
12
|
+
from ..model.get_site_request import GetSiteRequest
|
13
|
+
from ..model.get_site_response import GetSiteResponse
|
14
|
+
from ..model.get_workflow_logs_request import GetWorkflowLogsRequest
|
15
|
+
from ..model.get_workflow_logs_response import GetWorkflowLogsResponse
|
16
|
+
from ..model.get_workflow_run_detail_request import GetWorkflowRunDetailRequest
|
17
|
+
from ..model.get_workflow_run_detail_response import GetWorkflowRunDetailResponse
|
18
|
+
from ..model.run_workflow_request import RunWorkflowRequest
|
19
|
+
from ..model.run_workflow_response import RunWorkflowResponse
|
20
|
+
from ..model.stop_workflow_request import StopWorkflowRequest
|
21
|
+
from ..model.stop_workflow_response import StopWorkflowResponse
|
22
|
+
from ..model.upload_file_request import UploadFileRequest
|
23
|
+
from ..model.upload_file_response import UploadFileResponse
|
16
24
|
|
17
25
|
|
18
26
|
class Workflow:
|
@@ -20,7 +28,7 @@ class Workflow:
|
|
20
28
|
self.config = config
|
21
29
|
|
22
30
|
@overload
|
23
|
-
def
|
31
|
+
def run(
|
24
32
|
self,
|
25
33
|
request: RunWorkflowRequest,
|
26
34
|
request_option: RequestOption,
|
@@ -28,35 +36,25 @@ class Workflow:
|
|
28
36
|
) -> Generator[bytes, None, None]: ...
|
29
37
|
|
30
38
|
@overload
|
31
|
-
def
|
39
|
+
def run(
|
32
40
|
self,
|
33
41
|
request: RunWorkflowRequest,
|
34
42
|
request_option: RequestOption,
|
35
43
|
stream: Literal[False] = False,
|
36
44
|
) -> RunWorkflowResponse: ...
|
37
45
|
|
38
|
-
def
|
46
|
+
def run(
|
39
47
|
self,
|
40
48
|
request: RunWorkflowRequest,
|
41
49
|
request_option: RequestOption,
|
42
50
|
stream: bool = False,
|
43
51
|
) -> RunWorkflowResponse | Generator[bytes, None, None]:
|
44
|
-
"""Execute workflow.
|
45
|
-
|
46
|
-
Args:
|
47
|
-
request: The run workflow request
|
48
|
-
request_option: Request options including API key
|
49
|
-
stream: Whether to use streaming mode
|
50
|
-
|
51
|
-
Returns:
|
52
|
-
RunWorkflowResponse for blocking mode or Generator[bytes, None, None] for streaming mode
|
53
|
-
"""
|
54
52
|
if stream:
|
55
53
|
return Transport.execute(self.config, request, stream=True, option=request_option)
|
56
54
|
return Transport.execute(self.config, request, unmarshal_as=RunWorkflowResponse, option=request_option)
|
57
55
|
|
58
56
|
@overload
|
59
|
-
async def
|
57
|
+
async def arun(
|
60
58
|
self,
|
61
59
|
request: RunWorkflowRequest,
|
62
60
|
request_option: RequestOption,
|
@@ -64,157 +62,71 @@ class Workflow:
|
|
64
62
|
) -> AsyncGenerator[bytes, None]: ...
|
65
63
|
|
66
64
|
@overload
|
67
|
-
async def
|
65
|
+
async def arun(
|
68
66
|
self,
|
69
67
|
request: RunWorkflowRequest,
|
70
68
|
request_option: RequestOption,
|
71
69
|
stream: Literal[False] = False,
|
72
70
|
) -> RunWorkflowResponse: ...
|
73
71
|
|
74
|
-
async def
|
72
|
+
async def arun(
|
75
73
|
self,
|
76
74
|
request: RunWorkflowRequest,
|
77
75
|
request_option: RequestOption,
|
78
76
|
stream: bool = False,
|
79
77
|
) -> RunWorkflowResponse | AsyncGenerator[bytes, None]:
|
80
|
-
"""Execute workflow asynchronously.
|
81
|
-
|
82
|
-
Args:
|
83
|
-
request: The run workflow request
|
84
|
-
request_option: Request options including API key
|
85
|
-
stream: Whether to use streaming mode
|
86
|
-
|
87
|
-
Returns:
|
88
|
-
RunWorkflowResponse for blocking mode or AsyncGenerator[bytes, None] for streaming mode
|
89
|
-
"""
|
90
78
|
if stream:
|
91
79
|
return await ATransport.aexecute(self.config, request, stream=True, option=request_option)
|
92
80
|
return await ATransport.aexecute(self.config, request, unmarshal_as=RunWorkflowResponse, option=request_option)
|
93
81
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
request
|
98
|
-
request_option: RequestOption,
|
99
|
-
stream: Literal[True],
|
100
|
-
) -> Generator[bytes, None, None]: ...
|
101
|
-
|
102
|
-
@overload
|
103
|
-
def run_specific_workflow(
|
104
|
-
self,
|
105
|
-
request: RunSpecificWorkflowRequest,
|
106
|
-
request_option: RequestOption,
|
107
|
-
stream: Literal[False] = False,
|
108
|
-
) -> RunSpecificWorkflowResponse: ...
|
109
|
-
|
110
|
-
def run_specific_workflow(
|
111
|
-
self,
|
112
|
-
request: RunSpecificWorkflowRequest,
|
113
|
-
request_option: RequestOption,
|
114
|
-
stream: bool = False,
|
115
|
-
) -> RunSpecificWorkflowResponse | Generator[bytes, None, None]:
|
116
|
-
"""Execute specific version workflow.
|
117
|
-
|
118
|
-
Args:
|
119
|
-
request: The run specific workflow request
|
120
|
-
request_option: Request options including API key
|
121
|
-
stream: Whether to use streaming mode
|
122
|
-
|
123
|
-
Returns:
|
124
|
-
RunSpecificWorkflowResponse for blocking mode or Generator[bytes, None, None] for streaming mode
|
125
|
-
"""
|
126
|
-
if stream:
|
127
|
-
return Transport.execute(self.config, request, stream=True, option=request_option)
|
128
|
-
return Transport.execute(self.config, request, unmarshal_as=RunSpecificWorkflowResponse, option=request_option)
|
129
|
-
|
130
|
-
@overload
|
131
|
-
async def arun_specific_workflow(
|
132
|
-
self,
|
133
|
-
request: RunSpecificWorkflowRequest,
|
134
|
-
request_option: RequestOption,
|
135
|
-
stream: Literal[True],
|
136
|
-
) -> AsyncGenerator[bytes, None]: ...
|
137
|
-
|
138
|
-
@overload
|
139
|
-
async def arun_specific_workflow(
|
140
|
-
self,
|
141
|
-
request: RunSpecificWorkflowRequest,
|
142
|
-
request_option: RequestOption,
|
143
|
-
stream: Literal[False] = False,
|
144
|
-
) -> RunSpecificWorkflowResponse: ...
|
145
|
-
|
146
|
-
async def arun_specific_workflow(
|
147
|
-
self,
|
148
|
-
request: RunSpecificWorkflowRequest,
|
149
|
-
request_option: RequestOption,
|
150
|
-
stream: bool = False,
|
151
|
-
) -> RunSpecificWorkflowResponse | AsyncGenerator[bytes, None]:
|
152
|
-
"""Execute specific version workflow asynchronously.
|
153
|
-
|
154
|
-
Args:
|
155
|
-
request: The run specific workflow request
|
156
|
-
request_option: Request options including API key
|
157
|
-
stream: Whether to use streaming mode
|
82
|
+
def detail(
|
83
|
+
self, request: GetWorkflowRunDetailRequest, request_option: RequestOption
|
84
|
+
) -> GetWorkflowRunDetailResponse:
|
85
|
+
return Transport.execute(self.config, request, unmarshal_as=GetWorkflowRunDetailResponse, option=request_option)
|
158
86
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
if stream:
|
163
|
-
return await ATransport.aexecute(self.config, request, stream=True, option=request_option)
|
87
|
+
async def adetail(
|
88
|
+
self, request: GetWorkflowRunDetailRequest, request_option: RequestOption
|
89
|
+
) -> GetWorkflowRunDetailResponse:
|
164
90
|
return await ATransport.aexecute(
|
165
|
-
self.config, request, unmarshal_as=
|
91
|
+
self.config, request, unmarshal_as=GetWorkflowRunDetailResponse, option=request_option
|
166
92
|
)
|
167
93
|
|
168
|
-
def
|
169
|
-
self, request
|
170
|
-
) -> GetWorkflowRunDetailResponse:
|
171
|
-
"""Get workflow execution details.
|
94
|
+
def stop(self, request: StopWorkflowRequest, request_option: RequestOption) -> StopWorkflowResponse:
|
95
|
+
return Transport.execute(self.config, request, unmarshal_as=StopWorkflowResponse, option=request_option)
|
172
96
|
|
173
|
-
|
174
|
-
|
175
|
-
request_option: Request options including API key
|
97
|
+
async def astop(self, request: StopWorkflowRequest, request_option: RequestOption) -> StopWorkflowResponse:
|
98
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=StopWorkflowResponse, option=request_option)
|
176
99
|
|
177
|
-
|
178
|
-
|
179
|
-
"""
|
180
|
-
return Transport.execute(self.config, request, unmarshal_as=GetWorkflowRunDetailResponse, option=request_option)
|
100
|
+
def upload(self, request: UploadFileRequest, request_option: RequestOption) -> UploadFileResponse:
|
101
|
+
return Transport.execute(self.config, request, unmarshal_as=UploadFileResponse, option=request_option)
|
181
102
|
|
182
|
-
async def
|
183
|
-
self, request
|
184
|
-
) -> GetWorkflowRunDetailResponse:
|
185
|
-
"""Get workflow execution details asynchronously.
|
103
|
+
async def aupload(self, request: UploadFileRequest, request_option: RequestOption) -> UploadFileResponse:
|
104
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=UploadFileResponse, option=request_option)
|
186
105
|
|
187
|
-
|
188
|
-
|
189
|
-
request_option: Request options including API key
|
106
|
+
def logs(self, request: GetWorkflowLogsRequest, request_option: RequestOption) -> GetWorkflowLogsResponse:
|
107
|
+
return Transport.execute(self.config, request, unmarshal_as=GetWorkflowLogsResponse, option=request_option)
|
190
108
|
|
191
|
-
|
192
|
-
GetWorkflowRunDetailResponse with workflow execution details
|
193
|
-
"""
|
109
|
+
async def alogs(self, request: GetWorkflowLogsRequest, request_option: RequestOption) -> GetWorkflowLogsResponse:
|
194
110
|
return await ATransport.aexecute(
|
195
|
-
self.config, request, unmarshal_as=
|
111
|
+
self.config, request, unmarshal_as=GetWorkflowLogsResponse, option=request_option
|
196
112
|
)
|
197
113
|
|
198
|
-
def
|
199
|
-
|
114
|
+
def info(self, request: GetInfoRequest, request_option: RequestOption) -> GetInfoResponse:
|
115
|
+
return Transport.execute(self.config, request, unmarshal_as=GetInfoResponse, option=request_option)
|
200
116
|
|
201
|
-
|
202
|
-
|
203
|
-
request_option: Request options including API key
|
117
|
+
async def ainfo(self, request: GetInfoRequest, request_option: RequestOption) -> GetInfoResponse:
|
118
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=GetInfoResponse, option=request_option)
|
204
119
|
|
205
|
-
|
206
|
-
|
207
|
-
"""
|
208
|
-
return Transport.execute(self.config, request, unmarshal_as=StopWorkflowResponse, option=request_option)
|
120
|
+
def parameters(self, request: GetParametersRequest, request_option: RequestOption) -> GetParametersResponse:
|
121
|
+
return Transport.execute(self.config, request, unmarshal_as=GetParametersResponse, option=request_option)
|
209
122
|
|
210
|
-
async def
|
211
|
-
|
123
|
+
async def aparameters(self, request: GetParametersRequest, request_option: RequestOption) -> GetParametersResponse:
|
124
|
+
return await ATransport.aexecute(
|
125
|
+
self.config, request, unmarshal_as=GetParametersResponse, option=request_option
|
126
|
+
)
|
212
127
|
|
213
|
-
|
214
|
-
|
215
|
-
request_option: Request options including API key
|
128
|
+
def site(self, request: GetSiteRequest, request_option: RequestOption) -> GetSiteResponse:
|
129
|
+
return Transport.execute(self.config, request, unmarshal_as=GetSiteResponse, option=request_option)
|
216
130
|
|
217
|
-
|
218
|
-
|
219
|
-
"""
|
220
|
-
return await ATransport.aexecute(self.config, request, unmarshal_as=StopWorkflowResponse, option=request_option)
|
131
|
+
async def asite(self, request: GetSiteRequest, request_option: RequestOption) -> GetSiteResponse:
|
132
|
+
return await ATransport.aexecute(self.config, request, unmarshal_as=GetSiteResponse, option=request_option)
|
@@ -1,14 +1,8 @@
|
|
1
1
|
from dify_oapi.core.model.config import Config
|
2
2
|
|
3
|
-
from .resource.file import File
|
4
|
-
from .resource.info import Info
|
5
|
-
from .resource.log import Log
|
6
3
|
from .resource.workflow import Workflow
|
7
4
|
|
8
5
|
|
9
6
|
class V1:
|
10
7
|
def __init__(self, config: Config):
|
11
|
-
self.workflow
|
12
|
-
self.file: File = File(config)
|
13
|
-
self.log: Log = Log(config)
|
14
|
-
self.info: Info = Info(config)
|
8
|
+
self.workflow = Workflow(config)
|
dify_oapi/client.py
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
import ssl
|
4
|
+
|
3
5
|
from .api.chat.service import ChatService
|
6
|
+
from .api.chatflow.service import ChatflowService
|
4
7
|
from .api.completion.service import CompletionService
|
5
8
|
from .api.dify.service import DifyService
|
6
|
-
from .api.
|
9
|
+
from .api.knowledge.service import Knowledge
|
7
10
|
from .api.workflow.service import WorkflowService
|
8
11
|
from .core.enum import LogLevel
|
9
12
|
from .core.http.transport import Transport
|
13
|
+
from .core.http.transport.connection_pool import connection_pool
|
10
14
|
from .core.log import logger
|
11
15
|
from .core.model.base_request import BaseRequest
|
12
16
|
from .core.model.config import Config
|
@@ -16,10 +20,11 @@ class Client:
|
|
16
20
|
def __init__(self):
|
17
21
|
self._config: Config | None = None
|
18
22
|
self._chat: ChatService | None = None
|
23
|
+
self._chatflow: ChatflowService | None = None
|
19
24
|
self._completion: CompletionService | None = None
|
20
25
|
self._dify: DifyService | None = None
|
21
26
|
self._workflow: WorkflowService | None = None
|
22
|
-
self.
|
27
|
+
self._knowledge: Knowledge | None = None
|
23
28
|
|
24
29
|
@property
|
25
30
|
def chat(self) -> ChatService:
|
@@ -27,6 +32,12 @@ class Client:
|
|
27
32
|
raise RuntimeError("Chat service has not been initialized")
|
28
33
|
return self._chat
|
29
34
|
|
35
|
+
@property
|
36
|
+
def chatflow(self) -> ChatflowService:
|
37
|
+
if self._chatflow is None:
|
38
|
+
raise RuntimeError("Chatflow service has not been initialized")
|
39
|
+
return self._chatflow
|
40
|
+
|
30
41
|
@property
|
31
42
|
def completion(self) -> CompletionService:
|
32
43
|
if self._completion is None:
|
@@ -46,10 +57,10 @@ class Client:
|
|
46
57
|
return self._workflow
|
47
58
|
|
48
59
|
@property
|
49
|
-
def
|
50
|
-
if self.
|
60
|
+
def knowledge(self) -> Knowledge:
|
61
|
+
if self._knowledge is None:
|
51
62
|
raise RuntimeError("Knowledge base service has not been initialized")
|
52
|
-
return self.
|
63
|
+
return self._knowledge
|
53
64
|
|
54
65
|
def request(self, request: BaseRequest):
|
55
66
|
if self._config is None:
|
@@ -57,6 +68,14 @@ class Client:
|
|
57
68
|
resp = Transport.execute(self._config, request)
|
58
69
|
return resp
|
59
70
|
|
71
|
+
def close(self):
|
72
|
+
"""Close all HTTP connections and clean up resources."""
|
73
|
+
connection_pool.close_all()
|
74
|
+
|
75
|
+
async def aclose(self):
|
76
|
+
"""Async version of close for proper cleanup of async connections."""
|
77
|
+
await connection_pool.aclose_all()
|
78
|
+
|
60
79
|
@staticmethod
|
61
80
|
def builder() -> ClientBuilder:
|
62
81
|
return ClientBuilder()
|
@@ -78,6 +97,31 @@ class ClientBuilder:
|
|
78
97
|
self._config.max_retry_count = count
|
79
98
|
return self
|
80
99
|
|
100
|
+
def max_keepalive_connections(self, count: int) -> ClientBuilder:
|
101
|
+
"""Set maximum keepalive connections per connection pool."""
|
102
|
+
self._config.max_keepalive_connections = count
|
103
|
+
return self
|
104
|
+
|
105
|
+
def max_connections(self, count: int) -> ClientBuilder:
|
106
|
+
"""Set maximum total connections per connection pool."""
|
107
|
+
self._config.max_connections = count
|
108
|
+
return self
|
109
|
+
|
110
|
+
def keepalive_expiry(self, seconds: float) -> ClientBuilder:
|
111
|
+
"""Set keepalive connection expiry time in seconds."""
|
112
|
+
self._config.keepalive_expiry = seconds
|
113
|
+
return self
|
114
|
+
|
115
|
+
def timeout(self, seconds: float) -> ClientBuilder:
|
116
|
+
"""Set client timeout in seconds."""
|
117
|
+
self._config.timeout = seconds
|
118
|
+
return self
|
119
|
+
|
120
|
+
def verify_ssl(self, verify: ssl.SSLContext | str | bool) -> ClientBuilder:
|
121
|
+
"""Set SSL certificate verification."""
|
122
|
+
self._config.verify_ssl = verify
|
123
|
+
return self
|
124
|
+
|
81
125
|
def build(self) -> Client:
|
82
126
|
client: Client = Client()
|
83
127
|
client._config = self._config
|
@@ -87,10 +131,11 @@ class ClientBuilder:
|
|
87
131
|
|
88
132
|
# Initialize services
|
89
133
|
client._chat = ChatService(self._config)
|
134
|
+
client._chatflow = ChatflowService(self._config)
|
90
135
|
client._completion = CompletionService(self._config)
|
91
136
|
client._dify = DifyService(self._config)
|
92
137
|
client._workflow = WorkflowService(self._config)
|
93
|
-
client.
|
138
|
+
client._knowledge = Knowledge(self._config)
|
94
139
|
return client
|
95
140
|
|
96
141
|
def _init_logger(self):
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from .async_transport import ATransport
|
2
|
+
from .connection_pool import ConnectionPoolManager, connection_pool
|
2
3
|
from .sync_transport import Transport
|
3
4
|
|
4
|
-
__all__ = ["Transport", "ATransport"]
|
5
|
+
__all__ = ["Transport", "ATransport", "ConnectionPoolManager", "connection_pool"]
|
@@ -16,6 +16,7 @@ from dify_oapi.core.model.request_option import RequestOption
|
|
16
16
|
from dify_oapi.core.type import T
|
17
17
|
|
18
18
|
from ._misc import _build_header, _build_url, _get_sleep_time, _merge_dicts, _unmarshaller
|
19
|
+
from .connection_pool import connection_pool
|
19
20
|
|
20
21
|
|
21
22
|
def _format_log_details(
|
@@ -33,6 +34,12 @@ def _format_log_details(
|
|
33
34
|
return ", ".join(details)
|
34
35
|
|
35
36
|
|
37
|
+
def _update_response_mode(body_data: dict | None, stream: bool) -> None:
|
38
|
+
"""Update response_mode field in request body based on stream parameter"""
|
39
|
+
if body_data and "response_mode" in body_data:
|
40
|
+
body_data["response_mode"] = "streaming" if stream else "blocking"
|
41
|
+
|
42
|
+
|
36
43
|
async def _handle_async_stream_error(response: httpx.Response) -> bytes:
|
37
44
|
"""Handle async streaming response errors"""
|
38
45
|
try:
|
@@ -58,6 +65,16 @@ async def _async_stream_generator(
|
|
58
65
|
method_name = http_method.name
|
59
66
|
body_data = _merge_dicts(json_, files, data)
|
60
67
|
|
68
|
+
# Use connection pool for async streaming requests
|
69
|
+
client = connection_pool.get_async_client(
|
70
|
+
conf.domain or "",
|
71
|
+
conf.timeout,
|
72
|
+
getattr(conf, "max_keepalive_connections", 20),
|
73
|
+
getattr(conf, "max_connections", 100),
|
74
|
+
getattr(conf, "keepalive_expiry", 30.0),
|
75
|
+
getattr(conf, "verify_ssl", True),
|
76
|
+
)
|
77
|
+
|
61
78
|
for retry in range(conf.max_retry_count + 1):
|
62
79
|
if retry > 0:
|
63
80
|
sleep_time = _get_sleep_time(retry)
|
@@ -65,19 +82,16 @@ async def _async_stream_generator(
|
|
65
82
|
await asyncio.sleep(sleep_time)
|
66
83
|
|
67
84
|
try:
|
68
|
-
async with (
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
timeout=conf.timeout,
|
79
|
-
) as response,
|
80
|
-
):
|
85
|
+
async with client.stream(
|
86
|
+
method_name,
|
87
|
+
url,
|
88
|
+
headers=headers,
|
89
|
+
params=tuple(req.queries),
|
90
|
+
json=json_,
|
91
|
+
data=data,
|
92
|
+
files=files,
|
93
|
+
timeout=conf.timeout,
|
94
|
+
) as response:
|
81
95
|
logger.debug(
|
82
96
|
f"{_format_log_details(method_name, url, headers, req.queries, body_data)}, stream response"
|
83
97
|
)
|
@@ -162,8 +176,10 @@ class ATransport:
|
|
162
176
|
files = req.files
|
163
177
|
if req.body is not None:
|
164
178
|
data = json.loads(JSON.marshal(req.body))
|
179
|
+
_update_response_mode(data, stream)
|
165
180
|
elif req.body is not None:
|
166
181
|
json_ = json.loads(JSON.marshal(req.body))
|
182
|
+
_update_response_mode(json_, stream)
|
167
183
|
|
168
184
|
if stream:
|
169
185
|
return _async_stream_generator(
|
@@ -173,45 +189,52 @@ class ATransport:
|
|
173
189
|
method_name = req.http_method.name
|
174
190
|
body_data = _merge_dicts(json_, files, data)
|
175
191
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
192
|
+
# Use connection pool for async regular requests
|
193
|
+
client = connection_pool.get_async_client(
|
194
|
+
conf.domain or "",
|
195
|
+
conf.timeout,
|
196
|
+
getattr(conf, "max_keepalive_connections", 20),
|
197
|
+
getattr(conf, "max_connections", 100),
|
198
|
+
getattr(conf, "keepalive_expiry", 30.0),
|
199
|
+
getattr(conf, "verify_ssl", True),
|
200
|
+
)
|
201
|
+
|
202
|
+
for retry in range(conf.max_retry_count + 1):
|
203
|
+
if retry > 0:
|
204
|
+
sleep_time = _get_sleep_time(retry)
|
205
|
+
logger.info(f"in-request: sleep {sleep_time}s")
|
206
|
+
await asyncio.sleep(sleep_time)
|
207
|
+
|
208
|
+
try:
|
209
|
+
response = await client.request(
|
210
|
+
method_name,
|
211
|
+
url,
|
212
|
+
headers=headers,
|
213
|
+
params=tuple(req.queries),
|
214
|
+
json=json_,
|
215
|
+
data=data,
|
216
|
+
files=files,
|
217
|
+
timeout=conf.timeout,
|
218
|
+
)
|
219
|
+
break
|
220
|
+
except httpx.RequestError as e:
|
221
|
+
err_msg = f"{e.__class__.__name__}: {e!r}"
|
222
|
+
log_details = _format_log_details(method_name, url, headers, req.queries, body_data)
|
182
223
|
|
183
|
-
|
184
|
-
response = await client.request(
|
185
|
-
method_name,
|
186
|
-
url,
|
187
|
-
headers=headers,
|
188
|
-
params=tuple(req.queries),
|
189
|
-
json=json_,
|
190
|
-
data=data,
|
191
|
-
files=files,
|
192
|
-
timeout=conf.timeout,
|
193
|
-
)
|
194
|
-
break
|
195
|
-
except httpx.RequestError as e:
|
196
|
-
err_msg = f"{e.__class__.__name__}: {e!r}"
|
197
|
-
log_details = _format_log_details(method_name, url, headers, req.queries, body_data)
|
198
|
-
|
199
|
-
if retry < conf.max_retry_count:
|
200
|
-
logger.info(
|
201
|
-
f"in-request: retrying ({retry + 1}/{conf.max_retry_count}) {log_details}, exp: {err_msg}"
|
202
|
-
)
|
203
|
-
continue
|
224
|
+
if retry < conf.max_retry_count:
|
204
225
|
logger.info(
|
205
|
-
f"in-request:
|
226
|
+
f"in-request: retrying ({retry + 1}/{conf.max_retry_count}) {log_details}, exp: {err_msg}"
|
206
227
|
)
|
207
|
-
|
228
|
+
continue
|
229
|
+
logger.info(
|
230
|
+
f"in-request: request failed, retried ({retry}/{conf.max_retry_count}) {log_details}, exp: {err_msg}"
|
231
|
+
)
|
232
|
+
raise
|
208
233
|
|
209
|
-
|
210
|
-
f"{_format_log_details(method_name, url, headers, req.queries, body_data)} {response.status_code}"
|
211
|
-
)
|
234
|
+
logger.debug(f"{_format_log_details(method_name, url, headers, req.queries, body_data)} {response.status_code}")
|
212
235
|
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
236
|
+
raw_resp = RawResponse()
|
237
|
+
raw_resp.status_code = response.status_code
|
238
|
+
raw_resp.headers = dict(response.headers)
|
239
|
+
raw_resp.content = response.content
|
240
|
+
return _unmarshaller(raw_resp, unmarshal_as)
|