Untitled
unknown
plain_text
a year ago
2.1 kB
11
Indexable
@tool
def meeting_invite_tool(user_query, state: Annotated[dict, InjectedState], config: RunnableConfig) -> str:
"""
Tool that creates a meeting link if requested by the user
Args:
user_query: The user query request for creating a meeting with 1 or more participants.
"""
llm=model_categories["l"]
user_to_email = config["configurable"]["user_to_email"]
output = [SystemMessage(content=f"""
"""
)]
response = llm.invoke(output)
if response.get("data_issues",True):
return response["data_issues"]
access_token=config["configurable"]["access_token"]
meeting_start = response.get("meeting_start", datetime.now(pytz.utc)).isoformat()
meeting_end = response.get("meeting_end", meeting_start + timedelta(hours=1)).isoformat()
attendees=response["attendees"]
meeting_subject_email=response.get("email_subject",f"Meeting link: {meeting_start}-{meeting_end}")
meeting_body_email=response.get("email_body",f"Meeting link: {meeting_start}-{meeting_end}")
#API calls
outlook_details_of_user_url = f"{storage_api_url}/outlook/list-connected-outlook-accounts"
outlook_details_of_user_data = requests.request("GET", outlook_details_of_user_url, headers={'Authorization': f"{access_token}"})
user_account_details = outlook_details_of_user_data.get("accounts", [])
user_outlook_account_id= user_account_details ("outlook_account_id","") if user_account_details else ""
meeting_details_url= f"{storage_api_url}/outlook/meeting-invite"
meeting_details_payload={
"account_id": user_outlook_account_id,
"reply_content": meeting_body_email,
"attendees": attendees,
"from_date": meeting_start,
"to_date": meeting_end,
"subject": meeting_subject_email
}
meeting_request_api= requests.request("POST", meeting_details_url, headers={'Authorization': f"{access_token}"}, data=meeting_details_payload)
return meeting_request_api.textEditor is loading...
Leave a Comment