Song commited on
Commit
db2fa43
·
1 Parent(s): 25c6441
Files changed (1) hide show
  1. app.py +10 -6
app.py CHANGED
@@ -47,11 +47,11 @@ LLM_MODEL_CONFIG = {
47
  "seed": int(os.getenv("LLM_SEED", 42)),
48
  }
49
 
50
- # 系統提示詞
51
  SYSTEM_PROMPT = """你是一個友好的AI助手,請用簡單、親切的中文回覆用戶的問題。
52
  在回應時,不要使用 Markdown 格式,如粗體、斜體或標題。避免使用 * 號或任何特殊符號來格式化。
53
  使用條列式(如 - 或 1. 2. 3.)來整理內容,讓它適合在 LINE 上閱讀。
54
- 基於以下提供的網路搜尋結果來回答問題,如果結果不相關或不足,請誠實地說不知道,並建議用戶提供更多細節。"""
55
 
56
  # ---------- 記憶體儲存對話歷史 ----------
57
  conversations: Dict[str, List[Dict[str, str]]] = {} # {user_id: messages_list}
@@ -72,21 +72,25 @@ def split_text_for_line(text: str, max_length: int = 4800) -> List[str]:
72
  text = text[split_pos:].lstrip()
73
  return chunks
74
 
75
- # ---------- 網路搜尋函數 ----------
76
  def perform_web_search(query: str, max_results: int = 5) -> str:
77
- """使用 DuckDuckGo 進行網路搜尋,並返回摘要結果。"""
 
78
  try:
79
  with DDGS() as ddgs:
80
  results = [r for r in ddgs.text(query, max_results=max_results)]
81
  if not results:
 
82
  return "沒有找到相關的網路搜尋結果。"
83
 
84
  search_summary = "以下是相關的網路搜尋結果摘要:\n"
85
  for i, result in enumerate(results, 1):
 
86
  search_summary += f"{i}. {result['title']}: {result['body'][:200]}... (來源: {result['href']})\n"
 
87
  return search_summary
88
  except Exception as e:
89
- print(f"Web search error: {e}")
90
  return f"搜尋時發生錯誤:{str(e)}。請稍後再試。"
91
 
92
  # ---------- 聊天處理流程 ----------
@@ -223,4 +227,4 @@ async def health_check():
223
 
224
  if __name__ == "__main__":
225
  port = int(os.getenv("PORT", 7860))
226
- uvicorn.run(app, host="0.0.0.0", port=port)
 
47
  "seed": int(os.getenv("LLM_SEED", 42)),
48
  }
49
 
50
+ # 系統提示詞(修改為將網路搜尋結果視為參考,不必完全依賴)
51
  SYSTEM_PROMPT = """你是一個友好的AI助手,請用簡單、親切的中文回覆用戶的問題。
52
  在回應時,不要使用 Markdown 格式,如粗體、斜體或標題。避免使用 * 號或任何特殊符號來格式化。
53
  使用條列式(如 - 或 1. 2. 3.)來整理內容,讓它適合在 LINE 上閱讀。
54
+ 使用以下提供的網路搜尋結果作為參考來回答問題,但不必完全依賴它們。你可以根據你的知識補充或調整回覆。如果結果不相關或不足,請誠實地說不知道,並建議用戶提供更多細節。"""
55
 
56
  # ---------- 記憶體儲存對話歷史 ----------
57
  conversations: Dict[str, List[Dict[str, str]]] = {} # {user_id: messages_list}
 
72
  text = text[split_pos:].lstrip()
73
  return chunks
74
 
75
+ # ---------- 網路搜尋函數(新增 log/print 檢索過程) ----------
76
  def perform_web_search(query: str, max_results: int = 5) -> str:
77
+ """使用 DuckDuckGo 進行網路搜尋,並返回摘要結果。同時 log/print 檢索過程。"""
78
+ print(f"開始網路搜尋:查詢詞 = '{query}',最大結果數 = {max_results}")
79
  try:
80
  with DDGS() as ddgs:
81
  results = [r for r in ddgs.text(query, max_results=max_results)]
82
  if not results:
83
+ print("搜尋完成:沒有找到相關結果。")
84
  return "沒有找到相關的網路搜尋結果。"
85
 
86
  search_summary = "以下是相關的網路搜尋結果摘要:\n"
87
  for i, result in enumerate(results, 1):
88
+ print(f"結果 {i}: 標題 = '{result['title']}',摘要 = '{result['body'][:200]}...',來源 = '{result['href']}'")
89
  search_summary += f"{i}. {result['title']}: {result['body'][:200]}... (來源: {result['href']})\n"
90
+ print("搜尋完成:總結果數 = {len(results)}")
91
  return search_summary
92
  except Exception as e:
93
+ print(f"網路搜尋錯誤:{e}")
94
  return f"搜尋時發生錯誤:{str(e)}。請稍後再試。"
95
 
96
  # ---------- 聊天處理流程 ----------
 
227
 
228
  if __name__ == "__main__":
229
  port = int(os.getenv("PORT", 7860))
230
+ uvicorn.run(app, host="0.0.0.0", port=port)