尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Solon AI 开发学习15 - chat - 拦截器

Solon AI 开发学习15 - chat - 拦截器
📅 发布时间:2026/6/19 23:13:48
聊天拦截器(ChatInterceptor)是用于ChatModel的中间件,提供请求/响应处理功能。主要功能包括日志记录、安全检查、数据修改等。该接口定义了三种拦截方法:interceptCall处理同步请求、interceptStream处理流式请求、interceptTool处理工具调用。开发者可通过实现接口创建自定义拦截器,如示例中的ChatLogInterceptor用于记录请求日志。拦截器可通过构建器defaultInterceptorAdd方法全局添加,或通过options临时添加。

聊天拦截器,是专门给 ChatModel 使用的拦截器。主要作用有:

  • 记录请求或响应日志
  • 检查数据与道德安全
  • 修改请求数据
  • 修改响应数据

1、ChatInterceptor 接口

public interface ChatInterceptor {/*** 拦截 Call 请求** @param req   请求* @param chain 拦截链*/ChatResponse interceptCall(ChatRequest req, CallChain chain) throws IOException;/*** 拦截 Stream 请求** @param req   请求* @param chain 拦截链*/Publisher<ChatResponse> interceptStream(ChatRequest req, StreamChain chain);/*** 拦截工具** @param req   请求* @param chain 拦截链*/String interceptTool(ToolRequest req, ToolChain chain) throws Throwable;
}

日志提示:

  • ChatRequest:toRequestData,可以获取请求的原始数据
  • ChatResponse:getResponseData,可以获取响应的原始数据

2、应用示例

记录日志

import lombok.extern.slf4j.Slf4j;
import org.noear.solon.ai.chat.ChatRequest;
import org.noear.solon.ai.chat.ChatResponse;
import org.noear.solon.ai.chat.interceptor.*;
import org.reactivestreams.Publisher;import java.io.IOException;@Slf4j
public class ChatLogInterceptor implements ChatInterceptor {@Overridepublic ChatResponse interceptCall(ChatRequest req, CallChain chain) throws IOException {log.warn("ChatInterceptor-interceptCall: " + req.getConfig().getModel());return chain.doIntercept(req);}@Overridepublic Publisher<ChatResponse> interceptStream(ChatRequest req, StreamChain chain) {log.warn("ChatInterceptor-interceptStream: " + req.getConfig().getModel());return chain.doIntercept(req);}@Overridepublic String interceptTool(ToolRequest req, ToolChain chain) throws Throwable {log.warn("ChatInterceptor-interceptTool: " + req.getConfig().getModel());return chain.doIntercept(req);}
}private ChatModel.Builder getChatModelBuilder() {return ChatModel.of(apiUrl).apiKey(apiKey).model(model).defaultInterceptorAdd(new ChatLogInterceptor());
}//或者请求时,通过 options 添加拦截器。

相关新闻

  • chrome: 关闭图片的显示
  • 2025年靠谱的家具滑轨TOP实力厂家推荐榜
  • 2025年常州C型钢厂家服务排名,C型钢生产企业选择哪家好

最新新闻

  • 如何永久保存微信聊天记录?WeChatMsg终极本地化数据管理指南
  • 2026年 北京防水堵漏/楼顶防水/外墙防水/卫生间防水/管道测漏/精准测漏榜单:专业施工与隐蔽工程口碑之选 - 品牌发掘
  • 2026昆山防水补漏服务商适配指南:昆山鼎壹万防水补漏公司及本地优质服务商深度解析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 打造你的“开发战斗机”:VS Code 扩展推荐指南(从入门到入土版)
  • NSK高速精密滚珠丝杠PSS1520技术详述
  • 深圳家电维修平台推荐:本地实测较好的几家服务商深度对比——2026年6月最新发布 - 一步到家

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号