不到 100 行代码,让你的飞书/钉钉群秒变 AI 工作站
不到 100 行代码,让你的飞书/钉钉群秒变 AI 工作站
周一早上 9 点,产品经理在群里抛出一个问题:"上周的需求文档在哪个文件夹?"
三小时后,没人回。
与此同时,技术 Leader 正在一字一句地写周报,内容跟上周大同小异,改改数字、换换措辞,40 分钟过去了。隔壁工位的新人第 8 次问同一个问题:"本地环境怎么配?"
这不是段子,这是大多数中国企业团队的真实写照。
而就在你们还在为这些琐事消耗精力的时候,另一些团队的做法是:@ 一下群里的 AI 机器人,10 秒搞定。
今天这篇文章,我要手把手带你把这个"10 秒搞定"的能力,搭进你的飞书或钉钉群里。零基础可上手,核心代码不超过 100 行,一个下午部署完毕。
---
一、为什么你的企业群聊需要一个 AI 机器人?
我们先做一道简单的算术题。
假设你的团队有 10 人,每人每天平均花费:
- 写日报/周报:30 分钟
- 回答重复性问题(环境配置、流程规范、文档位置):20 分钟
- 整理会议纪要:15 分钟
合计:每人每天 65 分钟,10 人团队每天白白消耗 10+ 小时。
这还没算上等待回复的时间成本——一个问题在群里沉 3 小时,背后可能是一个功能延期半天。
引入 AI 机器人之后,一个真实的中型技术团队(约 20 人)在使用 30 天后的数据变化大致如下:
| 场景 | 使用前(人均/天) | 使用后(人均/天) | 节省比例 | | 日报撰写 | 28 分钟 | 8 分钟 | ↓ 71% | | 重复问题响应 | 22 分钟 | 5 分钟 | ↓ 77% | | 会议纪要整理 | 18 分钟 | 4 分钟 | ↓ 78% | | 合计 | 68 分钟 | 17 分钟 | ↓ 75% |人均每天省出约 51 分钟,10 人团队一个月节省的时间,相当于多出了 4 个完整工作日。
这不是 AI 噱头,这是实实在在的时间账。
---
二、为什么选 8848AI API 作为机器人的"大脑"?
在动手之前,我们先把选型问题解决掉,省得后面踩坑。
很多团队第一反应是直接用 OpenAI 官方 API,但实际落地时会遇到三座大山:需要翻墙访问、绑定海外信用卡、一旦网络不稳定机器人就瘫痪。对于企业级应用来说,这些都是不可接受的。
国内大模型 API 是另一个选择,但问题在于:各家接口格式不统一,今天接入了文心,明天想换成通义,要重写一大堆适配代码。
对比下来,[8848AI API](https://api.884819.xyz) 是目前中小团队搭建企业机器人性价比最高的方案:
| 对比维度 | 官方 OpenAI API | 某国内大模型 API | 8848AI API | | 国内直连 | ❌ 需翻墙 | ✅ | ✅ | | 模型丰富度 | 仅 GPT 系列 | 仅自家模型 | GPT-4o / Claude / Gemini 全覆盖 | | 接口兼容性 | 原生 OpenAI 格式 | 私有格式,需适配 | 完全兼容 OpenAI 格式 | | 计费方式 | 绑定海外信用卡 | 预充值包月 | 按量付费,低门槛 | | 注册门槛 | 需海外手机号 | 实名认证 | 简单注册即用 | | 月均成本(1 万次调用) | 约 ¥280+ | 约 ¥150~200 | 约 ¥80~120 |最关键的一点:完全兼容 OpenAI 格式。这意味着你在网上找到的任何 OpenAI 教程、任何开源项目,只需要改一行 base_url,就能直接跑起来。零迁移成本。
如果你认同这个选择,现在可以去 [api.884819.xyz](https://api.884819.xyz) 注册账号、拿到 API Key,下一章我们马上用到。
---
三、手把手搭建飞书 AI 机器人
整体架构很简单,一张图说明白:
用户在飞书群 @机器人
↓
飞书服务器推送事件到你的 Webhook 地址
↓
你的服务器接收消息 → 调用 8848AI API
↓
AI 返回回复内容
↓
通过飞书 API 发送消息回群聊
第一步:在飞书开放平台创建应用
1. 访问 [open.feishu.cn](https://open.feishu.cn),登录后点击「创建企业自建应用」
2. 填写应用名称(比如"团队 AI 助手")和描述,上传一个 icon
3. 进入「权限管理」,开启以下权限:
- im:message(读取消息)
- im:message:send_as_bot(发送消息)
- im:chat(获取群信息)
4. 进入「事件订阅」,添加事件:im.message.receive_v1(接收消息事件)
5. 填写「请求网址」——这是你的 Webhook 地址,格式为 https://你的域名/feishu/webhook
⚠️ 踩坑提醒:飞书会向你的 Webhook 地址发送一个验证请求(包含 challenge 字段),你的服务必须先上线并正确响应,才能保存事件订阅配置。建议先用 [ngrok](https://ngrok.com) 做本地调试,验证通过后再部署到服务器。
第二步:编写核心服务代码
先安装依赖:
pip install flask openai requests
核心代码如下,完整实现消息接收 → AI 处理 → 回复的全链路:
# app.py - 飞书 AI 机器人核心服务
import os
import requests
from flask import Flask, request, jsonify
from openai import OpenAI
app = Flask(__name__)
初始化 8848AI 客户端(兼容 OpenAI 格式,改一行 base_url 即可)
client = OpenAI(
api_key=os.environ.get("BABAAI_API_KEY"), # 从环境变量读取,不要硬编码
base_url="https://api.884819.xyz/v1"
)
FEISHU_APP_ID = os.environ.get("FEISHU_APP_ID")
FEISHU_APP_SECRET = os.environ.get("FEISHU_APP_SECRET")
def get_feishu_token():
"""获取飞书访问 Token"""
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
resp = requests.post(url, json={
"app_id": FEISHU_APP_ID,
"app_secret": FEISHU_APP_SECRET
})
return resp.json().get("tenant_access_token")
def send_feishu_message(chat_id, content):
"""向飞书群发送文本消息"""
token = get_feishu_token()
url = "https://open.feishu.cn/open-apis/im/v1/messages"
headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
payload = {
"receive_id": chat_id,
"receive_id_type": "chat_id",
"msg_type": "text",
"content": f'{{"text": "{content}"}}'
}
requests.post(url, headers=headers, json=payload)
def chat_with_ai(user_message, system_prompt="你是一个专业的企业AI助手,回答简洁准确。"):
"""调用 8848AI API 获取回复"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_message}
]
)
return response.choices[0].message.content
@app.route("/feishu/webhook", methods=["POST"])
def feishu_callback():
data = request.json
# 处理飞书 URL 验证挑战(首次配置时必须响应)
if "challenge" in data:
return jsonify({"challenge": data["challenge"]})
# 提取消息内容
event = data.get("event", {})
message = event.get("message", {})
msg_type = message.get("message_type", "")
# 只处理文本消息
if msg_type != "text":
return jsonify({"code": 0})
import json
content = json.loads(message.get("content", "{}"))
user_text = content.get("text", "").strip()
# 去掉 @机器人 的前缀
if "@_user_1" in user_text:
user_text = user_text.replace("@_user_1", "").strip()
if not user_text:
return jsonify({"code": 0})
# 调用 AI 并回复
ai_reply = chat_with_ai(user_text)
chat_id = message.get("chat_id")
send_feishu_message(chat_id, ai_reply)
return jsonify({"code": 0})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
⚠️ 踩坑提醒:飞书的消息事件可能重复推送,生产环境建议用message_id做去重处理,避免机器人回复两遍。可以用 Redis 缓存最近处理过的message_id,TTL 设 60 秒即可。
第三步:部署上线
最简单的方案是部署到国内云服务器(阿里云/腾讯云轻量应用服务器,最低 24 元/月):
# 设置环境变量
export BABAAI_API_KEY="your-8848ai-key"
export FEISHU_APP_ID="your-app-id"
export FEISHU_APP_SECRET="your-app-secret"
用 gunicorn 启动(生产环境推荐)
pip install gunicorn
gunicorn -w 2 -b 0.0.0.0:8080 app:app
配合 Nginx 反代 + SSL 证书,你的飞书机器人就正式 7×24 上线了。
当你在飞书群 @ 机器人,看到它第一次回复你的那一刻——这是整个搭建过程最有成就感的时刻。---
四、钉钉机器人同步适配
钉钉机器人的接入逻辑与飞书大体相似,但有几个关键差异需要注意:
最重要的区别:钉钉有签名验证机制。 每次回调请求都会携带timestamp 和 sign 参数,你的服务器必须验证签名,否则请求会被拒绝。
# 钉钉签名验证(必须实现,否则无法接收消息)
import hmac
import hashlib
import base64
def verify_dingtalk_sign(timestamp: str, sign: str, app_secret: str) -> bool:
"""验证钉钉回调签名"""
string_to_sign = f"{timestamp}\n{app_secret}"
hmac_code = hmac.new(
app_secret.encode("utf-8"),
string_to_sign.encode("utf-8"),
digestmod=hashlib.sha256
).digest()
expected_sign = base64.b64encode(hmac_code).decode()
return expected_sign == sign
@app.route("/dingtalk/webhook", methods=["POST"])
def dingtalk_callback():
# 验证签名
timestamp = request.headers.get("timestamp", "")
sign = request.headers.get("sign", "")
if not verify_dingtalk_sign(timestamp, sign, os.environ.get("DINGTALK_APP_SECRET")):
return jsonify({"errcode": 403, "errmsg": "签名验证失败"})
data = request.json
user_text = data.get("text", {}).get("content", "").strip()
sender_id = data.get("senderStaffId", "")
# ✅ 这里完全复用同一个 chat_with_ai 函数,8848AI 层代码零改动
ai_reply = chat_with_ai(user_text)
# 钉钉回复格式(直接 return JSON,无需主动调用 API)
return jsonify({
"msgtype": "text",
"text": {"content": ai_reply}
})
注意到了吗?chat_with_ai 函数一行代码都不用改。飞书和钉钉的差异只在"平台适配层"(签名验证、消息格式解析、回复方式),而 8848AI API 的调用层完全通用。这就是选择兼容 OpenAI 格式 API 的价值所在。
---
五、从"能用"到"好用"——5 个企业级进阶场景
机器人上线了,但如果只是个"会聊天的 AI",价值还远没有释放。下面给你 5 个拿来即用的场景模板。
场景 1:技术问题即问即答(含角色设定)
你是 [公司名] 的技术专家助手,精通 Python/Java/Go,
熟悉我们的技术栈(Kubernetes、MySQL、Redis)。
回答技术问题时:
1. 先给出直接可用的解决方案
2. 简要解释原因(不超过 3 句话)
3. 如果涉及代码,给出可运行的示例
4. 末尾提示可能的注意事项
场景 2:每日定时日报生成
用 cron 定时任务在每天 17:50 触发,让机器人主动在群里发送日报模板填写提醒,或者收集当天的 Git commit 记录自动生成技术日报摘要。
根据以下今日工作内容,生成一份简洁的团队日报:
[工作内容列表]
要求:
- 按"完成事项 / 进行中 / 待解决问题"三段式结构
- 语言简洁,每条不超过 20 字
- 标注优先级(🔴高 / 🟡中 / 🟢低)
场景 3:会议纪要自动提炼
把会议录音转写文本(可用飞书妙记或钉钉会议的自动转写功能)丢给机器人:
以下是今天会议的转写文本,请提炼:
1. 核心决策(3-5 条)
2. 待办事项(格式:事项 | 负责人 | 截止日期)
3. 遗留问题(需要下次会议跟进的)
转写文本:[粘贴内容]
场景 4:新人入职 FAQ 自动应答
在 system prompt 里塞入你们的常见问题文档(环境配置、请假流程、报销规则),机器人就能 24 小时回答新人问题,HR 和 Leader 从此解放。
场景 5:代码 Review 辅助
请对以下代码进行 Review,重点关注:
1. 潜在的 Bug 或边界条件遗漏
2. 性能问题(时间复杂度、数据库查询等)
3. 代码可读性和命名规范
4. 安全性风险(SQL 注入、XSS 等)
给出具体的修改建议,并说明原因。
[粘贴代码]
这里有个小技巧:不同场景用不同模型效果更好。长文档摘要用 Claude(上下文窗口大)、代码分析用 GPT-4o、快速问答用 GPT-4o-mini(速度快成本低)。8848AI 的好处就在这里:同一个 Key、同一个接口,换个 model 参数就行。去 [api.884819.xyz](https://api.884819.xyz) 的模型列表页看看,也许会发现更多玩法。
---
六、写在最后
当别的团队还在开会讨论"要不要引入 AI 工具"的时候,你的团队已经把 AI 机器人跑在群里了。
这不是什么高深的技术,核心代码不超过 100 行,一个下午就能部署完毕。真正的门槛从来不是技术,而是迈出第一步的决心。
现在,你已经有了一个能回答问题、写日报、整理会议纪要的 AI 团队成员。但它还有两个明显的短板:记不住上下文(每次对话都是"初次见面"),不了解你们的业务(它知道全世界的知识,却不知道你们公司的产品文档和内部规范)。
---
下一篇预告:《给你的飞书/钉钉机器人装上"记忆"和"知识库"——基于 8848AI API 的企业 RAG 实战》
>
我们会接入向量数据库,让机器人能"记住"每个同事的对话历史,还能基于你们的内部文档(产品 PRD、技术规范、运营手册)精准回答业务问题。一个真正"懂你们公司"的 AI 助手,才是终极形态。关注不迷路 👀
---
💬 你的团队用飞书还是钉钉?你最希望 AI 机器人帮你自动化哪个工作场景?评论区告诉我,点赞最高的场景,我在下一篇里优先写实现方案。本文由8848AI原创,转载请注明出处。