Update app.py
Browse files
app.py
CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
|
|
2 |
from huggingface_hub import InferenceClient
|
3 |
import os
|
4 |
import pandas as pd
|
5 |
-
from typing import List,
|
6 |
|
7 |
# 추론 API 클라이언트 설정
|
8 |
hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus-08-2024", token=os.getenv("HF_TOKEN"))
|
@@ -37,7 +37,7 @@ test_parquet_content = load_parquet('test.parquet')
|
|
37 |
|
38 |
def respond(
|
39 |
message,
|
40 |
-
history: List[
|
41 |
system_message="", # 기본값 추가
|
42 |
max_tokens=4000, # 기본값 변경
|
43 |
temperature=0.7, # 기본값 유지
|
@@ -61,7 +61,10 @@ def respond(
|
|
61 |
parquet_content = ""
|
62 |
for item in history:
|
63 |
if item['role'] == 'assistant' and 'test.parquet 파일 내용' in item['content']:
|
64 |
-
|
|
|
|
|
|
|
65 |
break
|
66 |
system_message += f"\n\ntest.parquet 파일 내용:\n```markdown\n{parquet_content}\n```"
|
67 |
message = "test.parquet 파일에 대한 내용을 학습하였고, 관련 설명 및 Q&A를 진행할 준비가 되어있다. 궁금한 점이 있으면 물어보라."
|
@@ -153,7 +156,7 @@ def text_to_parquet(text):
|
|
153 |
with open(parquet_filename, "rb") as f:
|
154 |
data = f.read()
|
155 |
|
156 |
-
return f"{parquet_filename} 파일이 성공적으로 변환되었습니다.", parquet_content, data
|
157 |
except Exception as e:
|
158 |
return f"텍스트 변환 중 오류가 발생했습니다: {str(e)}", "", None
|
159 |
|
@@ -161,18 +164,11 @@ css = """
|
|
161 |
footer {
|
162 |
visibility: hidden;
|
163 |
}
|
164 |
-
#chatbot-container {
|
165 |
height: 600px;
|
166 |
overflow-y: scroll;
|
167 |
}
|
168 |
-
#chatbot-container .message {
|
169 |
-
font-size: 14px;
|
170 |
-
}
|
171 |
-
#chatbot-data-upload {
|
172 |
-
height: 600px;
|
173 |
-
overflow-y: scroll;
|
174 |
-
}
|
175 |
-
#chatbot-data-upload .message {
|
176 |
font-size: 14px;
|
177 |
}
|
178 |
"""
|
@@ -183,7 +179,7 @@ with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css) as demo:
|
|
183 |
|
184 |
with gr.Tab("챗봇"):
|
185 |
gr.Markdown("### LLM과 대화하기")
|
186 |
-
chatbot = gr.Chatbot(label="챗봇", elem_id="chatbot-container")
|
187 |
msg = gr.Textbox(label="메시지 입력", placeholder="여기에 메시지를 입력하세요...")
|
188 |
send = gr.Button("전송")
|
189 |
|
@@ -251,7 +247,7 @@ with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css) as demo:
|
|
251 |
# 파일을 다운로드할 수 있도록 바이너리 데이터로 읽기
|
252 |
with open(parquet_filename, "rb") as f:
|
253 |
data = f.read()
|
254 |
-
return message, load_parquet(parquet_filename), data
|
255 |
else:
|
256 |
return message, "", None
|
257 |
|
@@ -289,13 +285,13 @@ with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css) as demo:
|
|
289 |
)
|
290 |
|
291 |
gr.Markdown("### LLM과 대화하기")
|
292 |
-
chatbot_data_upload = gr.Chatbot(label="챗봇 데이터 업로드", elem_id="chatbot-data-upload")
|
293 |
msg_data_upload = gr.Textbox(label="메시지 입력", placeholder="여기에 메시지를 입력하세요...")
|
294 |
send_data_upload = gr.Button("전송")
|
295 |
|
296 |
# 챗봇 메시지 처리 함수 (데이터 업로드 버전)
|
297 |
def handle_message_data_upload(message, history, system_message, max_tokens, temperature, top_p, parquet_data):
|
298 |
-
# Parquet
|
299 |
# 현재는 기본적으로 메시지를 처리
|
300 |
history = history or []
|
301 |
history.append({"role": "user", "content": message})
|
@@ -353,5 +349,4 @@ with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css) as demo:
|
|
353 |
gr.Markdown("### Gradio 인터페이스를 사용하여 LLM 모델과 상호작용하세요!")
|
354 |
|
355 |
if __name__ == "__main__":
|
356 |
-
demo.launch()
|
357 |
-
|
|
|
2 |
from huggingface_hub import InferenceClient
|
3 |
import os
|
4 |
import pandas as pd
|
5 |
+
from typing import List, Dict
|
6 |
|
7 |
# 추론 API 클라이언트 설정
|
8 |
hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus-08-2024", token=os.getenv("HF_TOKEN"))
|
|
|
37 |
|
38 |
def respond(
|
39 |
message,
|
40 |
+
history: List[Dict[str, str]],
|
41 |
system_message="", # 기본값 추가
|
42 |
max_tokens=4000, # 기본값 변경
|
43 |
temperature=0.7, # 기본값 유지
|
|
|
61 |
parquet_content = ""
|
62 |
for item in history:
|
63 |
if item['role'] == 'assistant' and 'test.parquet 파일 내용' in item['content']:
|
64 |
+
try:
|
65 |
+
parquet_content = item['content'].split("```markdown\n")[1].split("\n```")[0]
|
66 |
+
except IndexError:
|
67 |
+
parquet_content = ""
|
68 |
break
|
69 |
system_message += f"\n\ntest.parquet 파일 내용:\n```markdown\n{parquet_content}\n```"
|
70 |
message = "test.parquet 파일에 대한 내용을 학습하였고, 관련 설명 및 Q&A를 진행할 준비가 되어있다. 궁금한 점이 있으면 물어보라."
|
|
|
156 |
with open(parquet_filename, "rb") as f:
|
157 |
data = f.read()
|
158 |
|
159 |
+
return f"{parquet_filename} 파일이 성공적으로 변환되었습니다.", parquet_content, (parquet_filename, data)
|
160 |
except Exception as e:
|
161 |
return f"텍스트 변환 중 오류가 발생했습니다: {str(e)}", "", None
|
162 |
|
|
|
164 |
footer {
|
165 |
visibility: hidden;
|
166 |
}
|
167 |
+
#chatbot-container, #chatbot-data-upload {
|
168 |
height: 600px;
|
169 |
overflow-y: scroll;
|
170 |
}
|
171 |
+
#chatbot-container .message, #chatbot-data-upload .message {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
font-size: 14px;
|
173 |
}
|
174 |
"""
|
|
|
179 |
|
180 |
with gr.Tab("챗봇"):
|
181 |
gr.Markdown("### LLM과 대화하기")
|
182 |
+
chatbot = gr.Chatbot(label="챗봇", type="messages", elem_id="chatbot-container")
|
183 |
msg = gr.Textbox(label="메시지 입력", placeholder="여기에 메시지를 입력하세요...")
|
184 |
send = gr.Button("전송")
|
185 |
|
|
|
247 |
# 파일을 다운로드할 수 있도록 바이너리 데이터로 읽기
|
248 |
with open(parquet_filename, "rb") as f:
|
249 |
data = f.read()
|
250 |
+
return message, load_parquet(parquet_filename), (parquet_filename, data)
|
251 |
else:
|
252 |
return message, "", None
|
253 |
|
|
|
285 |
)
|
286 |
|
287 |
gr.Markdown("### LLM과 대화하기")
|
288 |
+
chatbot_data_upload = gr.Chatbot(label="챗봇 데이터 업로드", type="messages", elem_id="chatbot-data-upload")
|
289 |
msg_data_upload = gr.Textbox(label="메시지 입력", placeholder="여기에 메시지를 입력하세요...")
|
290 |
send_data_upload = gr.Button("전송")
|
291 |
|
292 |
# 챗봇 메시지 처리 함수 (데이터 업로드 버전)
|
293 |
def handle_message_data_upload(message, history, system_message, max_tokens, temperature, top_p, parquet_data):
|
294 |
+
# Parquet 데이터를 활용할 수 있는 로직을 추가 (예: 데이터 분석, 질의응답)
|
295 |
# 현재는 기본적으로 메시지를 처리
|
296 |
history = history or []
|
297 |
history.append({"role": "user", "content": message})
|
|
|
349 |
gr.Markdown("### Gradio 인터페이스를 사용하여 LLM 모델과 상호작용하세요!")
|
350 |
|
351 |
if __name__ == "__main__":
|
352 |
+
demo.launch(share=True)
|
|