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`}