Skip to content

Commit f9a37fa

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

2 files changed

Lines changed: 12 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: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ 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+
MAX_QUERY_LENGTH = int(os.getenv("MAX_QUERY_LENGTH", "2000"))
87+
8688

8789
# Query intent/types
8890
class QueryIntent(Enum):
@@ -507,6 +509,13 @@ def reset_session(self, session_id: str):
507509

508510
async def handle_chat(self, session_id: str, query: str, reset: bool = False) -> str:
509511
try:
512+
query = query.strip()
513+
if len(query) > MAX_QUERY_LENGTH:
514+
return (
515+
f"Query too long ({len(query)} chars). "
516+
f"Please keep it under {MAX_QUERY_LENGTH} characters."
517+
)
518+
510519
if reset:
511520
self.reset_session(session_id)
512521
if session_id not in self.chat_history:

0 commit comments

Comments
 (0)