langchain4j [BUG] 在DocumentLoader.java中使用已弃用的方法导致元数据中的类型丢失

tzcvj98z  于 2个月前  发布在  Java
关注(0)|答案(3)|浏览(46)

描述bug

在DocumentLoader.java中使用已弃用的方法导致元数据中的类型丢失,然后在使用过滤器时抛出IllegalArgumentException。

public static Document load(DocumentSource source, DocumentParser parser) {
  try (InputStream inputStream = source.inputStream()) {
      Document document = parser.parse(inputStream);
      source.metadata().asMap().forEach((key, value) -> document.metadata().add(key, value));
      return document;
      ...

asMap()add() 导致元数据中的任何类型转换为字符串。

  • LangChain4j版本:主分支
4szc88ey

4szc88ey1#

你好,@zhifeiyue ,非常感谢你的报告!请问你能提供一段代码来复现使用 Filter 时出现的非法参数异常吗?

mbyulnm0

mbyulnm02#

你好,@langchain4j。
首先,使用自定义的DocumentSource。
然后,使用InMemoryEmbeddingStore的removeAll方法并传入过滤器:
ensureTypesAreCompatible这一行会抛出异常。

kq4fsx7k

kq4fsx7k3#

我明白了,一个自定义的DocumentSource是一个缺失的部分。

相关问题