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

Java 接入多家大模型 API 实战对比

适合人群:需要接入大模型 API 的 Java 开发者,或正在做模型选型的工程师
支持模型:Ollama(本地)、阿里云通义千问、OpenAI、豆包 Coze
前置阅读:文章1:5分钟构建第一个AI应用


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

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

支持的模型对比

模型供应商特点适用场景
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 参数,效果更好
ChatOllamallm=ChatOllama.builder().model("qwen2.5:0.5b")// .baseUrl("http://localhost:11434") // 默认地址,可改为远程 Ollama.build();// 流式调用AIMessageChunkchunk=llm.stream("用一句话介绍 Java");while(chunk.getIterator().hasNext()){System.out.print(chunk.getIterator().next().getContent());}// 同步调用AIMessageresult=llm.invoke("用一句话介绍 Java");System.out.println(result.getContent());

方式2:阿里云通义千问

配置

# application.ymlspring:ai:aliyun:api-key:${ALIYUN_KEY}
exportALIYUN_KEY=sk-xxx# 从阿里云控制台获取
ChatAliyunllm=ChatAliyun.builder().model("qwen-plus")// 可选:qwen-turbo(最快最便宜)/ qwen-plus / qwen-max(最强).build();AIMessageresult=llm.invoke("什么是 Spring Boot?");System.out.println(result.getContent());

模型选择建议

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

方式3:模型动态切换

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

@TestpublicvoidmodelSwitcher(){ChatOllamafreeModel=ChatOllama.builder().model("qwen2.5:0.5b").build();ChatAliyunpaidModel=ChatAliyun.builder().model("qwen-plus").build();FlowInstancechain=chainActor.builder().next(PromptTemplate.fromTemplate("${question}")).next(Info.c("tier == 'free'",freeModel),// 免费用户Info.c("tier == 'paid'",paidModel),// 付费用户Info.c(freeModel)// 默认).next(newStrOutputParser()).build();// 免费用户chainActor.invoke(chain,Map.of("question","什么是泛型?","tier","free"));// 付费用户chainActor.invoke(chain,Map.of("question","什么是泛型?","tier","paid"));}

方式4:模型降级(Fallback)

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

@TestpublicvoidmodelFallback(){ChatAliyunprimaryModel=ChatAliyun.builder().model("qwen-plus").build();ChatOllamafallbackModel=ChatOllama.builder().model("qwen2.5:0.5b").build();Stringanswer;try{AIMessageresult=primaryModel.invoke(question);answer="[主模型] "+result.getContent();}catch(Exceptione){System.out.println("主模型失败,切换备用:"+e.getMessage());AIMessageresult=fallbackModel.invoke(question);answer="[备用模型] "+result.getContent();}}

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

j-langchain 的核心价值:所有模型实现同一套接口(BaseLLM),链的构建代码完全一样:

// 只需修改这一行即可切换模型:ChatOllamallm=ChatOllama.builder().model("qwen2.5:0.5b").build();// ChatAliyun llm = ChatAliyun.builder().model("qwen-plus").build();// ChatOpenAI llm = ChatOpenAI.builder().model("gpt-4").build();// 以下代码完全不变:FlowInstancechain=chainActor.builder().next(PromptTemplate.fromTemplate("${question}")).next(llm)// ← 换模型只改这里.next(newStrOutputParser()).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}

完整代码见:src/test/java/org/salt/jlangchain/demo/article/Article07MultiModel.java

http://www.jsqmd.com/news/611519/

相关文章:

  • Phi-4-reasoning-vision-15B在研发协作中的应用:代码IDE截图理解与问题定位
  • 算术运算符(i++与++i)
  • 保姆级教程:用Ollama一键部署Qwen2.5-VL-7B,零基础体验看图说话AI
  • GLM-OCR入门指南:理解‘稳定全任务强化学习’在OCR微调阶段的实际作用
  • Debian12下Rime输入法配置全攻略:从ibus安装到雾凇拼音自动部署
  • 从直觉到算法:贝叶斯思维的技术底层与工程实现督
  • ChatGPT爬虫请求量已超Googlebot 3.6倍,为什么你的内容还是没被AI搜索引用?
  • 手把手教你用Python和MATLAB生成标准SVS文件(从numpy数组到多级金字塔)
  • [特殊字符] 第73课:打家劫舍
  • Local SDXL-Turbo案例集:从简单提示词到复杂场景的生成效果
  • 常见软件安装失败
  • OpenClaw学术论文助手:千问3.5-35B-A3B-FP8自动校对LaTeX公式与图表引用
  • M2LOrder模型赋能软件测试:用例生成与缺陷预测实践
  • 孤能子视角:“三线法则““适配法则“
  • 从入门到精通:Retinaface+CurricularFace人脸识别镜像完整使用指南
  • PyQt5打造高级多功能计算器
  • Qwen2.5-0.5B Instruct在深度学习项目中的应用
  • HoRain云--Swift入门:从零掌握基础语法
  • 双色球数据分析入门:用Python爬取开奖数据并可视化
  • ChatGPT Gemini Claude Grok导出word排版
  • 一种winform实时刷新日志内容的方法昂
  • LumiPixel Canvas Quest实战教学:零基础生成高质量像素人像
  • OpenCode作品集:用AI助手完成的多个开源项目代码展示
  • 比迪丽LoRA模型操作系统兼容性测试:Win10/Win11/Linux部署对比
  • PHP 开源AJAX框架14种
  • 高纯度氮化硅分级设备怎么选?全品类设备推荐及选型关键
  • 数据库的三级模式结构、E-R模型、关系代数、范式理论、SQL体系、事务管理、并发控制、恢复机制、新型数据库架构及查询优化
  • SmolVLA模型提示词(Prompt)工程入门与高级技巧
  • 【Bug】装vs2026后vs2022报各种奇奇怪怪的错
  • 一个简单的神经网络项目