Update app.py
Browse files
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[
|
| 173 |
"""
|
| 174 |
-
ChatMessage
|
|
|
|
| 175 |
"""
|
| 176 |
conv = []
|
| 177 |
i = 0
|
| 178 |
while i < len(messages):
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|