JasonFinley0821 commited on
Commit
6a8fc80
·
1 Parent(s): c820ac8

feat : upgrade sys prompt and keyword

Browse files
Files changed (1) hide show
  1. services/agents.py +41 -24
services/agents.py CHANGED
@@ -226,11 +226,20 @@ def deblur_image_from_url(
226
  def classify_intent(user_input: str) -> str:
227
  """
228
  判斷使用者輸入意圖:
229
- - "deblur" -> 去模糊圖片
230
- - "qa" -> 一般問題或分析圖片
231
  """
232
- deblur_keywords = ["去模糊", "清晰", "修復", "模糊", "deblur"]
233
- if any(k in user_input.lower() for k in deblur_keywords):
 
 
 
 
 
 
 
 
 
234
  return "deblur"
235
  else:
236
  return "qa"
@@ -256,26 +265,34 @@ llm = ChatGoogleGenerativeAI(
256
 
257
  # ✅ 建立 Prompt (新版語法)
258
  sys_prompt = """
259
- 你是一個強大的圖像生成、圖像去模糊與問答助理,可以根據用戶的使用提供的工具。
260
- 1. classify_intent(user_input) -> 判斷使用者意圖
261
- 2. deblur_image_from_url(file_url, user_text) -> 去模糊圖片
262
- 3. analyze_image_with_text(image_path, user_text) -> 分析圖片
263
- 4. generate_and_upload_image(prompt) -> 生成圖片
264
-
265
- 流程:
266
- - 先呼叫 classify_intent 判斷使用者意圖
267
- - 若返回 'deblur',則使用 deblur_image_from_url
268
- - 若返回 'qa',則使用 analyze_image_with_text 或其他工具
269
-
270
- 當輸入文字明顯與圖片去模糊相關,請使用 deblur_image_from_url。
271
- 當輸入是問題或文字描述,請使用 analyze_image_with_text
272
- ### 核心輸出規範
273
- * **結果呈現**:當你執行以下任一圖像處理工具成功後,你最終的回答 output **必須包含該 URL 的完整資訊**:
274
- * `generate_and_upload_image`
275
- * `deblur_image_from_url` (或其他任何產生圖像輸出的工具)
276
-
277
- * **錯誤處理**:果工具有產錯誤訊息,請解讀錯誤並以自然語言回應給用戶。
278
- """
 
 
 
 
 
 
 
 
279
 
280
  # --- 4. 建立代理人與執行器 ---
281
  # 建立工具調用代理人 (Tool Calling Agent)
 
226
  def classify_intent(user_input: str) -> str:
227
  """
228
  判斷使用者輸入意圖:
229
+ - "deblur" -> 去模糊 / 修復 / 影像清晰化
230
+ - "qa" -> 一般問題或圖片分析
231
  """
232
+ deblur_keywords = [
233
+ # 中文
234
+ "去模糊", "清晰", "清楚", "修復", "模糊", "變清楚", "提高清晰度",
235
+ "還原", "去噪", "降噪", "去霧", "增強", "超解析", "超分辨",
236
+ # 英文/拼音
237
+ "deblur", "restore", "restoration", "denoise", "noise", "enhance",
238
+ "enhancement", "super resolution", "sr", "defog", "dehaze",
239
+ "sharpen", "blurry", "blurred", "fix blur"
240
+ ]
241
+ text = user_input.lower()
242
+ if any(k in text for k in deblur_keywords):
243
  return "deblur"
244
  else:
245
  return "qa"
 
265
 
266
  # ✅ 建立 Prompt (新版語法)
267
  sys_prompt = """
268
+ 你是一個圖像生成、去模糊與圖片問答助理,請依流程使用工具。
269
+
270
+ 【可用工具】
271
+ 1. classify_intent(user_input) 回傳 "deblur" 或 "qa"
272
+ 2. deblur_image_from_url(file_url, user_text) 圖片去模糊/修復
273
+ 3. analyze_image_with_text(image_path, user_text) → 圖片理解與問答
274
+ 4. generate_and_upload_image(prompt) → 生成圖像
275
+
276
+ 【流程】
277
+ - 先呼叫 classify_intent 判斷意圖
278
+ - 若為 "deblur" → 呼叫 deblur_image_from_url
279
+ - 若為 "qa":
280
+ - 若與圖片內容有關 → analyze_image_with_text
281
+ - 若需生成新圖 → generate_and_upload_image
282
+
283
+ 【回覆規則】
284
+ - 工具成功輸出圖片 → 回覆必須包含:
285
+ - 圖片完整 URL
286
+ - 簡要說明(:已完成去模糊/成圖片)
287
+ - 若工具失敗 → 用自然語言說明錯誤,不輸出技術錯誤碼或 traceback
288
+
289
+ 【判斷原則】
290
+ - 有「去模糊、清晰、修復」等語意 → deblur
291
+ - 有提問或描述圖片 → qa
292
+ - 有「生成、畫、幫我做一張圖」→ generate_and_upload_image
293
+
294
+ 請嚴格遵循流程,不要跳步。
295
+ """
296
 
297
  # --- 4. 建立代理人與執行器 ---
298
  # 建立工具調用代理人 (Tool Calling Agent)