ciyidogan commited on
Commit
9acabb0
Β·
verified Β·
1 Parent(s): 5fd1071

Update chat_handler.py

Browse files
Files changed (1) hide show
  1. chat_handler.py +16 -18
chat_handler.py CHANGED
@@ -197,31 +197,22 @@ async def chat(body: ChatRequest, x_session_id: str = Header(...)):
197
 
198
  log(f"πŸ’¬ User input: {user_input}")
199
  log(f"πŸ“Š Session state: {session.state}, last_intent: {session.last_intent}")
200
- log(f"πŸ“Š Chat history length before adding: {len(session.chat_history)}")
201
 
202
  session.add_turn("user", user_input)
203
-
204
- # Debug - chat history'yi kontrol et
205
- log(f"πŸ“Š Chat history after adding: {session.chat_history}")
206
-
207
- cfg = get_config()
208
-
209
- # Get project config
210
- project = next((p for p in cfg.projects if p.name == session.project_name), None)
211
- if not project:
212
- raise HTTPException(500, "Project configuration lost")
213
-
214
- version = next((v for v in project.versions if v.published), None)
215
  if not version:
216
- raise HTTPException(500, "No published version")
217
 
218
  # Handle based on state
219
  if session.state == "await_param":
220
  log(f"πŸ”„ Handling parameter followup for missing: {session.awaiting_parameters}")
221
- answer = await _handle_parameter_followup(session, user_input, version)
222
  else:
223
  log("πŸ†• Handling new message")
224
- answer = await _handle_new_message(session, user_input, version)
225
 
226
  session.add_turn("assistant", answer)
227
  return ChatResponse(session_id=session.session_id, answer=answer)
@@ -236,8 +227,15 @@ async def chat(body: ChatRequest, x_session_id: str = Header(...)):
236
  return ChatResponse(session_id=x_session_id, answer=error_msg)
237
 
238
  # ───────────────────────── MESSAGE HANDLERS ───────────────────────── #
239
- async def _handle_new_message(session: Session, user_input: str, version) -> str:
240
  """Handle new message (not parameter followup)"""
 
 
 
 
 
 
 
241
  # Build intent detection prompt
242
  prompt = build_intent_prompt(
243
  version.general_prompt,
@@ -264,7 +262,7 @@ async def _handle_new_message(session: Session, user_input: str, version) -> str
264
  # Parse intent
265
  intent_name, tail = _safe_intent_parse(raw)
266
 
267
- # βœ… Session'daki intent'lerle validate et
268
  valid_intents = {intent.name for intent in version.intents}
269
  if intent_name not in valid_intents:
270
  log(f"⚠️ Invalid intent: {intent_name} (valid: {valid_intents})")
 
197
 
198
  log(f"πŸ’¬ User input: {user_input}")
199
  log(f"πŸ“Š Session state: {session.state}, last_intent: {session.last_intent}")
200
+ log(f"πŸ“Š Session version: {session.version_number}")
201
 
202
  session.add_turn("user", user_input)
203
+
204
+ # Get version config from session
205
+ version = session.get_version_config()
 
 
 
 
 
 
 
 
 
206
  if not version:
207
+ raise HTTPException(500, "Version configuration lost")
208
 
209
  # Handle based on state
210
  if session.state == "await_param":
211
  log(f"πŸ”„ Handling parameter followup for missing: {session.awaiting_parameters}")
212
+ answer = await _handle_parameter_followup(session, user_input) # version parametresi kaldΔ±rΔ±ldΔ±
213
  else:
214
  log("πŸ†• Handling new message")
215
+ answer = await _handle_new_message(session, user_input) # version parametresi kaldΔ±rΔ±ldΔ±
216
 
217
  session.add_turn("assistant", answer)
218
  return ChatResponse(session_id=session.session_id, answer=answer)
 
227
  return ChatResponse(session_id=x_session_id, answer=error_msg)
228
 
229
  # ───────────────────────── MESSAGE HANDLERS ───────────────────────── #
230
+ async def _handle_new_message(session: Session, user_input: str) -> str:
231
  """Handle new message (not parameter followup)"""
232
+
233
+ # Get version config from session
234
+ version = session.get_version_config()
235
+ if not version:
236
+ log("❌ Version config not found")
237
+ return "Bir hata oluştu. Lütfen tekrar deneyin."
238
+
239
  # Build intent detection prompt
240
  prompt = build_intent_prompt(
241
  version.general_prompt,
 
262
  # Parse intent
263
  intent_name, tail = _safe_intent_parse(raw)
264
 
265
+ # Validate intent against version's intents
266
  valid_intents = {intent.name for intent in version.intents}
267
  if intent_name not in valid_intents:
268
  log(f"⚠️ Invalid intent: {intent_name} (valid: {valid_intents})")