from langchain.tools import tool from langchain_core.messages import SystemMessage, HumanMessage from langchain_openai import ChatOpenAI from core.messages import attachmentHandler from utils.prompt_manager import prompt_mgmt audio_model = ChatOpenAI(model="gpt-4o-audio-preview") @tool def query_audio(question: str, file_reference: str) -> str: """ Tool to answer questions based on the audio file identified by the provided file reference :param question: Question to be answered :param file_reference: file reference :return: the answer to the given question """ sys_msg = SystemMessage(content=prompt_mgmt.render_template("audio_evaluation", [])) content_bytes = attachmentHandler.fetch_file_from_reference(file_reference) content = [{"type": "text", "text": question}, attachmentHandler.get_representation("audio", content_bytes, "mp3", None)] message = [HumanMessage(content=content)] try: response = audio_model.invoke([sys_msg] + message) return response except Exception as e: print("Exception while invoking audio tool")