import whisper from langchain_openai import ChatOpenAI from langchain_core.prompts import PromptTemplate from src.agents.CallState import CallState class TranscriptionAgent: def __init__(self): self.llm = ChatOpenAI(model="gpt-4o", temperature=0) def __call__(self, state: CallState) -> CallState: """Converts audio to text using whisper.""" file_path = state["file_path"] # Load whisper model - using 'base' for faster processing model = whisper.load_model("base") result = model.transcribe(file_path) state["content"] = result["text"] # Clean the transcript prompt = PromptTemplate.from_template( "Clean the following text of any profanity and fix basic grammatical errors. Return only the clean text:\n{text}" ) chain = prompt | self.llm clean_text = chain.invoke({"text": state["content"]}).content state["clean_content"] = clean_text return state