jonghhhh commited on
Commit
b412fdb
ยท
verified ยท
1 Parent(s): d3a7619

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -10
app.py CHANGED
@@ -56,7 +56,7 @@ class SimpleRAGSystem:
56
  if count == 0:
57
  raise RuntimeError("ChromaDB๊ฐ€ ๋น„์–ด์žˆ์Šต๋‹ˆ๋‹ค.")
58
 
59
- def search_similar_docs(self, query: str, top_k: int = 10) -> List[Dict]:
60
  emb = self.embedding_model.encode(query).tolist()
61
  res = self.collection.query(
62
  query_embeddings=[emb], n_results=top_k,
@@ -71,21 +71,21 @@ rag_system = SimpleRAGSystem()
71
 
72
  # === Google ADK ์„ค์ • ===
73
  session_svc = InMemorySessionService()
74
- agent = Agent(model="gemini-2.0-flash-lite",
75
  name="khu_media_advisor",
76
  instruction="""๋‹น์‹ ์€ ๊ฒฝํฌ๋Œ€ํ•™๊ต ๋ฏธ๋””์–ดํ•™๊ณผ ์ „๋ฌธ ์ƒ๋‹ด AI์ž…๋‹ˆ๋‹ค.
77
  # ์ฃผ์š” ์—ญํ• :
78
- - ์ œ๊ณต๋œ ๋ฌธ์„œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •ํ™•ํ•œ ๋‹ต๋ณ€ ์ œ๊ณต
79
  - ๋ฏธ๋””์–ดํ•™๊ณผ ๊ด€๋ จ ์งˆ๋ฌธ์— ์นœ์ ˆํ•˜๊ณ  ๊ตฌ์ฒด์ ์œผ๋กœ ์‘๋‹ต
80
  - ๋ฌธ์„œ์— ์—†๋Š” ๋‚ด์šฉ์€ ์ผ๋ฐ˜ ์ง€์‹์œผ๋กœ ๋ณด์™„ (๋‹จ, ๋ช…์‹œ)
81
  # ๋‹ต๋ณ€ ์Šคํƒ€์ผ:
82
- - ์ž์„ธํ•˜๊ณ  ํ’๋ถ€ํ•œ ์„ค๋ช…์„ ํฌํ•จํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ์ƒ์„ธํ•˜๊ฒŒ ๋‹ต๋ณ€ ์ œ๊ณต
83
  - ์นœ๊ทผํ•˜๊ณ  ๋„์›€์ด ๋˜๋Š” ์ƒ๋‹ด์‚ฌ ํ†ค
84
  - ํ•ต์‹ฌ ์ •๋ณด๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌ
85
  - ์ถ”๊ฐ€ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด ์–ธ์ œ๋“  ๋ฌผ์–ด๋ณด๋ผ๊ณ  ์•ˆ๋‚ด
86
  # ์ฐธ๊ณ  ๋ฌธ์„œ ํ™œ์šฉ:
87
  - ๋ฌธ์„œ ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ๊ตฌ์ฒด์ ์œผ๋กœ ์ธ์šฉ
88
- - ์—ฌ๋Ÿฌ ๋ฌธ์„œ์˜ ์ •๋ณด๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ์™„์ „ํ•œ ๋‹ต๋ณ€ ์ž‘์„ฑ
89
  - ์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๋Š” ์ถ”์ธกํ•˜์ง€ ๋ง๊ณ  ์†”์งํ•˜๊ฒŒ ๋ชจ๋ฅธ๋‹ค๊ณ  ๋‹ต๋ณ€"""
90
  )
91
 
@@ -108,7 +108,7 @@ async def get_response(prompt: str) -> str:
108
  with gr.Blocks(title="๊ฒฝํฌ๋Œ€ ๋ฏธ๋””์–ดํ•™๊ณผ AI ์ƒ๋‹ด์‚ฌ", theme="soft") as app:
109
  gr.Markdown("# ๐ŸŽฌ ๊ฒฝํฌ๋Œ€ ๋ฏธ๋””์–ดํ•™๊ณผ AI ์ƒ๋‹ด์‚ฌ")
110
  chatbot = gr.Chatbot(type="messages", height=400)
111
- msg = gr.Textbox(show_label=False, placeholder="์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜์„ธ์š”...")
112
  send = gr.Button("์ „์†ก")
113
 
114
  def chat_fn(user_input, history):
@@ -116,10 +116,10 @@ with gr.Blocks(title="๊ฒฝํฌ๋Œ€ ๋ฏธ๋””์–ดํ•™๊ณผ AI ์ƒ๋‹ด์‚ฌ", theme="soft") as
116
  # ์ž…๋ ฅ ์ „์ฒ˜๋ฆฌ: ์˜ค์šฉ ๋ฐฉ์ง€
117
  user_input = user_input.replace("์ „๊ณต", "๋ถ„์•ผ").replace("๊ต์ˆ˜", "๊ต์ˆ˜์ง„")
118
  # ๊ต์ˆ˜์ง„ ๊ด€๋ จ ์งˆ๋ฌธ ์ฒ˜๋ฆฌ
119
- #if "๊ต์ˆ˜์ง„" in user_input or "๊ต์ˆ˜" in user_input:
120
- # prof_msg = f"ํ˜„์žฌ ๋ฏธ๋””์–ดํ•™๊ณผ ๊ต์ˆ˜์ง„์€: {', '.join(PROFESSORS)} ์ž…๋‹ˆ๋‹ค."
121
- # history.append({"role": "assistant", "content": prof_msg})
122
- # return history,
123
  # RAG ์ปจํ…์ŠคํŠธ
124
  docs = rag_system.search_similar_docs(user_input)
125
  # Combine existing history (dicts) with new user message
 
56
  if count == 0:
57
  raise RuntimeError("ChromaDB๊ฐ€ ๋น„์–ด์žˆ์Šต๋‹ˆ๋‹ค.")
58
 
59
+ def search_similar_docs(self, query: str, top_k: int = 20) -> List[Dict]:
60
  emb = self.embedding_model.encode(query).tolist()
61
  res = self.collection.query(
62
  query_embeddings=[emb], n_results=top_k,
 
71
 
72
  # === Google ADK ์„ค์ • ===
73
  session_svc = InMemorySessionService()
74
+ agent = Agent(model="gemini-2.0-flash", # "gemini-2.0-flash-lite"
75
  name="khu_media_advisor",
76
  instruction="""๋‹น์‹ ์€ ๊ฒฝํฌ๋Œ€ํ•™๊ต ๋ฏธ๋””์–ดํ•™๊ณผ ์ „๋ฌธ ์ƒ๋‹ด AI์ž…๋‹ˆ๋‹ค.
77
  # ์ฃผ์š” ์—ญํ• :
78
+ - ์ œ๊ณต๋œ ๋ฌธ์„œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ต๋ณ€ ์ œ๊ณต
79
  - ๋ฏธ๋””์–ดํ•™๊ณผ ๊ด€๋ จ ์งˆ๋ฌธ์— ์นœ์ ˆํ•˜๊ณ  ๊ตฌ์ฒด์ ์œผ๋กœ ์‘๋‹ต
80
  - ๋ฌธ์„œ์— ์—†๋Š” ๋‚ด์šฉ์€ ์ผ๋ฐ˜ ์ง€์‹์œผ๋กœ ๋ณด์™„ (๋‹จ, ๋ช…์‹œ)
81
  # ๋‹ต๋ณ€ ์Šคํƒ€์ผ:
82
+ - ์ž์„ธํ•˜๊ณ  ํ’๋ถ€ํ•œ ์„ค๋ช…์„ ํฌํ•จํ•˜์—ฌ ์ƒ์„ธํ•˜๊ณ  ๊ธธ๊ฒŒ ๋‹ต๋ณ€ ์ œ๊ณต
83
  - ์นœ๊ทผํ•˜๊ณ  ๋„์›€์ด ๋˜๋Š” ์ƒ๋‹ด์‚ฌ ํ†ค
84
  - ํ•ต์‹ฌ ์ •๋ณด๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌ
85
  - ์ถ”๊ฐ€ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด ์–ธ์ œ๋“  ๋ฌผ์–ด๋ณด๋ผ๊ณ  ์•ˆ๋‚ด
86
  # ์ฐธ๊ณ  ๋ฌธ์„œ ํ™œ์šฉ:
87
  - ๋ฌธ์„œ ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ๊ตฌ์ฒด์ ์œผ๋กœ ์ธ์šฉ
88
+ - ์—ฌ๋Ÿฌ ๋ฌธ์„œ์˜ ์ •๋ณด๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ๋‹ต๋ณ€ ์ž‘์„ฑ
89
  - ์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๋Š” ์ถ”์ธกํ•˜์ง€ ๋ง๊ณ  ์†”์งํ•˜๊ฒŒ ๋ชจ๋ฅธ๋‹ค๊ณ  ๋‹ต๋ณ€"""
90
  )
91
 
 
108
  with gr.Blocks(title="๊ฒฝํฌ๋Œ€ ๋ฏธ๋””์–ดํ•™๊ณผ AI ์ƒ๋‹ด์‚ฌ", theme="soft") as app:
109
  gr.Markdown("# ๐ŸŽฌ ๊ฒฝํฌ๋Œ€ ๋ฏธ๋””์–ดํ•™๊ณผ AI ์ƒ๋‹ด์‚ฌ")
110
  chatbot = gr.Chatbot(type="messages", height=400)
111
+ msg = gr.Textbox(show_label=False, placeholder="์ด ๊ณณ์— ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜์„ธ์š”...")
112
  send = gr.Button("์ „์†ก")
113
 
114
  def chat_fn(user_input, history):
 
116
  # ์ž…๋ ฅ ์ „์ฒ˜๋ฆฌ: ์˜ค์šฉ ๋ฐฉ์ง€
117
  user_input = user_input.replace("์ „๊ณต", "๋ถ„์•ผ").replace("๊ต์ˆ˜", "๊ต์ˆ˜์ง„")
118
  # ๊ต์ˆ˜์ง„ ๊ด€๋ จ ์งˆ๋ฌธ ์ฒ˜๋ฆฌ
119
+ if "๊ต์ˆ˜์ง„" in user_input or "๊ต์ˆ˜" in user_input:
120
+ prof_msg = f"ํ˜„์žฌ ๋ฏธ๋””์–ดํ•™๊ณผ ๊ต์ˆ˜์ง„์€: {', '.join(PROFESSORS)} ์ž…๋‹ˆ๋‹ค."
121
+ history.append({"role": "assistant", "content": prof_msg})
122
+ return history,
123
  # RAG ์ปจํ…์ŠคํŠธ
124
  docs = rag_system.search_similar_docs(user_input)
125
  # Combine existing history (dicts) with new user message