go语言Dify api /Deepseek/接入飞书机器人

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

准备工作

开通了接收消息权限的飞书机器人,例如我希望用户跟飞书机器人私聊,就需要开通这个权限:读取用户发给机器人的单聊消息
准备好飞书机器人的API key 和Secret
deepseek-v3的api key+secret:这里获取 ,一开始有10元的免费额度,趁能充多充点,经常不让充值。
自己部署一下dify,推荐使用docker-compose方式,这个有很多教程就不赘述了

打开飞书开发者后台

  1. 创建企业自用应用,本文以创建好的 dify消息测试为例在这里插入图片描述

  2. 等待企业管理员审核通过后打开应用 添加机器人在这里插入图片描述

  3. 开通应用权限应用和用户权限都需要开 (方便测试我把消息组全部已开通-可能不需要这么多)
    在这里插入图片描述 4. 新建版本发布,初次创建版本需要飞书管理员审批,按确认就好在这里插入图片描述在这里插入图片描述

搭建服务端长链接飞书机器人通过长连接获取用户私聊发的消息

我们使用长连接的方式接收用户消息,需要在飞书开发者后台中配置一下应用,见 配置回调订阅方式 代码如下:

package agent_v1

import (
	"context"
	"encoding/json"
	"errors"
	"fmt"
	lark "github.com/larksuite/oapi-sdk-go/v3"
	larkcore "github.com/larksuite/oapi-sdk-go/v3/core"
	larkevent "github.com/larksuite/oapi-sdk-go/v3/event"
	"github.com/larksuite/oapi-sdk-go/v3/event/dispatcher"
	larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1"
	larkws "github.com/larksuite/oapi-sdk-go/v3/ws"
	"log"
	"regexp"
	"strings"
)

var sent map[string]struct{
   
   } // 这里简单去个重 实际使用要自己再写去重部分
// 飞书消息过来Content字段值是{\"text\":\"早上好~\"}这样的,需要再解析一下
type Text struct {
   
   
	Text string `json:"text"`
}

// 飞书应用信息
var AppID = ""
var AppSecret = ""

// cleanMessage 去除消息中的特殊字符和前缀
func cleanMessage(message string) string {
   
   
	// 使用正则表达式匹配 @xxx 格式的内容
	re := regexp.MustCompile(`@\S+\s*`)
	// 全局替换所有匹配到的 @xxx 格式的内容
	cleanedMessage := re.ReplaceAllString(message, "")
	return strings.TrimSpace(cleanedMessage)
}

// Callback 处理接收到用户消息的事件
func Callback() {
   
   
	sent = make(map[string]struct{
   
   })
	// 注册事件回调,OnP2MessageReceiveV1 为接收消息 v2.0;OnCustomizedEvent 内的 message 为接收消息 v1.0。NewEventDispatcher()里的两个参数都填空字符串
	eventHandler := dispatcher.NewEventDispatcher("", "").
		OnP2ChatAccessEventBotP2pChatEnteredV1(func(ctx context.Context, event *larkim.P2ChatAccessEventBotP2pChatEnteredV1) error {
   
   
			fmt.Printf("[ OnP2ChatAccessEventBotP2pChatEnteredV1 access ], data: %s\n", larkcore.Prettify(event))
			return nil
		}).
		OnP2MessageReceiveV1(func(ctx context.Context, event *larkim.P2MessageReceiveV1) error {
   
   
			msgId := *event.Event.Message.MessageId
			if _, ok := sent[msgId]; ok {
   
   
				return nil
			} else {
   
   
				sent[msgId] = struct{
   
   }{
   
   }
			}
			fmt.Printf("接收飞书消息 data: %s\n", larkcore.Prettify(event))
			fmt.Println("接收飞书内容", *event.Event.Message.Content) // content中就是用户发过来的消息内容
			var text Text
			err := json.Unmarshal([]byte(*event.Event.Message.Content), &text)
			if err != nil {
   
   
				return err
			}
			fmt.Println("飞书内容解析:", text.Text)
			// 这里可以把用户输入发给deepseek或者dify并接收其响应,具体实现后面讲
			/*resp, e := CallDeepSeekAPI(text.Text)
			if e != nil {
				return e
			}*/
			textContent := cleanMessage(text.Text)
			if *event.Event.Message.ChatType == "group" && text.Text == textContent {
   
   
				log.Printf("群里请@对应机器人")
				return errors.New("群里请@对应机器人")
			}
			resp, err := 

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

内容概要:本文详细介绍了某跨境电商平台利用Dify飞书零代码搭建智能电商客服机器人的成功案例。针对高峰时段客服响应延迟、重复问题占比高以及多语言支持不足的问题,文章展示了如何通过飞书机器人作为用户交互入口、Dify AI引擎作为智能问答中枢、Elasticsearch进行商品信息检索、订单数据库实现订单查询、工单系统处理复杂问题等组件构建客服系统。重点描述了飞书机器人Dify电商助手的具体配置步骤,包括飞书开放平台配置、凭证信息获取、Agent应用创建、知识库上传、外部工具连接等。同时,介绍了智能路由配置、多语言支持方案、实战效果对比(如响应时间从32分钟缩短到8.3秒,解决率从56%提升到89%,人力成本从每月$15K降低到$0,支持语言从2种增加到12种),并针对会话状态保持、突发流量处理、数据安全加固等关键问题进行了复盘。最后提出了智能推荐系统、促销活动播报、供应链预警等扩展应用场景。 适合人群:跨境电商从业者、客服管理人员、零代码开发者或希望提高客服效率的企业主。 使用场景及目标:①快速搭建高效智能客服系统,解决客服响应慢、重复问题多的问题;②低成本实现多语言支持,拓展国际市场;③通过智能路由和工单转接,提高问题解决率和服务质量;④利用数据分析持续优化客服表现。 阅读建议:本文提供了详细的配置步骤和技术细节,建议读者在阅读时结合自身业务需求,重点关注配置方法和实际效果对比部分,以便更好地理解和应用此解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值