dify-spring-boot-starter
  • 介绍
  • 快速开始
  • 安装
  • 配置
  • 客户端构建器
  • 功能

    • Chat API
    • Workflow API
    • Dataset API
    • Server API
  • 事件

    • 介绍
    • 聊天事件
  • 使用配置
  • 自定义配置
  • v1.x-SNAPSHOT
  • v0.x
  • 更新日志
  • 简体中文
  • English
GitHub
  • 介绍
  • 快速开始
  • 安装
  • 配置
  • 客户端构建器
  • 功能

    • Chat API
    • Workflow API
    • Dataset API
    • Server API
  • 事件

    • 介绍
    • 聊天事件
  • 使用配置
  • 自定义配置
  • v1.x-SNAPSHOT
  • v0.x
  • 更新日志
  • 简体中文
  • English
GitHub
  • 指南

    • 介绍
    • 快速开始
    • 安装
    • 配置
    • 客户端构建器
  • 功能

    • Chat API
    • Workflow API
    • Dataset API
    • Server API
  • 事件

    • 介绍
    • 聊天事件

使用方式

使用spring扫描实例, 实现PipelineProcess接口,指定泛型为ChatMessagePipelineModel。

目前只有调用sendChatMessageStream才会触发相应聊天事件。

@Slf4j
@Component
public class ChatInterceptor implements PipelineProcess<ChatMessagePipelineModel> {

    /**
     * 处理
     *
     * @param context 内容
     */
    @Override
    public void process(PipelineContext<ChatMessagePipelineModel> context) {
        log.debug("ChatInterceptor context:{}", context);
    }
}

自定义过滤

重写support方法,实现自定义过滤逻辑


@Slf4j
@Component
public class ChatInterceptor implements PipelineProcess<ChatMessagePipelineModel> {

    /**
     * 是否支持
     *
     * @param context 内容
     * @return 是否支持 true 支持 false 不支持
     */
    @Override
    public boolean support(PipelineContext<ChatMessagePipelineModel> context) {
        return "message_end".equals(context.getModel().getEvent());
    }

    /**
     * 处理
     *
     * @param context 内容
     */
    @Override
    public void process(PipelineContext<ChatMessagePipelineModel> context) {
        log.debug("ChatInterceptor context:{}", context);
    }
}

自定义执行顺序

重写order方法,返回排序值。越小越先执行。


@Slf4j
@Component
public class ChatInterceptor implements PipelineProcess<ChatMessagePipelineModel> {

    /**
     * 获取排序,越小越靠前
     *
     * @return 排序
     */
    @Override
    public Long order() {
        return 233L;
    }

    /**
     * 是否支持
     *
     * @param context 内容
     * @return 是否支持 true 支持 false 不支持
     */
    @Override
    public boolean support(PipelineContext<ChatMessagePipelineModel> context) {
        return "message_end".equals(context.getModel().getEvent());
    }

    /**
     * 处理
     *
     * @param context 内容
     */
    @Override
    public void process(PipelineContext<ChatMessagePipelineModel> context) {
        log.debug("ChatInterceptor context:{}", context);
    }
}
在 GitHub 上编辑此页
上次更新: 2025/8/26 05:42
Prev
介绍