diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-09-06 20:18:49 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-09-06 20:18:49 -0700 |
commit | d8e821e422678fd4248b472c7f3e67a32ecfefb5 (patch) | |
tree | a66f9a95d90614b1c7a3a606e437de20e1efee44 /continuedev/src/continuedev/core | |
parent | f3a5e0f4197b5d768c873ccdb70eb99812d66efe (diff) | |
download | sncontinue-d8e821e422678fd4248b472c7f3e67a32ecfefb5.tar.gz sncontinue-d8e821e422678fd4248b472c7f3e67a32ecfefb5.tar.bz2 sncontinue-d8e821e422678fd4248b472c7f3e67a32ecfefb5.zip |
fix: :bug: separately load ctx provs, fix filetree
Diffstat (limited to 'continuedev/src/continuedev/core')
-rw-r--r-- | continuedev/src/continuedev/core/context.py | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/continuedev/src/continuedev/core/context.py b/continuedev/src/continuedev/core/context.py index 125ddc23..571e5dc8 100644 --- a/continuedev/src/continuedev/core/context.py +++ b/continuedev/src/continuedev/core/context.py @@ -285,8 +285,6 @@ class ContextManager: await globalSearchIndex.update_filterable_attributes(["workspace_dir"]) async def load_context_provider(provider: ContextProvider): - ti = time.time() - context_items = await provider.provide_context_items(workspace_dir) documents = [ { @@ -299,28 +297,34 @@ class ContextManager: for item in context_items ] if len(documents) > 0: - try: - await asyncio.wait_for( - globalSearchIndex.add_documents(documents), timeout=20 - ) - except asyncio.TimeoutError: - logger.warning( - f"Failed to add documents to meilisearch for context provider {provider.__class__.__name__} in 20 seconds" - ) - return - except Exception as e: - logger.warning( - f"Error adding documents to meilisearch for context provider {provider.__class__.__name__}: {e}" - ) - return + await globalSearchIndex.add_documents(documents) + + return len(documents) + + async def safe_load(provider: ContextProvider): + ti = time.time() + try: + num_documents = await asyncio.wait_for( + load_context_provider(provider), timeout=20 + ) + except asyncio.TimeoutError: + logger.warning( + f"Failed to add documents to meilisearch for context provider {provider.__class__.__name__} in 20 seconds" + ) + return + except Exception as e: + logger.warning( + f"Error adding documents to meilisearch for context provider {provider.__class__.__name__}: {e}" + ) + return tf = time.time() logger.debug( - f"Loaded {len(documents)} documents into meilisearch in {tf - ti} seconds for context provider {provider.title}" + f"Loaded {num_documents} documents into meilisearch in {tf - ti} seconds for context provider {provider.title}" ) tasks = [ - load_context_provider(provider) + safe_load(provider) for _, provider in self.context_providers.items() ] await asyncio.wait_for(asyncio.gather(*tasks), timeout=20) @@ -330,9 +334,11 @@ class ContextManager: if should_retry: await restart_meilisearch() try: - asyncio.wait_for(await poll_meilisearch_running(), timeout=20) + await asyncio.wait_for(poll_meilisearch_running(), timeout=20) except asyncio.TimeoutError: - logger.warning("Meilisearch did not restart in less than 20 seconds. Stopping polling.") + logger.warning( + "Meilisearch did not restart in less than 20 seconds. Stopping polling." + ) await self.load_index(workspace_dir, False) async def select_context_item(self, id: str, query: str): |