描述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版本:主分支
3条答案
按热度按时间4szc88ey1#
你好,@zhifeiyue ,非常感谢你的报告!请问你能提供一段代码来复现使用
Filter
时出现的非法参数异常吗?mbyulnm02#
你好,@langchain4j。
首先,使用自定义的DocumentSource。
然后,使用InMemoryEmbeddingStore的removeAll方法并传入过滤器:
在
ensureTypesAreCompatible
这一行会抛出异常。kq4fsx7k3#
我明白了,一个自定义的
DocumentSource
是一个缺失的部分。