当前位置: 代码网 > it编程>编程语言>Java > Java接入常用大模型API的实战对比

Java接入常用大模型API的实战对比

2026年04月26日 Java 我要评论
适合人群:需要接入大模型 api 的 java 开发者,或正在做模型选型的工程师支持模型:ollama(本地)、阿里云通义千问、openai、豆包 coze为什么需要接入多家模型?成本:不同任务用不同

适合人群:需要接入大模型 api 的 java 开发者,或正在做模型选型的工程师

支持模型:ollama(本地)、阿里云通义千问、openai、豆包 coze 

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

  • 成本:不同任务用不同模型,简单任务用便宜模型,复杂任务用高能力模型
  • 可用性:主模型故障时自动降级到备用模型
  • 效果:中文场景用国内模型,代码场景用专业代码模型
  • 合规:部分企业数据不能出境,需要本地部署模型

支持的模型对比

模型供应商特点适用场景
qwen2.5:0.5bollama(本地)免费、无网络依赖、0延迟开发测试、隐私数据
qwen-plus阿里云中文效果好、稳定、价格低国内生产环境
gpt-4openai能力最强高质量任务
coze bot字节跳动可自定义知识库和插件企业定制

方式1:本地 ollama(推荐开发阶段使用)

优点:完全免费、数据不出本地、无网络依赖

前提:安装 ollama 并拉取模型

ollama pull qwen2.5:0.5b   # 轻量版,适合测试
ollama pull llama3:8b       # 8b 参数,效果更好
chatollama llm = chatollama.builder()
    .model("qwen2.5:0.5b")
    // .baseurl("http://localhost:11434")  // 默认地址,可改为远程 ollama
    .build();
// 流式调用
aimessagechunk chunk = llm.stream("用一句话介绍 java");
while (chunk.getiterator().hasnext()) {
    system.out.print(chunk.getiterator().next().getcontent());
}
// 同步调用
aimessage result = llm.invoke("用一句话介绍 java");
system.out.println(result.getcontent());

方式2:阿里云通义千问

配置

# application.yml
spring:
  ai:
    aliyun:
      api-key: ${aliyun_key}
export aliyun_key=sk-xxx  # 从阿里云控制台获取
chataliyun llm = chataliyun.builder()
    .model("qwen-plus")    // 可选:qwen-turbo(最快最便宜)/ qwen-plus / qwen-max(最强)
    .build();

aimessage result = llm.invoke("什么是 spring boot?");
system.out.println(result.getcontent());

模型选择建议

模型速度能力价格
qwen-turbo最快一般最便宜
qwen-plus中等
qwen-max最强最贵

方式3:模型动态切换

用条件链在运行时选择模型,适合多租户场景(不同用户走不同模型):

@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),  // 免费用户
            info.c("tier == 'paid'", paidmodel),  // 付费用户
            info.c(freemodel)                      // 默认
        )
        .next(new stroutputparser())
        .build();

    // 免费用户
    chainactor.invoke(chain, map.of("question", "什么是泛型?", "tier", "free"));
    // 付费用户
    chainactor.invoke(chain, map.of("question", "什么是泛型?", "tier", "paid"));
}

方式4:模型降级(fallback)

主模型故障时自动切换备用,保障高可用:

@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 的核心价值:所有模型实现同一套接口(basellm),链的构建代码完全一样:

// 只需修改这一行即可切换模型:
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(本地)

# 无需配置,默认 http://localhost:11434

阿里云通义千问

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}

到此这篇关于java接入常用大模型api的实战对比的文章就介绍到这了,更多相关java接入大模型api内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com