ginipick commited on
Commit
5dfb15d
·
verified ·
1 Parent(s): e2baeda

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -11
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import os
2
  import gradio as gr
3
  from gradio import ChatMessage
4
- from typing import Iterator, List, Dict, Tuple
5
  import google.generativeai as genai
6
  from huggingface_hub import HfApi
7
  import requests
@@ -169,24 +169,33 @@ def explain_usage(app_content: str) -> str:
169
  except Exception as e:
170
  return f"사용법 설명 생성 중 오류 발생: {str(e)}"
171
 
172
- def convert_chat_history(messages: List[ChatMessage]) -> List[Tuple[str, str]]:
173
  """
174
- ChatMessage 객체 리스트를 (user, assistant) 튜플 목록으로 변환합니다.
 
175
  """
176
  conv = []
177
  i = 0
178
  while i < len(messages):
179
- if messages[i].role == "user":
180
- user_text = messages[i].content
181
- bot_text = ""
182
- if i + 1 < len(messages) and messages[i+1].role == "assistant":
183
- bot_text = messages[i+1].content
184
- i += 2
 
 
 
 
 
 
 
 
 
185
  else:
 
186
  i += 1
187
- conv.append((user_text, bot_text))
188
  else:
189
- conv.append(("", messages[i].content))
190
  i += 1
191
  return conv
192
 
 
1
  import os
2
  import gradio as gr
3
  from gradio import ChatMessage
4
+ from typing import Iterator, List, Dict, Tuple, Any
5
  import google.generativeai as genai
6
  from huggingface_hub import HfApi
7
  import requests
 
169
  except Exception as e:
170
  return f"사용법 설명 생성 중 오류 발생: {str(e)}"
171
 
172
+ def convert_chat_history(messages: List[Any]) -> List[Tuple[str, str]]:
173
  """
174
+ 메시지 목록의 각 항목이 ChatMessage 객체라면 (user, assistant) 튜플로,
175
+ 이미 튜플인 경우 그대로 반환합니다.
176
  """
177
  conv = []
178
  i = 0
179
  while i < len(messages):
180
+ # 만약 이미 튜플이면 그대로 사용
181
+ if isinstance(messages[i], tuple):
182
+ conv.append(messages[i])
183
+ i += 1
184
+ # 만약 ChatMessage 객체라면
185
+ elif hasattr(messages[i], "role"):
186
+ if messages[i].role == "user":
187
+ user_text = messages[i].content
188
+ bot_text = ""
189
+ if i + 1 < len(messages) and hasattr(messages[i+1], "role") and messages[i+1].role == "assistant":
190
+ bot_text = messages[i+1].content
191
+ i += 2
192
+ else:
193
+ i += 1
194
+ conv.append((user_text, bot_text))
195
  else:
196
+ conv.append(("", messages[i].content))
197
  i += 1
 
198
  else:
 
199
  i += 1
200
  return conv
201