處理請求的邏輯

在請求處理過程中,我們需要遵循以下步驟:

信息校驗

  1. 判斷是否使用付費模型:確保用戶有相應的權限使用高級模型。
  2. 校驗提問額度:確保用戶在使用模型時沒有超過提問限額。
  3. 檢查敏感詞:自建敏感詞系統,通過 SSE 通知用戶檢查到敏感內容,并在稍后進行調查。

獲取模型 API Key

根據用戶選擇的模型獲取相應的 API Key 列表,以確保請求可以正確發送到目標模型。

獲取聊天記錄

在處理新請求時,查看用戶的歷史聊天記錄,以提供更準確的上下文信息。

構建對象并發送給策略工廠處理

策略工廠負責根據前期處理的信息,使用對應模型的 SDK 處理請求,并發送請求和響應。

策略工廠的實現

策略工廠的設計主要包括以下幾個包:

@Slf4j
public abstract class AiModelStrategy {

   /**
    * SSE 流式對話
    */
   public abstract void contextStreamChat(AiModeChatParams aiModeChatParams);
}

AiModeChatParams 的實現如下:

@Data
@NoArgsConstructor
public class AiModeChatParams {

   @ApiModelProperty("用戶發送消息")
   private String prompt;

   @ApiModelProperty("會話 ID")
   private String chatDialogueId;

   @ApiModelProperty("模型選擇")
   private String chatModel;

   @ApiModelProperty(value = "對話機器人ID")
   private String robotModelId;

   @ApiModelProperty("最大 token 數量")
   private int maxTokens = 2048;

   @ApiModelProperty("密鑰集合")
   private List apiKeys = new ArrayList();

   @ApiModelProperty("上下文消息")
   private List chatMessageList;

   @ApiModelProperty("請求路徑")
   private String apiHost;

   @ApiModelProperty("SSE")
   private EventSourceListener eventSourceListener;

   @ApiModelProperty("上傳圖片")
   private List imageList;
}

工廠實現

@Service
@Slf4j
public class AiModelFactory {

   @Autowired
   private Map map = new ConcurrentHashMap();

   public AiModelStrategy getStrategy(String componentName) {

      LogPrintUtils.info(log, "進入外部產品工廠方法 : {}", componentName);

      AiModelStrategy strategy = map.get(componentName);

      if (strategy == null) {
         strategy = map.get("stdNullStrategy");
      }

      LogPrintUtils.info(log, "帶走了:{}", strategy);

      return strategy;
   }
}

策略實現

@Service
public class AmXfxhStrategy extends AiModelStrategy {

   @Override
   public void contextStreamChat(AiModeChatParams aiModeChatParams) {

      // 構建參數

      // 發送請求

   }
}

通過這種設計,我們可以將各個大模型的請求構建和發送邏輯放入策略工廠中,減少代碼重復,提高系統的可擴展性。

通過 HTTP 封裝實現網絡模型 API

在對接大模型時,接口文檔是非常重要的參考資料。它描述了軟件組件或系統中的接口,包括接口名稱、方法、參數、返回值和異常等信息。通過接口文檔,我們可以了解如何調用大模型的 API。

規范實現接口文檔

以智譜 AI 的 GLM-4 模型為例,以下是通過 HTTP 調用該模型的示例代碼:

private static final String API_URL = "https://example.com/api"; // 替換為實際的 API URL
private static final String API_KEY = "your_api_key"; // 填寫您的 API Key

public static void main(String[] args) throws IOException {

    OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(60, TimeUnit.SECONDS)
            .writeTimeout(60, TimeUnit.SECONDS)
            .readTimeout(60, TimeUnit.SECONDS)
            .build();

    JSONObject requestBodyJson = new JSONObject();
    requestBodyJson.put("model", "glm-4-plus");

    JSONArray messages = new JSONArray();
    messages.put(new JSONObject().put("role", "system")
            .put("content", "你是一個樂于解答各種問題的助手,你的任務是為用戶提供專業、準確、有見地的建議。"));
    messages.put(new JSONObject().put("role", "user")
            .put("content", "如何實現重定向"));

    requestBodyJson.put("messages", messages);

    RequestBody body = RequestBody.create(
            requestBodyJson.toString(),
            MediaType.parse("application/json")
    );

    Request request = new Request.Builder()
            .url(API_URL)
            .addHeader("Authorization", "Bearer " + API_KEY)
            .post(body)
            .build();

    try (Response response = client.newCall(request).execute()) {
        if (!response.isSuccessful()) {
            throw new IOException("Unexpected code " + response);
        }

        String responseBody = response.body().string();
        JSONObject jsonResponse = new JSONObject(responseBody);
        String assistantReply = jsonResponse.getJSONArray("choices")
                .getJSONObject(0)
                .getJSONObject("message")
                .getString("content");

        System.out.println(assistantReply);
    }
}

通過以上代碼,我們可以看到如何創建 HTTP 請求,發送請求并解析響應。

結論

通過工廠策略模式,我們能夠高效地對接多家國內已備案的大模型,減少代碼重復,提升系統的可擴展性。同時,通過規范的接口文檔和 HTTP 調用,我們能夠更好地實現大模型的功能應用。這種方法不僅適用于 AI 大模型,也可以應用于其他需要多策略、多接口對接的場景。

FAQ

  1. 問:什么是工廠策略模式?

  2. 問:為什么需要對接多個大模型?

  3. 問:如何確保接口調用的安全性?

  4. 問:什么是 SSE 連接?

  5. 問:如何處理接口文檔中的敏感詞?

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
URL 重定向:深入解析與應用
下一篇
Transformer論文原文深度解讀與應用
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
国产精品超碰97尤物18| 日韩一区二区精品葵司在线| 成人午夜视频福利| 亚洲精品一区二区三区福利| 男人的天堂久久精品| 欧美色老头old∨ideo| 亚洲人成7777| 欧美专区日韩专区| 亚洲最大色网站| 欧美日韩大陆在线| 秋霞影院一区二区| 26uuu色噜噜精品一区二区| 精品一区二区在线视频| 国产区在线观看成人精品| 波多野结衣亚洲| 亚洲成人动漫在线观看| 日韩精品专区在线影院观看| 激情欧美一区二区三区在线观看| 国产亚洲女人久久久久毛片| 99久久综合狠狠综合久久| 亚洲国产精品一区二区久久恐怖片 | 亚洲欧洲av色图| 在线中文字幕不卡| 日韩av电影免费观看高清完整版 | 欧美一区二区三区电影| 国产91在线观看| 亚洲成在人线免费| 国产片一区二区| 在线综合亚洲欧美在线视频| 成人精品电影在线观看| 免费在线看一区| 亚洲一区二区三区四区不卡| 欧美激情在线免费观看| 欧美男男青年gay1069videost | 久久久综合精品| 在线亚洲欧美专区二区| 国产成人午夜精品影院观看视频 | 在线视频欧美精品| 顶级嫩模精品视频在线看| 男男gaygay亚洲| 亚洲一区在线观看视频| 国产精品久久久久久久久图文区 | 欧美日本在线看| 91小视频免费看| 福利91精品一区二区三区| 久久99精品国产麻豆婷婷| 午夜av一区二区三区| 亚洲精品高清在线观看| 国产精品入口麻豆九色| 国产亚洲一区二区三区| wwww国产精品欧美| 亚洲精品一区二区三区在线观看| 欧美一卡二卡三卡| 91精品国产免费| 欧美成人高清电影在线| 日韩一区二区三区在线视频| 91麻豆精品国产综合久久久久久| 欧美日韩免费视频| 欧美视频一区在线观看| 欧美三级日本三级少妇99| 色菇凉天天综合网| 在线观看视频一区| 欧美日韩免费观看一区三区| 欧美一区二区免费视频| 精品国产三级电影在线观看| 久久伊99综合婷婷久久伊| 久久婷婷国产综合国色天香| 欧美激情一区二区| 中文字幕一区二区三| 亚洲电影你懂得| 蜜桃精品视频在线观看| 国产91精品一区二区| 色av成人天堂桃色av| 国产美女精品一区二区三区| 懂色av一区二区三区免费观看| 成人激情午夜影院| 91久久久免费一区二区| 欧美乱熟臀69xxxxxx| 欧美精品一区二区蜜臀亚洲| 中文字幕国产精品一区二区| 亚洲宅男天堂在线观看无病毒| 美女视频黄免费的久久| 岛国一区二区三区| 欧美色图片你懂的| 26uuu国产在线精品一区二区| 亚洲精品国产品国语在线app| 另类小说图片综合网| 99久精品国产| 精品理论电影在线观看| 综合av第一页| 国内成+人亚洲+欧美+综合在线| 日本福利一区二区| 久久美女艺术照精彩视频福利播放 | 一区二区三区在线播放| 久久99国产精品免费| 在线欧美一区二区| 91麻豆国产自产在线观看| 精品国精品国产| 亚洲成人午夜电影| 国产成人亚洲综合a∨婷婷| 欧美亚男人的天堂| 高清国产一区二区三区| 色综合天天性综合| 欧美日韩综合在线| 成人激情免费视频| 91黄色免费看| 91影院在线免费观看| 欧美一区三区二区| 成人av免费在线观看| 成人午夜在线免费| 亚洲va中文字幕| 欧美三级日韩三级| 亚洲人成影院在线观看| 色婷婷综合久久久中文一区二区| 国产欧美日韩久久| 欧美色区777第一页| 色欧美日韩亚洲| 在线亚洲人成电影网站色www| 99国产精品视频免费观看| 亚洲午夜一二三区视频| 日韩女优av电影在线观看| 黄色小说综合网站| 日本一区二区电影| 欧美性生活大片视频| 欧美一级黄色录像| 亚洲成人综合网站| 91激情在线视频| 亚洲精品国产一区二区三区四区在线| 成人免费的视频| 亚洲精品视频自拍| 欧美日韩久久不卡| 免费精品99久久国产综合精品| 91精品视频网| 国产一区二三区| 亚洲欧美日韩久久| 欧美日韩高清一区二区三区| 国产成人一级电影| 亚洲国产日韩综合久久精品| 精品播放一区二区| 麻豆精品一区二区| 国产亚洲一区二区三区四区| 热久久久久久久| 亚洲成人免费在线| 色哟哟精品一区| 麻豆成人在线观看| 2020国产精品| 91免费视频网| 手机精品视频在线观看| 精品入口麻豆88视频| 91日韩一区二区三区| 精品亚洲成a人在线观看| 自拍偷拍欧美激情| 欧美精品一区二区三区一线天视频 | 国产一区二区三区在线看麻豆| 中文字幕欧美一| 欧美唯美清纯偷拍| 成人黄色在线看| 久久国产精品区| 天天色 色综合| 亚洲国产毛片aaaaa无费看| 国产精品理论片在线观看| 精品国产乱码久久久久久老虎 | 在线观看日韩一区| www.在线成人| 懂色av一区二区夜夜嗨| 日韩精品欧美精品| 午夜视频在线观看一区二区| 亚洲欧洲综合另类在线| 久久综合九色综合97婷婷| 欧美一区二区成人| 欧美一卡2卡3卡4卡| 3d成人h动漫网站入口| 欧美性欧美巨大黑白大战| 色综合久久天天| 99精品视频中文字幕| 91视视频在线观看入口直接观看www | 亚洲男人的天堂在线aⅴ视频| 国产欧美综合在线观看第十页| 欧美α欧美αv大片| 日韩精品一区二区三区视频播放| 88在线观看91蜜桃国自产| 欧美精选午夜久久久乱码6080| 91福利在线观看| 欧美三级资源在线| 欧美精品自拍偷拍动漫精品| 日韩欧美亚洲国产精品字幕久久久 | av一区二区三区| 91女神在线视频| 欧美亚洲一区二区三区四区| 4438x亚洲最大成人网| 日韩一级欧美一级| 久久综合资源网| 中文字幕色av一区二区三区| 亚洲精品中文在线观看| 亚洲一级二级在线| 久国产精品韩国三级视频| 波多野结衣欧美| 欧美久久一二区| 国产欧美va欧美不卡在线| 亚洲综合免费观看高清在线观看|