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