From ff6a15b5af48a966d745593f6ba713b320bad50d Mon Sep 17 00:00:00 2001 From: pablodanswer Date: Sun, 15 Sep 2024 09:49:06 -0700 Subject: [PATCH] squash --- ...e8e7ae58189_single_tool_call_per_message.py | 4 ++-- backend/danswer/chat/process_message.py | 15 +++++++++++---- backend/danswer/configs/app_configs.py | 2 +- backend/danswer/llm/answering/answer.py | 7 +++++++ .../server/query_and_chat/chat_backend.py | 13 ++++++++++--- backend/shared_configs/configs.py | 2 +- .../docker_compose/docker-compose.dev.yml | 2 +- .../docker_compose/docker-compose.gpu-dev.yml | 2 +- .../docker-compose.search-testing.yml | 2 +- web/src/app/chat/ChatPage.tsx | 10 ---------- web/src/app/chat/interfaces.ts | 18 ------------------ web/src/app/chat/message/Messages.tsx | 2 +- 12 files changed, 36 insertions(+), 43 deletions(-) diff --git a/backend/alembic/versions/4e8e7ae58189_single_tool_call_per_message.py b/backend/alembic/versions/4e8e7ae58189_single_tool_call_per_message.py index 727d22ab3..5754083a3 100644 --- a/backend/alembic/versions/4e8e7ae58189_single_tool_call_per_message.py +++ b/backend/alembic/versions/4e8e7ae58189_single_tool_call_per_message.py @@ -2,7 +2,7 @@ Revision ID: 4e8e7ae58189 -Revises: f7e58d357687 +Revises: 5c7fdadae813 Create Date: 2024-09-09 10:07:58.008838 """ @@ -12,7 +12,7 @@ import sqlalchemy as sa # revision identifiers, used by Alembic. revision = "4e8e7ae58189" -down_revision = "f7e58d357687" +down_revision = "5c7fdadae813" branch_labels = None depends_on = None diff --git a/backend/danswer/chat/process_message.py b/backend/danswer/chat/process_message.py index fd02f0be2..b0699ba86 100644 --- a/backend/danswer/chat/process_message.py +++ b/backend/danswer/chat/process_message.py @@ -634,6 +634,13 @@ def stream_chat_message_objects( ) # LLM prompt building, response capturing, etc. + print("IS CONNECTED FUNCTION IS", is_connected) + logger.info(f"Is connected function: {is_connected}") + if is_connected: + logger.debug(f"Is connected function type: {type(is_connected)}") + logger.debug(f"Is connected function callable: {callable(is_connected)}") + else: + logger.warning("Is connected function is None or falsy") answer = Answer( is_connected=is_connected, question=final_msg.message, @@ -744,7 +751,6 @@ def stream_chat_message_objects( response=custom_tool_response.tool_result, tool_name=custom_tool_response.tool_name, ) - elif isinstance(packet, StreamStopInfo): if packet.stop_reason is not StreamStopReason.NEW_RESPONSE: break @@ -815,10 +821,11 @@ def stream_chat_message_objects( db_session=db_session, commit=False, ) + else: + if isinstance(packet, ToolCallFinalResult): + tool_result = packet + yield cast(ChatPacket, packet) - elif isinstance(packet, ToolCallFinalResult): - tool_result = packet - yield cast(ChatPacket, packet) logger.debug("Reached end of stream") except Exception as e: error_msg = str(e) diff --git a/backend/danswer/configs/app_configs.py b/backend/danswer/configs/app_configs.py index 4b5109b5e..2f57dd249 100644 --- a/backend/danswer/configs/app_configs.py +++ b/backend/danswer/configs/app_configs.py @@ -135,7 +135,7 @@ POSTGRES_PASSWORD = urllib.parse.quote_plus( os.environ.get("POSTGRES_PASSWORD") or "password" ) POSTGRES_HOST = os.environ.get("POSTGRES_HOST") or "localhost" -POSTGRES_PORT = os.environ.get("POSTGRES_PORT") or "5432" +POSTGRES_PORT = os.environ.get("POSTGRES_PORT") or "5433" POSTGRES_DB = os.environ.get("POSTGRES_DB") or "postgres" # defaults to False diff --git a/backend/danswer/llm/answering/answer.py b/backend/danswer/llm/answering/answer.py index 879c116c2..61eea6b83 100644 --- a/backend/danswer/llm/answering/answer.py +++ b/backend/danswer/llm/answering/answer.py @@ -249,8 +249,12 @@ class Answer: tool_call_chunk += message # type: ignore else: if message.content: + print(message) + if self.is_cancelled: return + else: + print("not canncelled") yield cast(str, message.content) if ( message.additional_kwargs.get("usage_metadata", {}).get( @@ -463,11 +467,13 @@ class Answer: self.question, self.prompt_config, self.latest_query_files ) ) + print("I am now yielding from here") prompt = prompt_builder.build() yield from self._process_llm_stream( prompt=prompt, tools=None, ) + print("yielding complete") return tool, tool_args = chosen_tool_and_args @@ -552,6 +558,7 @@ class Answer: final_context_docs: list[LlmDoc] | None = None for message in stream: + print(message) if isinstance(message, ToolCallKickoff) or isinstance( message, ToolCallFinalResult ): diff --git a/backend/danswer/server/query_and_chat/chat_backend.py b/backend/danswer/server/query_and_chat/chat_backend.py index 20ae7124f..3c9217004 100644 --- a/backend/danswer/server/query_and_chat/chat_backend.py +++ b/backend/danswer/server/query_and_chat/chat_backend.py @@ -279,16 +279,23 @@ async def is_disconnected(request: Request) -> Callable[[], bool]: main_loop = asyncio.get_event_loop() def is_disconnected_sync() -> bool: + logger.info("Checking if client is disconnected") future = asyncio.run_coroutine_threadsafe(request.is_disconnected(), main_loop) try: - return not future.result(timeout=0.01) + result = not future.result(timeout=0.01) + if result: + logger.info("Client disconnected") + return result except asyncio.TimeoutError: - logger.error("Asyncio timed out") + logger.error("Asyncio timed out while checking client connection") + return True + except asyncio.CancelledError: + logger.info("Disconnect check was cancelled") return True except Exception as e: error_msg = str(e) logger.critical( - f"An unexpected error occured with the disconnect check coroutine: {error_msg}" + f"An unexpected error occurred with the disconnect check coroutine: {error_msg}" ) return True diff --git a/backend/shared_configs/configs.py b/backend/shared_configs/configs.py index 6477c6e3b..b985d5d0f 100644 --- a/backend/shared_configs/configs.py +++ b/backend/shared_configs/configs.py @@ -21,7 +21,7 @@ CONNECTOR_CLASSIFIER_MODEL_TAG = "1.0.0" INTENT_MODEL_VERSION = "danswer/hybrid-intent-token-classifier" INTENT_MODEL_TAG = "v1.0.3" -# TOoc all configs +# Tool call configs MAX_TOOL_CALLS = 2 # Bi-Encoder, other details diff --git a/deployment/docker_compose/docker-compose.dev.yml b/deployment/docker_compose/docker-compose.dev.yml index d61419607..1458651d6 100644 --- a/deployment/docker_compose/docker-compose.dev.yml +++ b/deployment/docker_compose/docker-compose.dev.yml @@ -292,7 +292,7 @@ services: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password} ports: - - "5432:5432" + - "5433:5432" volumes: - db_volume:/var/lib/postgresql/data diff --git a/deployment/docker_compose/docker-compose.gpu-dev.yml b/deployment/docker_compose/docker-compose.gpu-dev.yml index 8937bb903..ad9627945 100644 --- a/deployment/docker_compose/docker-compose.gpu-dev.yml +++ b/deployment/docker_compose/docker-compose.gpu-dev.yml @@ -302,7 +302,7 @@ services: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password} ports: - - "5432:5432" + - "5433:5432" volumes: - db_volume:/var/lib/postgresql/data diff --git a/deployment/docker_compose/docker-compose.search-testing.yml b/deployment/docker_compose/docker-compose.search-testing.yml index a64b30f09..36b093fba 100644 --- a/deployment/docker_compose/docker-compose.search-testing.yml +++ b/deployment/docker_compose/docker-compose.search-testing.yml @@ -154,7 +154,7 @@ services: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password} ports: - - "5432" + - "5433" volumes: - db_volume:/var/lib/postgresql/data diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx index e39121a27..5ead6472c 100644 --- a/web/src/app/chat/ChatPage.tsx +++ b/web/src/app/chat/ChatPage.tsx @@ -13,7 +13,6 @@ import { ImageGenerationDisplay, Message, MessageResponseIDInfo, - PreviousAIMessage, RetrievalType, StreamingError, ToolCallMetadata, @@ -1253,7 +1252,6 @@ export function ChatPage({ dynamicParentMessage === null && dynamicAssistantMessage === null ) { - console.log("INITIALizing"); dynamicParentMessage = initialDynamicParentMessage; dynamicAssistantMessage = initialDynamicAssistantMessage; dynamicParentMessage.childrenMessageIds = [ @@ -2469,14 +2467,6 @@ export function ChatPage({ )} - setShowApiKeyModal(true) diff --git a/web/src/app/chat/interfaces.ts b/web/src/app/chat/interfaces.ts index 03d7834ee..1f77b7041 100644 --- a/web/src/app/chat/interfaces.ts +++ b/web/src/app/chat/interfaces.ts @@ -76,24 +76,6 @@ export interface SearchSession { description: string; } -export interface PreviousAIMessage { - messageId?: number; - message?: string; - type?: "assistant"; - retrievalType?: RetrievalType; - query?: string | null; - documents?: DanswerDocument[] | null; - citations?: CitationMap; - files?: FileDescriptor[]; - toolCall?: ToolCallMetadata | null; - - // for rebuilding the message tree - parentMessageId?: number | null; - childrenMessageIds?: number[]; - latestChildMessageId?: number | null; - alternateAssistantID?: number | null; -} - export interface Message { messageId: number; message: string; diff --git a/web/src/app/chat/message/Messages.tsx b/web/src/app/chat/message/Messages.tsx index 3e3d60c3c..8bdb28ab8 100644 --- a/web/src/app/chat/message/Messages.tsx +++ b/web/src/app/chat/message/Messages.tsx @@ -777,7 +777,7 @@ export const HumanMessage = ({ outline-none placeholder-gray-400 resize-none - pl-4crea + pl-4 overflow-y-auto pr-12 py-4`}