aboutsummaryrefslogtreecommitdiff
path: root/autogpts/autogpt/autogpt/commands/user_interaction.py
blob: bd4dd639ceb73af16eaeb12bb3193f3554947f51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""Commands to interact with the user"""

from __future__ import annotations

from autogpt.agents.agent import Agent
from autogpt.app.utils import clean_input
from autogpt.command_decorator import command
from autogpt.core.utils.json_schema import JSONSchema

COMMAND_CATEGORY = "user_interaction"
COMMAND_CATEGORY_TITLE = "User Interaction"


@command(
    "ask_user",
    (
        "If you need more details or information regarding the given goals,"
        " you can ask the user for input"
    ),
    {
        "question": JSONSchema(
            type=JSONSchema.Type.STRING,
            description="The question or prompt to the user",
            required=True,
        )
    },
    enabled=lambda config: not config.noninteractive_mode,
)
async def ask_user(question: str, agent: Agent) -> str:
    print(f"\nQ: {question}")
    resp = clean_input(agent.legacy_config, "A:")
    return f"The user's answer: '{resp}'"