Untitled
@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.text
Leave a Comment