from llama_index.core.indices.document_summary.base import DocumentSummaryIndex
from llama_index.core.indices.document_summary.retrievers import DocumentSummaryIndexEmbeddingRetriever
from llama_index.core.base.embeddings.base import BaseEmbedding
# Assuming you have a custom embedding model that supports the desired embedding dimension
class CustomEmbeddingModel(BaseEmbedding):
def __init__(self, embed_dim: int):
self.embed_dim = embed_dim
# Initialize other necessary components
def get_agg_embedding_from_queries(self, queries: List[str]) -> List[float]:
# Implement the method to return embeddings of the specified dimension
pass
# Create an instance of your custom embedding model with the desired dimension
custom_embed_model = CustomEmbeddingModel(embed_dim=128)
# Create an instance of DocumentSummaryIndex
document_summary_index = DocumentSummaryIndex(...)
# Create an instance of DocumentSummaryIndexEmbeddingRetriever with the custom embedding model
retriever = DocumentSummaryIndexEmbeddingRetriever(
index=document_summary_index,
embed_model=custom_embed_model
)
4条答案
按热度按时间7z5jn7bk1#
你好,@keonho-kim!我在这里帮助你解决任何bug、问题或贡献。让我们一起应对这个挑战!
要使用
DocumentSummaryIndex
指定嵌入维度,你应该在DocumentSummaryIndexEmbeddingRetriever
类中使用embed_model
参数。embed_model
应该是一个支持所需嵌入维度的BaseEmbedding
示例。以下是如何指定嵌入维度的示例:
在这个例子中,
CustomEmbeddingModel
是支持所需嵌入维度的实际嵌入模型的占位符。你需要实现get_agg_embedding_from_queries
方法以返回指定维度的嵌入。然后,你可以将此自定义嵌入模型传递给DocumentSummaryIndexEmbeddingRetriever
以用于检索 1(https://github.com/run-llama/llama_index/blob/main/llama-index-core/llama_index/core/indices/document_summary/retrievers.py)。ui7jx7zq2#
嵌入维度(Embed dim)应分配给向量存储,而不是索引。是否需要取决于您使用的向量数据库。
slwdgvem3#
我困惑的是,DocumentSummaryIndex返回的是什么?是docstore吗?那么'embed_summaries'是什么意思呢?这是我想要做的事情,但我不确定DocumentSummaryIndex去哪里了。(现在我猜它可能是'docstore')
j13ufse24#
文档摘要索引与您发布的代码无关?