openfree commited on
Commit
6962585
ยท
verified ยท
1 Parent(s): bc6d987

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -7
app.py CHANGED
@@ -103,29 +103,66 @@ def do_web_search(query: str) -> str:
103
  max_results = min(20, len(organic))
104
  limited_organic = organic[:max_results]
105
 
106
- # ๊ฒฐ๊ณผ ํ˜•์‹ ๊ฐ„์†Œํ™” - ์ „์ฒด JSON ๋Œ€์‹  ์ค‘์š” ํ•„๋“œ๋งŒ ํฌํ•จ
107
  summary_lines = []
108
  for idx, item in enumerate(limited_organic, start=1):
109
  title = item.get("title", "No title")
110
  link = item.get("link", "#")
111
  snippet = item.get("snippet", "No description")
 
112
 
113
- # ๊ฐ„์†Œํ™”๋œ ํ˜•์‹
114
  summary_lines.append(
115
- f"Result {idx}:\n"
116
- f"- Title: {title}\n"
117
- f"- Link: {link}\n"
118
- f"- Snippet: {snippet}\n"
119
  )
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  logger.info(f"๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ {len(limited_organic)}๊ฐœ ์ฒ˜๋ฆฌ ์™„๋ฃŒ")
122
- return "\n".join(summary_lines)
123
 
124
  except Exception as e:
125
  logger.error(f"Web search failed: {e}")
126
  return f"Web search failed: {str(e)}"
127
 
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  ##############################################################################
130
  # ๋ชจ๋ธ/ํ”„๋กœ์„ธ์„œ ๋กœ๋”ฉ
131
  ##############################################################################
 
103
  max_results = min(20, len(organic))
104
  limited_organic = organic[:max_results]
105
 
106
+ # ๊ฒฐ๊ณผ ํ˜•์‹ ๊ฐœ์„  - ๋งˆํฌ๋‹ค์šด ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•˜์—ฌ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ
107
  summary_lines = []
108
  for idx, item in enumerate(limited_organic, start=1):
109
  title = item.get("title", "No title")
110
  link = item.get("link", "#")
111
  snippet = item.get("snippet", "No description")
112
+ displayed_link = item.get("displayed_link", link)
113
 
114
+ # ๋งˆํฌ๋‹ค์šด ํ˜•์‹ (๋งํฌ ํด๋ฆญ ๊ฐ€๋Šฅ)
115
  summary_lines.append(
116
+ f"### Result {idx}: {title}\n\n"
117
+ f"{snippet}\n\n"
118
+ f"**์ถœ์ฒ˜**: [{displayed_link}]({link})\n\n"
119
+ f"---\n"
120
  )
121
 
122
+ # ๋ชจ๋ธ์—๊ฒŒ ๋ช…ํ™•ํ•œ ์ง€์นจ ์ถ”๊ฐ€
123
+ instructions = """
124
+ # ์›น ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ
125
+
126
+ ์•„๋ž˜๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•  ๋•Œ ์ด ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜์„ธ์š”:
127
+ 1. ๊ฐ ๊ฒฐ๊ณผ์˜ ์ œ๋ชฉ, ๋‚ด์šฉ, ์ถœ์ฒ˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”
128
+ 2. ๋‹ต๋ณ€์— ๊ด€๋ จ ์ •๋ณด์˜ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ธ์šฉํ•˜์„ธ์š” (์˜ˆ: "X ์ถœ์ฒ˜์— ๋”ฐ๋ฅด๋ฉด...")
129
+ 3. ์‘๋‹ต์— ์‹ค์ œ ์ถœ์ฒ˜ ๋งํฌ๋ฅผ ํฌํ•จํ•˜์„ธ์š”
130
+ 4. ์—ฌ๋Ÿฌ ์ถœ์ฒ˜์˜ ์ •๋ณด๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ๋‹ต๋ณ€ํ•˜์„ธ์š”
131
+
132
+ """
133
+
134
+ search_results = instructions + "\n".join(summary_lines)
135
  logger.info(f"๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ {len(limited_organic)}๊ฐœ ์ฒ˜๋ฆฌ ์™„๋ฃŒ")
136
+ return search_results
137
 
138
  except Exception as e:
139
  logger.error(f"Web search failed: {e}")
140
  return f"Web search failed: {str(e)}"
141
 
142
 
143
+ ##############################################################################
144
+ # ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ์ถ”๊ฐ€ํ•  ๋ถ€๋ถ„ (run ํ•จ์ˆ˜ ์ˆ˜์ •)
145
+ ##############################################################################
146
+
147
+ # run ํ•จ์ˆ˜์—์„œ ์•„๋ž˜ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค:
148
+ """
149
+ if use_web_search:
150
+ user_text = message["text"]
151
+ ws_query = extract_keywords(user_text, top_k=5)
152
+ if ws_query.strip():
153
+ logger.info(f"[Auto WebSearch Keyword] {ws_query!r}")
154
+ ws_result = do_web_search(ws_query)
155
+ combined_system_msg += f"[Search top-20 Full Items Based on user prompt]\n{ws_result}\n\n"
156
+ # ๊ฐ•ํ™”๋œ ์ง€์‹œ์‚ฌํ•ญ ์ถ”๊ฐ€
157
+ combined_system_msg += """
158
+ [์ค‘์š” ์ง€์‹œ์‚ฌํ•ญ]
159
+ 1. ๋‹ต๋ณ€์— ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ ์ฐพ์€ ์ •๋ณด์˜ ์ถœ์ฒ˜๋ฅผ ๋ฐ˜๋“œ์‹œ ์ธ์šฉํ•˜์„ธ์š”.
160
+ 2. ์ถœ์ฒ˜ ์ธ์šฉ ์‹œ "[์ถœ์ฒ˜ ์ œ๋ชฉ](๋งํฌ)" ํ˜•์‹์˜ ๋งˆํฌ๋‹ค์šด ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
161
+ 3. ์—ฌ๋Ÿฌ ์ถœ์ฒ˜์˜ ์ •๋ณด๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ๋‹ต๋ณ€ํ•˜์„ธ์š”.
162
+ 4. ๋‹ต๋ณ€ ๋งˆ์ง€๋ง‰์— "์ฐธ๊ณ  ์ž๋ฃŒ:" ์„น์…˜์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ฌ์šฉํ•œ ์ฃผ์š” ์ถœ์ฒ˜ ๋งํฌ๋ฅผ ๋‚˜์—ดํ•˜์„ธ์š”.
163
+ """
164
+
165
+
166
  ##############################################################################
167
  # ๋ชจ๋ธ/ํ”„๋กœ์„ธ์„œ ๋กœ๋”ฉ
168
  ##############################################################################