Add a StdIn "Interaction" Tool (#1193)

Lets a chain prompt the user for more input as a part of its execution.
This commit is contained in:
William FH 2023-02-20 18:40:02 -08:00 committed by GitHub
parent 0118706fd6
commit 13ba0177d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 0 deletions

View File

@ -0,0 +1 @@
"""Tools for interacting with the user."""

View File

@ -0,0 +1,22 @@
"""Tools for interacting with the user."""
from langchain.tools.base import BaseTool
class StdInInquireTool(BaseTool):
"""Tool for asking the user for input."""
name: str = "Inquire"
description: str = (
"useful if you do not have enough information to"
" effectively use other tools. Input is best as a clarifying"
" question (to disambiguate) or a request for more context."
)
def _run(self, prompt: str) -> str:
"""Prompt the user for more input."""
return input(f"\n{prompt}")
async def _arun(self, query: str) -> str:
raise NotImplementedError(f"{self.__class__.__name__} does not support async")