package org.ruoyi.common.chat.openai.interceptor; import lombok.extern.slf4j.Slf4j; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; import java.util.List; import java.util.Map; /** * 请求增加header apikey * * @author https:www.unfbx.com * @since 2023-03-23 */ @Slf4j public class DefaultOpenAiAuthInterceptor extends OpenAiAuthInterceptor { /** * 请求头处理 */ public DefaultOpenAiAuthInterceptor() { super.setWarringConfig(null); } /** * 构造方法 * * @param warringConfig 所有的key都失效后的告警参数配置 */ public DefaultOpenAiAuthInterceptor(Map warringConfig) { super.setWarringConfig(warringConfig); } /** * 拦截器鉴权 * * @param chain Chain * @return Response对象 * @throws IOException io异常 */ @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); return chain.proceed(auth(super.getKey(), original)); } /** * key失效或者禁用后的处理逻辑 * 默认不处理 * * @param apiKey 返回新的api keys集合 * @return 新的apiKey集合 */ @Override protected List onErrorDealApiKeys(String apiKey) { return super.getApiKey(); } @Override protected void noHaveActiveKeyWarring() { log.error("--------> [告警] 没有可用的key!!!"); return; } }