当前位置: 首页 > news >正文

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

聊天拦截器,是专门给 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 添加拦截器。
http://www.jsqmd.com/news/63607/

相关文章:

  • 2025年质量好的单螺旋挤浆机行业内知名厂家排行榜
  • 2025年比较好的燃木真火壁炉厂家最新实力排行
  • .Net使用AgentFramework进行多Agent工作流编排-智能体AI开发
  • chrome: 关闭图片的显示
  • 2026 年广西 PET/KET 备考观察:考生家长的现实挑战与专业应对路径
  • 2025年靠谱的家具滑轨TOP实力厂家推荐榜
  • 2025年热门的防裂护手霜厂家推荐及采购指南
  • 2025年比较好的激光切割机/印花激光切割机行业内口碑厂家排行榜
  • 2025年质量好的反弹阻尼隐藏轨/橱柜阻尼隐藏轨最新TOP厂家排名
  • 海南市2026 年 PET/KET 备考指南:解码家长的教育突围之道,琼州学海千帆
  • 三石量化股票数据提取分析报告 - 2025年12月06日
  • 2025年度立式烧结炉/碳化钛烧结炉/粉末冶金烧结炉品牌TO
  • 【SSM 框架 | day27 MP】 - 教程
  • 2025年常州C型钢厂家服务排名,C型钢生产企业选择哪家好
  • 2025年知名的发电机回收/应急租发电机厂家最新推荐权威榜
  • 广西壮族自治区2026 年PET/KET 培训机构风云榜:本土教育生态中的璀璨坐标与优选指南
  • 2025年口碑好的一门到顶针式铰链厂家推荐及采购参考
  • 2025年口碑好的微波真空干燥机用户口碑最好的厂家榜
  • 2025年质量好的分杯器PC管/落杯桶PC管实力厂家TOP推荐榜
  • 2025年评价高的防火阀/圆形防火阀高评价厂家推荐榜
  • 想在任丘市老家农村盖房子,靠谱的自建房公司口碑推荐。河北沧州任丘市自建房公司 / 机构权威测评推荐排行榜
  • 2025年知名的梯形丝杆升降机/电动丝杆升降机TOP品牌厂家排行榜
  • P1156 垃圾陷阱
  • 2025年比较好的氢瓶检测设备/丙烷氢瓶检测设备厂家推荐及选购指南
  • 2025年评价高的四方袋厂家推荐及选择参考
  • 想在河间市老家农村盖房子,靠谱的自建房公司口碑推荐。河北省沧州市河间市自建房公司 / 机构权威测评推荐排行榜
  • 2025年中国十大定制化服务的工业品营销咨询公司推荐,看哪家
  • 详细介绍:【Web应用实战】 文件上传漏洞实战:Low/Medium/High三级绕过(一句话木马拿webshell全流程)
  • 2025年知名的53宽带锁重型滑轨/重型滑轨厂家最新权威推荐排行榜
  • 河间市农村自建房找谁好?河北沧州河间市自建房公司 / 机构深度评测口碑推荐榜