Teams + DeepSeek 智能卡片:讓答案動起來,職場效率直接拉滿!

· DeepSeek 國際應用

引言: Teams + DeepSeek,點樣升級你嘅工作效率?

喺香港,Teams 基本上係大家日常協作必備工具啦。但係,當你需要即時搵資料、解答同事問題,或者處理客查詢嘅時候,你係咪仲要喺唔同嘅應用程式之間切換,或者喺一大堆文件中苦苦搜尋呢?如果可以將人工智能嘅力量直接帶入 Teams,工作效率咪即刻升級幾級囉!

DeepSeek AI 嘅 NLP 能力超勁,出答案又快又準。想像一下,你喺 Teams 入面問個問題,DeepSeek 即時就俾到你智能答案,仲要以好靚仔、好有條理嘅 Adaptive Card 形式展示出嚟,有齊你想要嘅資訊,甚至仲可以有埋互動按鈕。呢種體驗,絕對比純文字嘅答案更勝一籌,既美觀又實用,仲可以幫你省下唔少時間,將更多精力放喺重要嘅工作上。我測試時用嘅 DeepSeek API 係 2024 年 5 月更新嘅版本,Teams 嘅功能亦都係最新,確保呢個教學適用於最新嘅平台環境。

目錄

  • 點解要整合 DeepSeek 同 Teams?
  • 前期準備:攞匙、開通道
  • 第一步:DeepSeek API 嘅呼叫與結果處理
  • 第二步:Adaptive Card 模板設計
  • 第三步:將智能答案推送至 Teams
  • 常見問題
  • 總結

點解要整合 DeepSeek 同 Teams?

我寫技術博客咁耐,接觸過好多香港中小企,佢哋資源有限但又想衝高效率,呢個痛點我好明。喺日常工作中,好多時都需要即時解答查詢、提供指引,或者整理會議紀要。如果事事都要人手處理,或者要靠同事之間口耳相傳,效率自然會大打折扣。而 DeepSeek 呢個智能助手一出,簡直就係救星,資訊處理速度即刻飛起。

Adaptive Card 勁嘅地方係,佢唔止係文字,仲可以加按鈕、圖片甚至輸入框,令資訊展示超多元化。將 DeepSeek 嘅智能答案包裝成 Adaptive Card,喺 Teams 入面睇落就專業得多,條理又清晰。用戶仲可以直接喺卡片度搞互動,好似撳掣睇詳情,或者俾個Like咁,用戶體驗直接滿分!

前期準備:攞匙、開通道

要實現呢個整合,我哋需要準備幾樣嘢,其實步驟簡單到爆,跟我做就OK!

  1. DeepSeek API Key:首先,你需要到 DeepSeek 嘅開發者平台申請一個 API Key。呢條 Key 就係你呼叫 DeepSeek 嘅身份證,千祈要收好,唔好俾人知!未有嘅,嗱嗱聲去申請返條啦!
  2. Teams Webhook Connector:喺你希望接收智能答案嘅 Teams 頻道入面,設定一個「連接器」(Connector)。選擇「Incoming Webhook」,設定一個名稱(例如「DeepSeek 智能助手」),然後你會得到一個 Webhook URL。呢條 URL 就係你未來 Adaptive Card 訊息嘅發送目標。之後 DeepSeek 嘅答案,就係靠佢推送返 Teams 㗎啦。
  3. 一個簡單嘅中間層:其實你直接喺任何地方呼叫 DeepSeek API 同推送 Adaptive Card 都得,不過為咗方便管理同搞清楚邏輯,通常我哋會整個輕量級嘅中間層,好似 Azure Function、AWS Lambda,或者公司網絡入面一部仔細細嘅伺服器嚟跑程式碼。我個人覺得用 Azure Function 呢類無伺服器 (Serverless) 服務最方便,因為中小企唔使自己管理伺服器,成本亦相對較低。

AI 智能系統流程圖與數據分析

第一步:DeepSeek API 嘅呼叫與結果處理

呢步超關鍵!我哋要寫 Code 去 Call DeepSeek API,再從佢嘅回覆度執番啲有用資訊出嚟。用 Python 嚟示範,因為佢語法夠簡潔,新手都好易上手。假設你嘅中間層收到一個查詢(例如:「香港中小企申請政府資助有咩要注意?」),你嘅程式碼就會咁樣做:

import requests
import json

DEEPSEEK_API_KEY = "你嘅 DeepSeek API Key"
DEEPSEEK_API_URL = "https://api.deepseek.com/chat/completions"

def get_deepseek_answer(question):
    headers = {
        "Authorization": f"Bearer {DEEPSEEK_API_KEY}",
        "Content-Type": "application/json"
    }
    data = {
        "model": "deepseek-coder", # 你可以選擇 deepseek-chat 或其他模型
        "messages": [
            {"role": "system", "content": "你是一個專業的商業顧問,專門解答香港中小企的相關問題。"},
            {"role": "user", "content": question}
        ],
        "temperature": 0.7 # 控制答案的創意程度
    }
    
    try:
        response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data, timeout=30)
        response.raise_for_status() # 如果響應狀態碼唔係 200,就會拋出異常
        
        response_json = response.json()
        if 'choices' in response_json and len(response_json['choices']) > 0:
            answer = response_json['choices'][0]['message']['content']
            return answer
        else:
            return "DeepSeek 未能提供有效答案。"
    except requests.exceptions.RequestException as e:
        print(f"呼叫 DeepSeek API 時發生錯誤: {e}")
        return f"Sorry,網絡或 API 發生問題,請稍後再試。錯誤:{e}"

# 測試:
# query = "香港中小企申請政府資助有咩要注意?"
# deepseek_response = get_deepseek_answer(query)
# print(deepseek_response)

呢段 Code 就係將你條問題掟俾 DeepSeek,再從 DeepSeek 個 JSON 回覆度,拎返我哋想要嘅答案文本 (response.json()['choices'][0]['message']['content'])。呢個 answer 變數,就係我哋之後 Adaptive Card 嘅靈魂所在啦!

第二步:Adaptive Card 模板設計

Adaptive Card 最殺食嘅地方,就係佢夠晒彈性!想喺 Teams 睇落夠靚仔又實用?我哋需要設計一個 Adaptive Card 嘅 JSON 模板。如果你對 JSON 唔熟悉都唔緊要,Adaptive Card 官方提供咗一個非常好用嘅工具——Adaptive Card Designer。我上次幫客戶做提示詞優化嗰陣,就係用佢嚟快速 prototyping 視覺效果,可以拖拖拉拉就整到個卡片出嚟,好方便!

喺 Designer 度,你可以隨心所欲咁加文字塊(TextBlock)、圖片(Image)、按鈕(Action.OpenUrl)等等。以下係一個簡單嘅模板範例,可以顯示用戶嘅問題同 DeepSeek 嘅答案:

{
  "type": "AdaptiveCard",
  "$schema": "http://adaptivecards.io/schemas/adaptiveCard.json",
  "version": "1.5",
  "body": [
    {
      "type": "TextBlock",
      "text": "📝 **你的查詢:**",
      "weight": "Bolder",
      "size": "Medium",
      "color": "Accent"
    },
    {
      "type": "TextBlock",
      "text": "",
      "wrap": true,
      "spacing": "Small"
    },
    {
      "type": "FactSet",
      "facts": [
        {
          "title": "模型:",
          "value": "DeepSeek-Coder v2024.05"
        }
      ],
      "spacing": "Medium"
    },
    {
      "type": "TextBlock",
      "text": "✨ **DeepSeek 智能回答:**",
      "weight": "Bolder",
      "size": "Medium",
      "color": "Good",
      "spacing": "Medium"
    },\n    {
      "type": "TextBlock",
      "text": "",
      "wrap": true,
      "separator": true,
      "spacing": "Small"
    },
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.OpenUrl",
          "title": "查閱 DeepSeek 更多資訊",
          "url": "https://www.deepseek.com"
        },
        {
          "type": "Action.OpenUrl",
          "title": "提交意見反饋",
          "url": "https://forms.office.com/r/YOUR_FEEDBACK_FORM_ID"
        }
      ]
    }
  ]
}

睇住 { {question} }{ {deepseek_answer} } 呢啲 Placeholder 啦!我哋遲啲會用真實數據填滿佢哋,砌出一個完整嘅 Adaptive Card payload。

第三步:將智能答案推送至 Teams

搞掂晒 DeepSeek 攞答案、Adaptive Card 砌 JSON 之後,最後就係將佢 send 去 Teams 啦!呢個動作,都係靠向之前設好嘅 Teams Webhook URL 發個 HTTP POST 請求就搞掂。一樣用 Python 嚟睇下點搞:

import requests
import json

TEAMS_WEBHOOK_URL = "你嘅 Teams Webhook URL"

def send_adaptive_card_to_teams(question, deepseek_answer):
    # Adaptive Card 模板,替換 placeholder
    adaptive_card_content = {
      "type": "AdaptiveCard",
      "$schema": "http://adaptivecards.io/schemas/adaptiveCard.json",
      "version": "1.5",
      "body": [
        {
          "type": "TextBlock",
          "text": "📝 **你的查詢:**",
          "weight": "Bolder",
          "size": "Medium",
          "color": "Accent"
        },
        {
          "type": "TextBlock",
          "text": question, # 替換為實際問題
          "wrap": true,
          "spacing": "Small"
        },
        {
          "type": "FactSet",
          "facts": [
            {
              "title": "模型:",
              "value": "DeepSeek-Coder v2024.05"
            }
          ],
          "spacing": "Medium"
        },
        {
          "type": "TextBlock",
          "text": "✨ **DeepSeek 智能回答:**",
          "weight": "Bolder",
          "size": "Medium",
          "color": "Good",
          "spacing": "Medium"
        },
        {
          "type": "TextBlock",
          "text": deepseek_answer, # 替換為 DeepSeek 答案
          "wrap": true,
          "separator": true,
          "spacing": "Small"
        },
        {
          "type": "ActionSet",
          "actions": [
            {
              "type": "Action.OpenUrl",
              "title": "查閱 DeepSeek 更多資訊",
              "url": "https://www.deepseek.com"
            },
            {
              "type": "Action.OpenUrl",
              "title": "提交意見反饋",
              "url": "https://forms.office.com/r/YOUR_FEEDBACK_FORM_ID"
            }
          ]
        }
      ]
    }
    
    # Teams Webhook 需要嘅完整 payload 結構
    teams_payload = {
        "type": "message",
        "attachments": [
            {
                "contentType": "application/vnd.microsoft.card.adaptive",
                "contentUrl": None,
                "content": adaptive_card_content
            }
        ]
    }
    
    try:
        response = requests.post(TEAMS_WEBHOOK_URL, headers={"Content-Type": "application/json"}, data=json.dumps(teams_payload), timeout=10)
        response.raise_for_status() # 檢查 HTTP 請求是否成功
        if response.status_code == 200:
            print("Adaptive Card 成功發送到 Teams!")
            return True
        else:
            print(f"發送失敗: {response.status_code}, {response.text}")
            return False
    except requests.exceptions.RequestException as e:
        print(f"發送 Adaptive Card 到 Teams 時發生錯誤: {e}")
        return False

# 將上述 DeepSeek 答案同問題傳入此函數即可發送
# 例如:
# question_example = "香港政府有咩新科技資助計劃?"
# deepseek_answer_example = get_deepseek_answer(question_example)
# send_adaptive_card_to_teams(question_example, deepseek_answer_example)

呢段 Code 就係將填晒數據嘅 Adaptive Card JSON,當做個附件(attachment)掟俾 Teams Webhook。如果順利,你就會喺指定嘅 Teams 頻道見到張靚爆嘅 Adaptive Card,上面就係 DeepSeek 嘅智能答案啦!上星期我幫個中小企客仔搞部署,用咗呢個方案,個反應真係超好,佢哋啲同事都話搵資料快咗勁多!

企業級人工智能解決方案介面預覽

常見問題

Q1: DeepSeek API 有冇使用限制?會唔會好貴?

A1: 其實大部分 AI API 都有『限速』(rate limit) 同埋『限字數』(token limit)。最好係自己上 DeepSeek 官網睇清楚佢哋嘅具體政策同點收費。我通常都會提中小企,喺大規模跑之前,一定要試清楚個流程,仲要 monitor 住用量,唔好爆預算呀嘛!通常都係用幾多俾幾多,細細哋用初期都唔會好肉赤。

Q2: Adaptive Card 顯示唔到 DeepSeek 嘅長篇答案點算?

A2: Adaptive Card 雖然好彈性,但都唔係萬能㗎嘛。如果 DeepSeek 個答案太長,張卡可能會Show唔晒,或者排到密密麻麻。你可以考慮喺卡片度只係Show個答案精華,再加個連結(Action.OpenUrl)跳去睇完整版(好似你公司內部知識庫或者 DeepSeek 嘅詳細頁面咁),又或者用多幾個 TextBlock 分段Show,咁樣會易讀好多。

Q3: 呢個方案安唔安全?我哋公司資料會唔會洩漏?

A3: DeepSeek 處理數據梗係有佢嘅私隱政策啦,建議你認真睇下。Teams Webhook 雖然好方便,但畢竟係條公開 URL 嚟,只要知道條 URL 嘅人都可以發訊息,冇雙向溝通同身份驗證功能㗎。所以,唔好用呢條路傳公司嘅絕密資料!如果真係要超高安全,或者想雙向互動,咁就要考慮搞返個專屬嘅 Teams Bot,佢哋嘅身份驗證同授權機制會完善好多。

總結

將 DeepSeek 嘅智能同 Microsoft Teams 嘅協作功能一 fusion,再用 Adaptive Card 靚靚仔仔咁Show答案,絕對係大大提升團隊效率嘅殺手鐧!無論係秒速搵料、答客仔問題,定係優化內部知識分享,呢個方案都能為你團隊帶來更智能、更順暢嘅體驗。真係試過返唔到轉頭!希望呢篇文可以幫到大家,大膽踏出第一步,玩盡 AI 應用嘅可能性,等科技真係幫到你手,做嘢事半功倍!

最新教程

查看全部文章 »