Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(util): added gptme-util prompts workspace/git/journal helper commands #271

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion gptme/prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,8 @@ def prompt_timeinfo() -> Generator[Message, None, None]:
def get_workspace_prompt(workspace: Path) -> str:
# NOTE: needs to run after the workspace is initialized (i.e. initial prompt is constructed)
# TODO: update this prompt if the files change
# TODO: include `git status/diff/log` summary, and keep it up-to-date
# TODO: include workspace structure from gptme.util.cli.prompts_workspace
# TODO: include git summary from gptme.util.cli.prompts_git
if project := get_project_config(workspace):
files = []
for file in project.files:
Expand Down
26 changes: 6 additions & 20 deletions gptme/util/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
from ..logmanager import LogManager
from ..message import Message
from ..tools.chats import list_chats
from .cli_context import context as context_group

logger = logging.getLogger(__name__)


@click.group()
Expand All @@ -23,6 +26,9 @@ def main(verbose: bool = False):
logging.getLogger().setLevel(logging.DEBUG)


main.add_command(context_group)


@main.group()
def chats():
"""Commands for managing chat logs."""
Expand Down Expand Up @@ -100,26 +106,6 @@ def tokens_count(text: str | None, model: str, file: str | None):
print(f"Token count ({model}): {len(tokens)}")


@main.group()
def context():
"""Commands for context generation."""
pass


@context.command("generate")
@click.argument("path", type=click.Path(exists=True))
def context_generate(path: str):
"""Index a file or directory for context retrieval."""
from ..tools.rag import init, rag_index # fmt: skip

# Initialize RAG
init()

# Index the file/directory
n_docs = rag_index(path)
print(f"Indexed {n_docs} documents")


@main.group()
def tools():
"""Tool-related utilities."""
Expand Down
Loading
Loading