JSON Codec
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 Codec 的环境中采用此方法。