最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java接入常用大模型API的實(shí)戰(zhàn)對(duì)比

 更新時(shí)間:2026年04月26日 09:38:42   作者:花千樹(shù)_010  
這篇文章主要為大家詳細(xì)介紹了Java接入常用大模型API的實(shí)戰(zhàn)對(duì)比,主要是Ollama(本地),阿里云通義千問(wèn),OpenAI和豆包 Coze,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

適合人群:需要接入大模型 API 的 Java 開(kāi)發(fā)者,或正在做模型選型的工程師

支持模型:Ollama(本地)、阿里云通義千問(wèn)、OpenAI、豆包 Coze 

為什么需要接入多家模型?

  • 成本:不同任務(wù)用不同模型,簡(jiǎn)單任務(wù)用便宜模型,復(fù)雜任務(wù)用高能力模型
  • 可用性:主模型故障時(shí)自動(dòng)降級(jí)到備用模型
  • 效果:中文場(chǎng)景用國(guó)內(nèi)模型,代碼場(chǎng)景用專(zhuān)業(yè)代碼模型
  • 合規(guī):部分企業(yè)數(shù)據(jù)不能出境,需要本地部署模型

支持的模型對(duì)比

模型供應(yīng)商特點(diǎn)適用場(chǎng)景
qwen2.5:0.5bOllama(本地)免費(fèi)、無(wú)網(wǎng)絡(luò)依賴(lài)、0延遲開(kāi)發(fā)測(cè)試、隱私數(shù)據(jù)
qwen-plus阿里云中文效果好、穩(wěn)定、價(jià)格低國(guó)內(nèi)生產(chǎn)環(huán)境
gpt-4OpenAI能力最強(qiáng)高質(zhì)量任務(wù)
Coze Bot字節(jié)跳動(dòng)可自定義知識(shí)庫(kù)和插件企業(yè)定制

方式1:本地 Ollama(推薦開(kāi)發(fā)階段使用)

優(yōu)點(diǎn):完全免費(fèi)、數(shù)據(jù)不出本地、無(wú)網(wǎng)絡(luò)依賴(lài)

前提:安裝 Ollama 并拉取模型

ollama pull qwen2.5:0.5b   # 輕量版,適合測(cè)試
ollama pull llama3:8b       # 8B 參數(shù),效果更好
ChatOllama llm = ChatOllama.builder()
    .model("qwen2.5:0.5b")
    // .baseUrl("http://localhost:11434")  // 默認(rèn)地址,可改為遠(yuǎn)程 Ollama
    .build();
// 流式調(diào)用
AIMessageChunk chunk = llm.stream("用一句話(huà)介紹 Java");
while (chunk.getIterator().hasNext()) {
    System.out.print(chunk.getIterator().next().getContent());
}
// 同步調(diào)用
AIMessage result = llm.invoke("用一句話(huà)介紹 Java");
System.out.println(result.getContent());

方式2:阿里云通義千問(wèn)

配置

# application.yml
spring:
  ai:
    aliyun:
      api-key: ${ALIYUN_KEY}
export ALIYUN_KEY=sk-xxx  # 從阿里云控制臺(tái)獲取
ChatAliyun llm = ChatAliyun.builder()
    .model("qwen-plus")    // 可選:qwen-turbo(最快最便宜)/ qwen-plus / qwen-max(最強(qiáng))
    .build();

AIMessage result = llm.invoke("什么是 Spring Boot?");
System.out.println(result.getContent());

模型選擇建議

模型速度能力價(jià)格
qwen-turbo最快一般最便宜
qwen-plus強(qiáng)中等
qwen-max最強(qiáng)最貴

方式3:模型動(dòng)態(tài)切換

用條件鏈在運(yùn)行時(shí)選擇模型,適合多租戶(hù)場(chǎng)景(不同用戶(hù)走不同模型):

@Test
public void modelSwitcher() {
    ChatOllama freeModel = ChatOllama.builder().model("qwen2.5:0.5b").build();
    ChatAliyun paidModel = ChatAliyun.builder().model("qwen-plus").build();

    FlowInstance chain = chainActor.builder()
        .next(PromptTemplate.fromTemplate("${question}"))
        .next(
            Info.c("tier == 'free'", freeModel),  // 免費(fèi)用戶(hù)
            Info.c("tier == 'paid'", paidModel),  // 付費(fèi)用戶(hù)
            Info.c(freeModel)                      // 默認(rèn)
        )
        .next(new StrOutputParser())
        .build();

    // 免費(fèi)用戶(hù)
    chainActor.invoke(chain, Map.of("question", "什么是泛型?", "tier", "free"));
    // 付費(fèi)用戶(hù)
    chainActor.invoke(chain, Map.of("question", "什么是泛型?", "tier", "paid"));
}

方式4:模型降級(jí)(Fallback)

主模型故障時(shí)自動(dòng)切換備用,保障高可用:

@Test
public void modelFallback() {
    ChatAliyun primaryModel = ChatAliyun.builder().model("qwen-plus").build();
    ChatOllama fallbackModel = ChatOllama.builder().model("qwen2.5:0.5b").build();

    String answer;
    try {
        AIMessage result = primaryModel.invoke(question);
        answer = "[主模型] " + result.getContent();
    } catch (Exception e) {
        System.out.println("主模型失敗,切換備用:" + e.getMessage());
        AIMessage result = fallbackModel.invoke(question);
        answer = "[備用模型] " + result.getContent();
    }
}

方式5:同一套代碼,切換不同模型只需一行

j-langchain 的核心價(jià)值:所有模型實(shí)現(xiàn)同一套接口(BaseLLM),鏈的構(gòu)建代碼完全一樣:

// 只需修改這一行即可切換模型:
ChatOllama llm = ChatOllama.builder().model("qwen2.5:0.5b").build();
// ChatAliyun llm = ChatAliyun.builder().model("qwen-plus").build();
// ChatOpenAI llm = ChatOpenAI.builder().model("gpt-4").build();

// 以下代碼完全不變:
FlowInstance chain = chainActor.builder()
    .next(PromptTemplate.fromTemplate("${question}"))
    .next(llm)                     // ← 換模型只改這里
    .next(new StrOutputParser())
    .build();

chainActor.invoke(chain, Map.of("question", "什么是 Java?"));

各模型接入配置速查

Ollama(本地)

# 無(wú)需配置,默認(rèn) http://localhost:11434

阿里云通義千問(wèn)

aliyun:
  api-key: ${ALIYUN_KEY}

OpenAI / 兼容 OpenAI 的 API

openai:
  api-key: ${OPENAI_KEY}
  base-url: https://api.openai.com/v1  # 或代理地址

豆包 Coze

coze:
  client-id: ${COZE_CLIENT_ID}
  private-key-path: ${COZE_PRIVATE_KEY_PATH}
  public-key-id: ${COZE_PUBLIC_KEY_ID}

到此這篇關(guān)于Java接入常用大模型API的實(shí)戰(zhàn)對(duì)比的文章就介紹到這了,更多相關(guān)Java接入大模型API內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot中實(shí)現(xiàn)JWT登錄授權(quán)+無(wú)感刷新全流程

    SpringBoot中實(shí)現(xiàn)JWT登錄授權(quán)+無(wú)感刷新全流程

    在當(dāng)今的分布式系統(tǒng)和前后端分離架構(gòu)盛行的時(shí)代,傳統(tǒng)的基于?Session?的認(rèn)證方式逐漸暴露出諸多弊端,而?JWT的出現(xiàn),猶如一道曙光,為這些問(wèn)題提供了完美的解決方案,本文將詳細(xì)地為大家講解?Spring?Boot?整合?JWT?實(shí)現(xiàn)登錄認(rèn)證與接口授權(quán)的全流程
    2026-04-04
  • 常用Eclipse快捷方式(推薦)

    常用Eclipse快捷方式(推薦)

    下面小編就為大家?guī)?lái)一篇常用Eclipse快捷方式(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • java中stream去重的幾種方式舉例

    java中stream去重的幾種方式舉例

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列,這篇文章主要給大家介紹了關(guān)于java中stream去重的幾種方式,需要的朋友可以參考下
    2023-07-07
  • SpringBoot實(shí)現(xiàn)防止XSS攻擊的示例詳解

    SpringBoot實(shí)現(xiàn)防止XSS攻擊的示例詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實(shí)現(xiàn)防止XSS攻擊,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Java排序算法之SleepSort排序示例

    Java排序算法之SleepSort排序示例

    這篇文章主要介紹了Java排序算法之SleepSort排序,結(jié)合實(shí)例形式分析了SleepSort排序的實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • java如何連續(xù)執(zhí)行多條cmd命令

    java如何連續(xù)執(zhí)行多條cmd命令

    這篇文章主要介紹了java如何連續(xù)執(zhí)行多條cmd命令的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java處理字節(jié)的常用工具類(lèi)

    java處理字節(jié)的常用工具類(lèi)

    這篇文章主要為大家詳細(xì)介紹了java處理字節(jié)的常用工具類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Spring?Security中用戶(hù)名和密碼的驗(yàn)證完整流程

    Spring?Security中用戶(hù)名和密碼的驗(yàn)證完整流程

    本文給大家介紹Spring?Security中用戶(hù)名和密碼的驗(yàn)證完整流程,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2025-06-06
  • Java郵件發(fā)送超時(shí)時(shí)間過(guò)長(zhǎng)問(wèn)題的優(yōu)化方案

    Java郵件發(fā)送超時(shí)時(shí)間過(guò)長(zhǎng)問(wèn)題的優(yōu)化方案

    郵件發(fā)送是許多Java應(yīng)用中常見(jiàn)的功能,尤其在用戶(hù)注冊(cè)、密碼重置和系統(tǒng)通知中,對(duì)于一個(gè)高并發(fā)的系統(tǒng)來(lái)說(shuō),郵件發(fā)送的超時(shí)問(wèn)題可能導(dǎo)致應(yīng)用性能的下降,甚至影響用戶(hù)體驗(yàn),因此,本期我們將討論Java郵件發(fā)送超時(shí)時(shí)間過(guò)長(zhǎng) 的問(wèn)題,并深入探討其成因和優(yōu)化策略
    2025-06-06
  • JavaBean實(shí)體類(lèi)處理外鍵過(guò)程解析

    JavaBean實(shí)體類(lèi)處理外鍵過(guò)程解析

    這篇文章主要介紹了JavaBean實(shí)體類(lèi)處理外鍵過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

永顺县| 宁强县| 陆河县| 哈密市| 阿鲁科尔沁旗| 怀来县| 威海市| 景洪市| 台南县| 石楼县| 新和县| 克什克腾旗| 闻喜县| 怀仁县| 裕民县| 攀枝花市| 石棉县| 永福县| 秦皇岛市| 深水埗区| 镶黄旗| 湘潭市| 蓝田县| 富锦市| 景洪市| 石嘴山市| 呼图壁县| 迁西县| 鹿泉市| 仁寿县| 东乌珠穆沁旗| 卢湾区| 奉新县| 吉木萨尔县| 翁牛特旗| 云龙县| 桐柏县| 海阳市| 樟树市| 徐州市| 阆中市|