diff --git a/aider/commands.py b/aider/commands.py index 9c9f7d004..d964733e9 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -6,8 +6,8 @@ from pathlib import Path import git -from aider import models, prompts, utils, voice -from aider.help import Help +from aider import models, prompts, voice +from aider.help import Help, install_help_extra from aider.llm import litellm from aider.scrape import Scraper from aider.utils import is_image_file @@ -662,17 +662,7 @@ class Commands: from aider.coders import Coder if not self.help: - pip_install_cmd = [ - "aider-chat[hf-embed]", - "--extra-index-url", - "https://download.pytorch.org/whl/cpu", - ] - res = utils.check_pip_install_extra( - self.io, - "llama_index.embeddings.huggingface", - "To use interactive /help you need to install HuggingFace embeddings", - pip_install_cmd, - ) + res = install_help_extra(self.io) if not res: self.io.tool_error("Unable to initialize interactive help.") return diff --git a/aider/help.py b/aider/help.py index 41fba92a1..24c549099 100755 --- a/aider/help.py +++ b/aider/help.py @@ -6,13 +6,28 @@ from pathlib import Path import importlib_resources -from aider import __version__ +from aider import __version__, utils from aider.dump import dump # noqa: F401 from aider.help_pats import exclude_website_pats warnings.simplefilter("ignore", category=FutureWarning) +def install_help_extra(io): + pip_install_cmd = [ + "aider-chat[hf-embed]", + "--extra-index-url", + "https://download.pytorch.org/whl/cpu", + ] + res = utils.check_pip_install_extra( + io, + "llama_index.embeddings.huggingface", + "To use interactive /help you need to install HuggingFace embeddings", + pip_install_cmd, + ) + return res + + def get_package_files(): for path in importlib_resources.files("aider.website").iterdir(): if path.is_file(): @@ -88,7 +103,7 @@ def get_index(): class Help: - def __init__(self, pip_install=False): + def __init__(self): from llama_index.core import Settings from llama_index.embeddings.huggingface import HuggingFaceEmbedding diff --git a/aider/tests/test_help.py b/aider/tests/test_help.py index 102160b84..667170b29 100644 --- a/aider/tests/test_help.py +++ b/aider/tests/test_help.py @@ -1,11 +1,13 @@ import unittest -from aider.help import Help +from aider.help import Help, install_help_extra +from aider.io import InputOutput class TestHelp(unittest.TestCase): def setUp(self): - Help(pip_install=True) + io = InputOutput(yes=True) + install_help_extra(io) def test_init(self): help_inst = Help() diff --git a/aider/utils.py b/aider/utils.py index 2d80c84f2..2aef5eff2 100644 --- a/aider/utils.py +++ b/aider/utils.py @@ -236,7 +236,7 @@ def check_pip_install_extra(io, module, prompt, pip_install_cmd): cmd = get_pip_install(pip_install_cmd) - text = f"{prompt}:\n\n{' '.join(cmd)}\n\n" + text = f"{prompt}:\n\n{' '.join(cmd)}\n" io.tool_error(text) if not io.confirm_ask("Run pip install?", default="y"):