mirror of
https://github.com/VectifyAI/PageIndex.git
synced 2026-06-12 19:55:17 +02:00
fix(filesystem): stream pifs chat by default
This commit is contained in:
parent
e074bf1765
commit
3625a592f2
2 changed files with 50 additions and 4 deletions
|
|
@ -61,13 +61,14 @@ def _add_agent_arguments(
|
|||
parser: argparse.ArgumentParser,
|
||||
*,
|
||||
workspace_default: str | None,
|
||||
default_stream_mode: str,
|
||||
) -> None:
|
||||
parser.add_argument("--workspace", default=workspace_default)
|
||||
parser.add_argument("--env-file", default=None)
|
||||
parser.add_argument("--model", default=_agent_model_default())
|
||||
parser.add_argument(
|
||||
"--stream-mode",
|
||||
default="off",
|
||||
default=default_stream_mode,
|
||||
choices=AGENT_STREAM_MODE_CHOICES,
|
||||
)
|
||||
parser.add_argument("--max-turns", type=int, default=20)
|
||||
|
|
@ -89,12 +90,17 @@ def _parse_agent_command(
|
|||
argv: list[str],
|
||||
*,
|
||||
workspace_default: str | None,
|
||||
default_stream_mode: str,
|
||||
) -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser(
|
||||
prog=f"pifs {command_name}",
|
||||
description=f"PageIndex FileSystem {command_name}",
|
||||
)
|
||||
_add_agent_arguments(parser, workspace_default=workspace_default)
|
||||
_add_agent_arguments(
|
||||
parser,
|
||||
workspace_default=workspace_default,
|
||||
default_stream_mode=default_stream_mode,
|
||||
)
|
||||
if command_name == "ask":
|
||||
parser.add_argument("question", nargs=argparse.REMAINDER)
|
||||
args = parser.parse_args(argv)
|
||||
|
|
@ -122,7 +128,12 @@ def _agent_kwargs(args: argparse.Namespace) -> dict[str, object]:
|
|||
|
||||
|
||||
def _run_ask(argv: list[str], *, workspace_default: str | None) -> int:
|
||||
args = _parse_agent_command("ask", argv, workspace_default=workspace_default)
|
||||
args = _parse_agent_command(
|
||||
"ask",
|
||||
argv,
|
||||
workspace_default=workspace_default,
|
||||
default_stream_mode="off",
|
||||
)
|
||||
question_tokens = [token for token in args.question if token != "--"]
|
||||
question = " ".join(question_tokens).strip()
|
||||
if not question:
|
||||
|
|
@ -134,7 +145,12 @@ def _run_ask(argv: list[str], *, workspace_default: str | None) -> int:
|
|||
|
||||
|
||||
def _run_chat(argv: list[str], *, workspace_default: str | None) -> int:
|
||||
args = _parse_agent_command("chat", argv, workspace_default=workspace_default)
|
||||
args = _parse_agent_command(
|
||||
"chat",
|
||||
argv,
|
||||
workspace_default=workspace_default,
|
||||
default_stream_mode="all",
|
||||
)
|
||||
filesystem = _filesystem_from_workspace(args.workspace)
|
||||
while True:
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -146,3 +146,33 @@ def test_cli_chat_runs_one_question_and_exits(monkeypatch, capsys, tmp_path):
|
|||
assert filesystem.workspace == workspace
|
||||
assert question == "Summarize the workspace"
|
||||
assert kwargs["model"] == "test-model"
|
||||
assert kwargs["stream_mode"] == "all"
|
||||
|
||||
|
||||
def test_cli_chat_stream_mode_can_be_overridden(monkeypatch, tmp_path):
|
||||
from pageindex.filesystem import cli
|
||||
|
||||
workspace = tmp_path / "workspace"
|
||||
inputs = iter(["Summarize the workspace", "exit"])
|
||||
agent_calls = []
|
||||
|
||||
def fake_run_pifs_agent(filesystem, question, **kwargs):
|
||||
agent_calls.append((filesystem, question, kwargs))
|
||||
return f"answer:{question}"
|
||||
|
||||
monkeypatch.setattr(cli, "PageIndexFileSystem", FakeFileSystem)
|
||||
monkeypatch.setattr(cli, "run_pifs_agent", fake_run_pifs_agent)
|
||||
monkeypatch.setattr("builtins.input", lambda prompt="": next(inputs))
|
||||
|
||||
status = cli.main(
|
||||
[
|
||||
"chat",
|
||||
"--workspace",
|
||||
str(workspace),
|
||||
"--stream-mode",
|
||||
"tools",
|
||||
]
|
||||
)
|
||||
|
||||
assert status == 0
|
||||
assert agent_calls[0][2]["stream_mode"] == "tools"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue