Skip to content

Commit 4e903b1

Browse files
committed
feat: add MAX_QUERY_LENGTH guard in handle_chat to prevent overly long queries
1 parent f6c2b8c commit 4e903b1

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

.env.template

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,6 @@ ELASTIC_PASSWORD=
2828
PAGE_SIZE=1000
2929
GCS_BUCKET=
3030
GCS_PREFIX=
31+
32+
# Query length guard (optional, default: 2000 chars)
33+
# MAX_QUERY_LENGTH=2000 # max allowed query length in characters

backend/agents.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ def _get_genai_client():
8383
FLASH_MODEL = os.getenv("GEMINI_FLASH_MODEL", "gemini-2.5-flash")
8484
FLASH_LITE_MODEL = os.getenv("GEMINI_FLASH_LITE_MODEL", "gemini-2.5-flash-lite")
8585

86+
try:
87+
MAX_QUERY_LENGTH = int(os.getenv("MAX_QUERY_LENGTH", "2000"))
88+
except ValueError:
89+
MAX_QUERY_LENGTH = 2000
90+
8691

8792
# Query intent/types
8893
class QueryIntent(Enum):
@@ -507,6 +512,13 @@ def reset_session(self, session_id: str):
507512

508513
async def handle_chat(self, session_id: str, query: str, reset: bool = False) -> str:
509514
try:
515+
query = query.strip()
516+
if len(query) > MAX_QUERY_LENGTH:
517+
return (
518+
f"Query too long ({len(query)} chars). "
519+
f"Please keep it under {MAX_QUERY_LENGTH} characters."
520+
)
521+
510522
if reset:
511523
self.reset_session(session_id)
512524
if session_id not in self.chat_history:

0 commit comments

Comments
 (0)