mirror of
https://github.com/hwchase17/langchain
synced 2024-11-10 01:10:59 +00:00
40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
|
from typing import Optional, Type
|
||
|
|
||
|
from langchain.callbacks.manager import (
|
||
|
AsyncCallbackManagerForToolRun,
|
||
|
CallbackManagerForToolRun,
|
||
|
)
|
||
|
from langchain.pydantic_v1 import BaseModel, Field
|
||
|
from langchain.tools import BaseTool
|
||
|
|
||
|
response = (
|
||
|
"Create a final answer that says if they "
|
||
|
"have any questions about movies or actors"
|
||
|
)
|
||
|
|
||
|
|
||
|
class SmalltalkInput(BaseModel):
|
||
|
query: Optional[str] = Field(description="user query")
|
||
|
|
||
|
|
||
|
class SmalltalkTool(BaseTool):
|
||
|
name = "Smalltalk"
|
||
|
description = "useful for when user greets you or wants to smalltalk"
|
||
|
args_schema: Type[BaseModel] = SmalltalkInput
|
||
|
|
||
|
def _run(
|
||
|
self,
|
||
|
query: Optional[str] = None,
|
||
|
run_manager: Optional[CallbackManagerForToolRun] = None,
|
||
|
) -> str:
|
||
|
"""Use the tool."""
|
||
|
return response
|
||
|
|
||
|
async def _arun(
|
||
|
self,
|
||
|
query: Optional[str] = None,
|
||
|
run_manager: Optional[AsyncCallbackManagerForToolRun] = None,
|
||
|
) -> str:
|
||
|
"""Use the tool asynchronously."""
|
||
|
return response
|