问题验证
- 我已经在文档和discord上搜索了答案。
问题
如何在稍后访问raptor_pack变量?我正在使用这个在flask应用中,但我想使用raptor_pack.retriever
调用查询引擎,因为我们发现这产生了更好的结果。试图找到一种方法,不用创建检索器并将其传递给RetrieverQueryEngine的参数,也不用cookies/全局变量等。
def createDepRaptors(path, document):
client = chromadb.PersistentClient(path=f"./{path}")
collection = client.get_or_create_collection(f"{path}")
documents = document
vector_store = ChromaVectorStore(chroma_collection=collection)
raptor_pack = RaptorPack(
documents,
embed_model=OpenAIEmbedding(
model="text-embedding-3-small"
), # used for embedding clusters
llm=OpenAI(model="gpt-3.5-turbo", temperature=0.1), # used for generating summaries
vector_store=vector_store, # used for storage
similarity_top_k=8, # top k for each layer, or overall top-k for collapsed
mode="collapsed", # sets default mode
transformations=[
SentenceSplitter(chunk_size=400, chunk_overlap=50)
], # transformations applied for ingestion
)
query_engine = RetrieverQueryEngine.from_args(raptor_pack.retriever, llm=OpenAI(model="gpt-3.5-turbo",
temperature=0.1))
3条答案
按热度按时间ktca8awb1#
嘿,@sohilbhatia!很高兴再次见到你。😄看起来你又给我们带来了一个有趣的谜题。让我深入研究
raptor_pack
的智慧,我会很快给你带来一些有用的东西。slwdgvem2#
假设您已经创建了一次索引,您可以执行以下操作:
注意,这里传入了一个空列表作为文档。这基本上是一个无操作,所以在需要时运行它是没有问题的。
如果您愿意,也可以直接导入并使用
RaptorRetriever
。nzrxty8p3#
要在Flask应用程序中访问和使用
raptor_pack
变量,而无需重新创建索引或使用全局变量,请考虑将raptor_pack
存储在Flask应用程序上下文中。这种方法确保raptor_pack
只初始化一次,并在整个应用程序中可访问。以下是如何实现这一点:raptor_pack
:raptor_pack
:这种方法利用了Flask的
app_context()
来存储raptor_pack
示例,使其在整个应用程序生命周期中可用,而无需全局变量或在周围传递示例。有关更详细的指导,请参阅Flask documentation on application contexts。
如果您正在考虑直接使用
RaptorRetriever
以获得对索引和检索过程的更多控制,请记住,RaptorPack
为大多数用例提供了简化的高级接口。然而,如果需要超出RaptorRetriever
提供的特定定制,直接使用RaptorRetriever
可能会有所帮助。详细信息
来源
关于Dosu
此响应旨在帮助您节省时间并提高效率。它不是精确的解决方案,而是您自己研究的起点。
帮助我变得更有用!如果这有帮助,请留下一个👍,如果无关紧要,请留下一个👎。