Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/schemas/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@

from pydantic import BaseModel, Field, model_validator


class ChatRequest(BaseModel):
session_id: str = Field(min_length=1, max_length=100)
question: str
dormitory: Optional[str] = None
dormitory_name: Optional[str] = None
user_id: Optional[int] = Field(default=None, ge=1)


class ChatResponse(BaseModel):
chat_log_id: int
session_id: str
answer: str
answer_status: str
source_url: str
response_time: int


ChatFeedbackReasonCode = Literal[
Expand Down
22 changes: 18 additions & 4 deletions app/services/chat_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def answer_chat_question(db: Session, payload: ChatRequest) -> ChatResponse:

room_floor_result = resolve_room_floor_question(
normalized_question,
payload.dormitory,
payload.dormitory_name,
)

if room_floor_result is not None:
Expand All @@ -131,13 +131,13 @@ def answer_chat_question(db: Session, payload: ChatRequest) -> ChatResponse:
response_time_ms=_elapsed_ms(started_at),
)

if payload.dormitory:
if payload.dormitory_name:
return _answer_single_dormitory_chat(
db,
chat_log_id=chat_log_id,
session_id=payload.session_id,
question=normalized_question,
dormitory=payload.dormitory,
dormitory=payload.dormitory_name,
started_at=started_at,
)

Expand Down Expand Up @@ -621,7 +621,7 @@ def _finalize_chat_log(
session_id=session_id,
answer=answer,
answer_status=answer_status.value,
source_url=source_url,
response_time=response_time_ms,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

ChatResponse 스키마와 update_chat_log_result 레포지토리 메서드에서 source_url 필드가 제거됨에 따라, _finalize_chat_log 함수의 파라미터로 전달되는 source_url은 현재 내부 로직에서 전혀 사용되지 않는 상태입니다. 비록 해당 함수 시그니처와 모든 호출부들이 이번 diff에 포함되어 있지는 않지만, 향후 코드 유지보수를 위해 사용되지 않는 source_url 파라미터를 제거하는 리팩토링을 권장합니다.

)


Expand Down Expand Up @@ -879,6 +879,20 @@ def _should_pre_expand_query(question: str) -> bool:

if any(trigger in compact_question for trigger in cooking_triggers):
return True


smoking_triggers = [
"담배",
"흡연",
"담배필",
"담배피",
"담배펴",
"흡연구역",
"흡연장",
]
Comment on lines +882 to +892

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

불필요한 빈 줄을 제거하고, smoking_triggers 리스트의 요소들과 닫는 대괄호(])의 들여쓰기를 PEP 8 스타일에 맞춰 조정하는 것이 좋습니다. 현재 닫는 대괄호가 들여쓰기 없이 시작 지점에 위치하여 코드 구조상 어색해 보입니다.

    smoking_triggers = [
        "담배",
        "흡연",
        "담배필",
        "담배피",
        "담배펴",
        "흡연구역",
        "흡연장",
    ]
References
  1. PEP 8에 따르면 리스트의 요소들은 시작 부분보다 더 깊게 들여쓰기되어야 하며, 닫는 괄호는 마지막 요소의 첫 번째 문자와 수직으로 정렬하거나 시작 줄의 첫 번째 문자와 정렬해야 합니다. (link)


if any(trigger in compact_question for trigger in smoking_triggers):
return True

return False

Expand Down
5 changes: 4 additions & 1 deletion app/services/query_rewriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def expand_query_for_retrieval(
12.사용자가 "먹을 거", "간단하게 먹을 곳", "먹을거 해결", "사먹을 곳"처럼 식사/간식 해결 장소를 물으면 학생식당, 학식, 편의점, 매점, 배달음식 수령 키워드를 함께 포함해라.
13.사용자가 전자레인지, 음식 데우기, 데워먹기, 휴게실 전자레인지 위치를 물으면 휴게실, 공용시설, 전자레인지, 음식 데우기, 정수기, 싱크대 키워드를 포함해라.
14.사용자가 방에서 라면을 먹어도 되는지, 라면을 끓여 먹어도 되는지, 조리, 취사, 라면포트, 전기포트, 전열기구 사용 가능 여부를 물으면 반입금지 물품, 취사행위, 전열기구, 라면포트, 전기포트, 조리 금지, 화재위험 키워드를 포함해라.

15. 사용자가 담배, 흡연, 담배 피울 곳, 담배 필 수 있는 곳, 흡연 가능한 장소를 물으면 흡연구역, 흡연장, 지정 흡연구역, 흡연 가능 장소, 금연구역 키워드를 포함해라.
예시:
사용자 질문: 새벽 2시에 들어가도 돼?
검색용 질의: 새벽 2시에 들어가도 돼? 검색 키워드: 폐문시간, 개문시간, 출입통제, 출입 가능 시간, 생활관 이용안내, 오전 1시, 오전 5시
Expand Down Expand Up @@ -89,6 +89,9 @@ def expand_query_for_retrieval(
사용자 질문: 음식 데워먹을 수 있어?
검색용 질의: 음식 데워먹을 수 있어? 검색 키워드: 휴게실, 공용시설, 전자레인지, 음식 데우기, 편의시설

사용자 질문: 담배 필 수 있는 곳 알아?
검색용 질의: 담배 필 수 있는 곳 알아? 검색 키워드: 흡연구역, 흡연장, 지정 흡연구역, 흡연 가능 장소, 금연구역

사용자 생활관:
{dormitory_text}

Expand Down
Loading