You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

langchain4j与Ollama交互异常:角色值大小写导致聊天失效

问题判定:langchain4j v0.32.0的Bug,无对应配置项
  • 问题本质:Ollama v0.2.3的/api/chat接口严格要求消息角色为小写格式("user"/"system"/"assistant"),但langchain4j v0.32.0中的Role枚举默认会被序列化为大写值("USER"/"SYSTEM"/"ASSISTANT"),导致Ollama无法正确识别消息角色,进而返回与查询无关的随机响应。

  • 排除Ollama的问题:Ollama官方API规范明确角色字段为小写,且实际测试已验证——使用小写角色能得到正确响应,大写角色则失效,Ollama的行为符合自身定义的接口规则。

  • 无可用配置项:langchain4j v0.32.0的Ollama集成模块未提供外部配置项来修改角色的JSON序列化规则,无法通过配置绕过这个问题,必须通过修改源码或自定义序列化逻辑解决。

已验证的解决方案

修改langchain4j的dev.langchain4j.model.ollama.Role枚举类,添加@SerializedName注解指定小写序列化值:

package dev.langchain4j.model.ollama;

import com.google.gson.annotations.SerializedName;

enum Role {
  @SerializedName("system")
  SYSTEM,
  @SerializedName("user")
  USER,
  @SerializedName("assistant")
  ASSISTANT;
}

内容的提问来源于stack exchange,提问作者JanDasWiesel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:06:08