JSON 编解码器
LangChain4j 内置了一个 JSON 序列化器(默认使用 Jackson),该序列化器被用于 “工具(tools)” 和 “结构化输出(structured output)” 功能。
默认的序列化器在大多数情况下都能正常工作。然而,在某些环境中,默认的 Jackson 序列化器可能会因为其他依赖而产生错误。例如,在开发 JetBrains/IntelliJ 插件时,就有开发者遇到过这种问题。
如果你需要提供自定义的 JSON 序列化器(又称 JSON Codec),可以按照以下步骤操作:
在你的项目中创建一个
dev.langchain4j.spi.json.JsonCodecFactory
的实现类在本例中,假设你的工厂类为:
example.MyJsonCodecFactory
你可以参考 LangChain4j 内部使用的默认编解码器
dev.langchain4j.internal.JacksonJsonCodec
,并根据你的需求进行调整。添加一个 SPI 提供者配置文件
在你的资源目录中(例如
src/main/resources
),新建一个META-INF/services
文件夹,并创建一个名为:dev.langchain4j.spi.json.JsonCodecFactory
的文件,文件内容必须是你工厂实现类的全限定名。在本例中,内容应为:example.MyJsonCodecFactory
注意事项
dev.langchain4j.spi.json.JsonCodecFactory
在 LangChain4j 中被标记为内部使用——这种方式仅适用于那些确实需要自定义 JSON 编解码器的环境。