|
@@ -1,14 +1,17 @@
|
|
|
+import logging
|
|
|
from typing import Optional, List, Union, Tuple
|
|
|
|
|
|
from langchain.callbacks import CallbackManager
|
|
|
from langchain.chat_models.base import BaseChatModel
|
|
|
from langchain.llms import BaseLLM
|
|
|
from langchain.schema import BaseMessage, BaseLanguageModel, HumanMessage
|
|
|
+from requests.exceptions import ChunkedEncodingError
|
|
|
+
|
|
|
from core.constant import llm_constant
|
|
|
from core.callback_handler.llm_callback_handler import LLMCallbackHandler
|
|
|
from core.callback_handler.std_out_callback_handler import DifyStreamingStdOutCallbackHandler, \
|
|
|
DifyStdOutCallbackHandler
|
|
|
-from core.conversation_message_task import ConversationMessageTask, ConversationTaskStoppedException
|
|
|
+from core.conversation_message_task import ConversationMessageTask, ConversationTaskStoppedException, PubHandler
|
|
|
from core.llm.error import LLMBadRequestError
|
|
|
from core.llm.llm_builder import LLMBuilder
|
|
|
from core.chain.main_chain_builder import MainChainBuilder
|
|
@@ -84,6 +87,11 @@ class Completion:
|
|
|
)
|
|
|
except ConversationTaskStoppedException:
|
|
|
return
|
|
|
+ except ChunkedEncodingError as e:
|
|
|
+ # Interrupt by LLM (like OpenAI), handle it.
|
|
|
+ logging.warning(f'ChunkedEncodingError: {e}')
|
|
|
+ conversation_message_task.end()
|
|
|
+ return
|
|
|
|
|
|
@classmethod
|
|
|
def run_final_llm(cls, tenant_id: str, mode: str, app_model_config: AppModelConfig, query: str, inputs: dict,
|