dev-yuje commited on
Commit
13ff777
·
1 Parent(s): c9414cd

refactor: UI 텍스트 상자 및 예시 목록 간소화 (불필요한 버튼/설명 제거)

Browse files
Files changed (1) hide show
  1. app.py +13 -14
app.py CHANGED
@@ -36,16 +36,17 @@ except Exception as e:
36
 
37
 
38
  class ChatState(TypedDict):
39
- question: str # 사용자 질문
40
  history: List[dict] # 대화 히스토리 [{"role": "user"/"assistant", "content": "..."}]
41
- context: str # GraphRAG 검색 결과
42
- answer: str # 최종 답변
43
 
44
 
45
  # ──────────────────────────────────────────
46
  # 2. LangGraph 노드 정의
47
  # ──────────────────────────────────────────
48
 
 
49
  def retrieve_node(state: ChatState) -> ChatState:
50
  """Node 1: GraphRAG로 관련 컨텍스트 검색"""
51
  try:
@@ -58,7 +59,7 @@ def retrieve_node(state: ChatState) -> ChatState:
58
 
59
  def generate_node(state: ChatState) -> ChatState:
60
  """Node 2: 대화 히스토리를 고려하여 최종 답변 생성
61
-
62
  GraphRAG가 이미 검색 + 생성을 처리하므로,
63
  여기서는 히스토리 기반 후처리나 추가 포맷팅만 수행합니다.
64
  """
@@ -86,6 +87,7 @@ chat_graph = builder.compile()
86
  # 4. Gradio 연동 함수
87
  # ──────────────────────────────────────────
88
 
 
89
  def chat(message: str, history: list) -> str:
90
  """Gradio ChatInterface가 호출하는 함수.
91
 
@@ -131,23 +133,20 @@ theme_obj = gr.themes.Soft(
131
  interface_kwargs = {
132
  "fn": chat,
133
  "chatbot": gr.Chatbot(height=500),
134
- "textbox": gr.Textbox(placeholder="여기에 질문을 입력하고 Enter를 누르거나 우측의 전송 버튼을 클릭하세요...", submit_btn="🚀 전송", container=False, scale=7),
135
- "title": "FinNode AI 기업 트렌드 분석 챗봇",
136
- "description": (
137
- "> 최신 AI 뉴스를 기반으로 구축된 지식 그래프(GraphRAG)에서 답변합니다.\n\n"
138
- "**예시 질문**\n"
139
- "- 삼성전자의 최근 AI 기술 트렌드는?\n"
140
- "- 카카오가 개발 중인 AI 서비스 목록을 알려줘\n"
141
- "- 어떤 기업이 LLM 기술을 개발하나요?\n"
142
- "- 최근 AI 관련 뉴스 기사를 요약해줘"
143
  ),
 
 
144
  "examples": [
145
  "삼성전자의 최근 AI 기술 트렌드는?",
146
  "카카오가 개발 중인 AI 서비스 목록을 알려줘",
147
  "어떤 기업이 LLM 기술을 개발하나요?",
148
  "최근 AI 관련 뉴스 기사를 요약해줘",
149
  ],
150
- "cache_examples": False
151
  }
152
 
153
  # HF Spaces 컨테이너 내 루프백 검증 실패(ValueError) 우회 및 로컬/원격 호환 구동을 위해 launch 인자 정밀 설계
 
36
 
37
 
38
  class ChatState(TypedDict):
39
+ question: str # 사용자 질문
40
  history: List[dict] # 대화 히스토리 [{"role": "user"/"assistant", "content": "..."}]
41
+ context: str # GraphRAG 검색 결과
42
+ answer: str # 최종 답변
43
 
44
 
45
  # ──────────────────────────────────────────
46
  # 2. LangGraph 노드 정의
47
  # ──────────────────────────────────────────
48
 
49
+
50
  def retrieve_node(state: ChatState) -> ChatState:
51
  """Node 1: GraphRAG로 관련 컨텍스트 검색"""
52
  try:
 
59
 
60
  def generate_node(state: ChatState) -> ChatState:
61
  """Node 2: 대화 히스토리를 고려하여 최종 답변 생성
62
+
63
  GraphRAG가 이미 검색 + 생성을 처리하므로,
64
  여기서는 히스토리 기반 후처리나 추가 포맷팅만 수행합니다.
65
  """
 
87
  # 4. Gradio 연동 함수
88
  # ──────────────────────────────────────────
89
 
90
+
91
  def chat(message: str, history: list) -> str:
92
  """Gradio ChatInterface가 호출하는 함수.
93
 
 
133
  interface_kwargs = {
134
  "fn": chat,
135
  "chatbot": gr.Chatbot(height=500),
136
+ "textbox": gr.Textbox(
137
+ placeholder="분석하고 싶은 내용을 자연어로 입력해주세요...",
138
+ container=False,
139
+ scale=7,
 
 
 
 
 
140
  ),
141
+ "title": "FinNode — AI 기업 트렌드 분석 챗봇",
142
+ "description": "> 최신 AI 뉴스를 기반으로 구축된 지식 그래프(GraphRAG)에서 답변합니다.",
143
  "examples": [
144
  "삼성전자의 최근 AI 기술 트렌드는?",
145
  "카카오가 개발 중인 AI 서비스 목록을 알려줘",
146
  "어떤 기업이 LLM 기술을 개발하나요?",
147
  "최근 AI 관련 뉴스 기사를 요약해줘",
148
  ],
149
+ "cache_examples": False,
150
  }
151
 
152
  # HF Spaces 컨테이너 내 루프백 검증 실패(ValueError) 우회 및 로컬/원격 호환 구동을 위해 launch 인자 정밀 설계