linebot_pydantic_fastapi / BUSINESS_QUERY_GUIDE.md
mickeywu520's picture
first commit
cd9bca9
|
raw
history blame
5.12 kB

業務查詢系統使用指南

概述

本系統為您的 LINE 官方帳號提供了智能業務查詢功能,用戶可以透過自然語言詢問商品、庫存、訂單等業務資訊。系統整合了 Pydantic AI 進行語意分析,並提供友善的中文回應。

系統架構

LINE 用戶訊息 → LINE Bot Service → Business Query Service → NLP Service + Database Service → 回應用戶

核心組件

  1. NLP Service (backend/services/nlp_service.py)

    • 自然語言處理和意圖識別
    • 實體提取和信心度計算
    • 支援業務相關的查詢模式
  2. Database Service (backend/services/database_service.py)

    • 資料庫查詢操作
    • 業務專用查詢方法
    • 支援商品、庫存、訂單等查詢
  3. Business Query Service (backend/services/business_query_service.py)

    • 整合 NLP 和資料庫服務
    • 統一的查詢處理入口
    • 格式化回應訊息
  4. LINE Bot Service (backend/services/line_bot_service.py)

    • 處理 LINE 平台的訊息
    • 用戶管理和對話流程
    • 快速回覆按鈕生成

支援的查詢類型

1. 商品查詢

用戶可以這樣問:

  • "查詢商品 iPhone"
  • "有什麼筆記型電腦"
  • "商品價格查詢"
  • "找找看有沒有滑鼠"

系統回應範例:

找到商品:
名稱:iPhone 14 Pro
描述:最新款智慧型手機
價格:$35,900
類別:手機

2. 庫存查詢

用戶可以這樣問:

  • "庫存查詢 iPhone"
  • "筆記型電腦還有多少"
  • "查詢存貨狀況"
  • "iPhone 的庫存"

系統回應範例:

庫存資訊:
商品:iPhone 14 Pro
目前庫存:25 件
類別:手機
價格:$35,900

3. 訂單查詢

用戶可以這樣問:

  • "我的訂單"
  • "查詢訂單狀態"
  • "訂單編號 ORD001"
  • "購買記錄"

系統回應範例:

找到 3 筆訂單:
1. ORD001 - 已出貨 - $15,000
2. ORD002 - 處理中 - $8,500
3. ORD003 - 已完成 - $12,300

4. 低庫存警告

用戶可以這樣問:

  • "低庫存商品"
  • "缺貨商品查詢"
  • "庫存不足的商品"

系統回應範例:

⚠️ 發現 3 個低庫存商品:
1. iPhone 13 - 剩餘:5 件
2. MacBook Air - 剩餘:2 件
3. AirPods Pro - 剩餘:8 件

5. 業務統計

用戶可以這樣問:

  • "業務摘要"
  • "統計報表"
  • "總計資料"
  • "業務狀況"

系統回應範例:

📊 業務摘要:
商品總數:156 個
訂單總數:89 筆
用戶總數:45 人
低庫存商品:3 個
統計時間:2024-01-15T10:30:00

特殊指令

幫助指令

  • help, 幫助, 說明, 指令

選單指令

  • menu, 選單, 功能

快速開始

1. 測試業務查詢功能

python tmp_rovodev_test_business_query.py

2. 測試 LINE Bot 整合

python tmp_rovodev_test_line_integration.py

3. 在您的應用中使用

from backend.services.line_bot_service import LineBotService

# 初始化服務
line_service = LineBotService()

# 處理用戶訊息
response = line_service.handle_text_message(
    user_id="U1234567890",
    message_text="查詢商品 iPhone",
    display_name="張小明"
)

print(response['text'])  # 系統回應

自訂擴展

1. 新增查詢類型

nlp_service.py 中新增意圖模式:

self.business_intent_patterns = {
    # 現有模式...
    "new_query_type": [
        r"新查詢.*模式",
        r"特殊.*查詢"
    ]
}

database_service.py 中新增對應方法:

def new_query_method(self, param1: str = None) -> DatabaseResult:
    """新的查詢方法"""
    # 實作查詢邏輯
    pass

2. 自訂回應格式

nlp_service.py 中修改格式化方法:

def _format_custom_response(self, data: List[Dict[str, Any]]) -> str:
    """自訂回應格式"""
    # 實作自訂格式
    pass

3. 整合其他資料源

您可以修改 database_service.py 來連接其他資料庫或 API:

def search_external_data(self, query: str) -> DatabaseResult:
    """查詢外部資料源"""
    # 連接外部 API 或資料庫
    pass

注意事項

  1. 資料庫結構: 目前的實作基於現有的 Product, Order, User 模型。如果您的資料庫結構不同,請相應調整查詢方法。

  2. 權限控制: 系統目前允許所有查詢。在生產環境中,建議實作適當的權限控制。

  3. 效能考量: 對於大量資料,建議加入分頁和快取機制。

  4. 錯誤處理: 系統已包含基本的錯誤處理,但建議根據實際需求進一步完善。

參考資料

  • another_proj_schemas.py: 包含完整的業務模型定義
  • backend/database/models.py: 資料庫模型定義
  • backend/models/schemas.py: API 回應模型定義

技術支援

如需技術支援或功能擴展,請參考:

  1. 測試腳本中的使用範例
  2. 各服務類別的文檔字串
  3. 錯誤日誌輸出

注意: 這是一個基礎實作,您可以根據實際業務需求進行擴展和優化。