Spaces:
Sleeping
Sleeping
| from langchain_core.tools import tool | |
| from pydantic import BaseModel, Field | |
| from typing import Literal | |
| class TransferCallArgs(BaseModel): | |
| destination: Literal["sales", "service", "parts"] = Field( | |
| description="The department the call is being transferred to." | |
| ) | |
| def transfer_call(destination: str): | |
| """Transfer the call to a real person or department.""" | |
| return f"Attempting to transfer call to {destination}..." | |
| class LeaveMessageArgs(BaseModel): | |
| first_name: str = Field(description="The first name of the customer leaving the message.") | |
| last_name: str = Field(description="The last name or initial of the customer leaving the message.") | |
| phone_number: str = Field(description="The phone number of the customer, used for sending confirmation and any follow-up information.") | |
| message: str = Field(description="The content of the message left by the customer.") | |
| sms_consent: bool = Field(description="The customer's consent to receive confirmation and further communication via text about their message.") | |
| destination: str = Field(description="The department to which the message is being sent.") | |
| def leave_message( | |
| first_name: str, | |
| last_name: str, | |
| phone_number: str, | |
| message: str, | |
| sms_consent: bool, | |
| destination: str, | |
| ): | |
| """Allows a customer to leave a message for a department.""" | |
| return f"Message for {destination} from {first_name} {last_name} ({phone_number}): '{message}'. SMS consent: {sms_consent}" | |
| class GoToArgs(BaseModel): | |
| destination: Literal["customer_search_function", "service_intermediate"] = Field( | |
| description="The target node to transition to." | |
| ) | |
| def go_to(destination: str): | |
| """Transition to another node in the conversation graph.""" | |
| return f"Transitioning to {destination}..." | |