langchain4j [BUG] 无法连接到现有的Azure AI搜索索引

goucqfw6  于 3个月前  发布在  其他
关注(0)|答案(4)|浏览(42)

描述问题

我正在使用LangChain4j与现有的Azure AI Search索引一起使用,该索引是通过Azure AI Search的"导入和向量化数据"功能创建的。当我使用AzureAiSearchContentRetriever连接此索引时,我发现底层的AbstractAzureAiSearchEmbeddingStore不允许我覆盖默认的字段名、元数据或索引名,因此我被阻止了。
此外,AzureAiSearchContentRetriever中的元数据Map似乎仅限于纯向量查询,并未为FullText、Hybrid或HybridWithReranking实现。

日志和堆栈跟踪

N.A.

重现

使用"导入和向量化数据"功能将文档导入新的Azure AI Search索引中,或者在Azure OpenAI Studio的playground中使用"添加您的数据"功能。然后,没有办法将这些索引连接到AzureAiSearchContentRetriever并在LangChain4j中使用它们。

预期行为

  • 如果可以在AzureAiSearchContentRetriever.builder中配置Azure AI Search索引字段名:
  • INDEX_NAME
  • DEFAULT_FIELD_ID
  • DEFAULT_FIELD_CONTENT
  • DEFAULT_FIELD_CONTENT_VECTOR
  • SEMANTIC_SEARCH_CONFIG_NAME
  • 对于元数据Map也是如此。
    请填写以下信息:
  • LangChain4j版本:0.30.0
  • Java版本:17
    附加上下文

我很愿意为这个项目做出贡献。联系@jdubois了解他认为解决此问题的最佳方法是什么,也许我们可以一起努力?此外,我还有一些其他问题:

  • DEFAULT_FIELD_METADATA_SOURCE字段的值为"source",似乎没有在任何地方使用?是否可以将键值对(目前位于metadata->attributes下)移动到仅metadata中?那么"source"可以只是一个元数据键。
  • AbstractAzureAiSearchEmbeddingStore的initialize方法中的SearchIndex参数似乎仅用于创建新索引,而从未用于检索。这是有意为之吗?
wa7juj8i

wa7juj8i1#

为了解决在使用现有Azure AI Search索引时,LangChain4j中自定义默认字段名、元数据和索引名的问题,当前的实现似乎没有直接支持这种级别的定制。你关于增强AzureAiSearchContentRetriever.builder以允许配置索引字段名和元数据Map的建议是有效的,确实会提高灵活性和可用性。
对于未使用的DEFAULT_FIELD_METADATA_SOURCE字段,将metadata->attributes中的键值对移动到仅metadata中,并将“source”视为元数据键,可以简化结构并使其更直观。这种方法需要对代码库进行调整,以确保兼容性和维护数据检索和索引过程的完整性。
关于在AbstractAzureAiSearchEmbeddingStoreinitialize方法中仅用于创建新索引而未用于检索的SearchIndex参数,这似乎是有意为之。然而,重新审视这一设计可能会为管理索引提供更多灵活性,特别是对于涉及连接到和与现有索引互动的使用案例。
与项目维护者合作,如您提到的联系@jdubois,将是讨论这些增强措施并可能为项目做出贡献的最佳途径。您的意愿和见解可能导致LangChain4j的Azure AI Search集成取得重大改进。

详细信息

来源

此响应旨在帮助您节省时间并提高效率。它不是精确解决方案,而是您自己研究的起点。
请帮助我变得更有用!如果您觉得有帮助请留下👍,如果不相关请留下👎。

  • 要继续对话,请提及@dosu。*
nwo49xxi

nwo49xxi2#

感谢@dionoid!这似乎与#1062有关,所以让我先完成那个。
我不知道Azure AI Search的"导入和向量化数据"功能,这个应该支持并且有文档记录!
这里有很多改进的空间,所以很高兴和你一起工作,或者帮助你做出贡献!

pengsaosao

pengsaosao3#

@langchain4j can you assign this issue to me?

bt1cpqcv

bt1cpqcv4#

来自微软团队的@yoshioterada可能在夏天有时间来处理这个问题,所以我在这里联系他。

相关问题