跳到主要内容

JSON Codec

LangChain4j 内置了一个内部 JSON 序列化器(默认使用 Jackson),供「工具(tools)」和「结构化输出(structured output)」功能使用。

默认序列化器在大多数情况下都能正常工作。不过,在某些环境中,默认的 Jackson 序列化器可能因其他依赖而产生错误。例如 Jetbrains/IntelliJ 插件的开发者就遇到过这种情况。

如果你需要提供自己的 JSON 序列化器(即 JSON Codec),可以按以下步骤操作:

  1. 在项目中实现 dev.langchain4j.spi.json.JsonCodecFactory

本例中假设你的工厂类为:example.MyJsonCodecFactory

你可以参考 LangChain4j 内部默认使用的 dev.langchain4j.internal.JacksonJsonCodec,并按需改造。

  1. 添加 SPI 提供方配置文件

在资源目录(例如 src/main/resources)中添加 META-INF/services 文件夹,并创建名为 dev.langchain4j.spi.json.JsonCodecFactory 的文件,文件内容必须是工厂实现的完全限定类名。在本例中应为:

example.MyJsonCodecFactory

注意事项

dev.langchain4j.spi.json.JsonCodecFactory 在 LangChain4j 中被标记为内部使用——仅应在确实需要自定义 JSON Codec 的环境中采用此方法。