from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.messages import HumanMessage from langchain_core.messages import AIMessage from langchain.memory import ChatMessageHistory from langchain_openai import AzureChatOpenAI from pypdf import PdfReader import os import gradio as gr chat = AzureChatOpenAI(azure_deployment = "GPT-3") def extract_text( pdf_path): # creating a pdf reader object reader = PdfReader(pdf_path) all_text = "" for page in reader.pages: all_text += page.extract_text() return all_text def get_response( candidate, chat_history, resume, jd): resume = extract_text(resume.name) jd = extract_text(jd.name) prompt = ChatPromptTemplate.from_messages( [ ( "system", """Your Task is Perform as intelligent interviewer, Your Task is ask question to the resume's candidate by following candidate Answer. at the end exit with greeting to the candidate. **Ask question follow up on the candidate response. get chat history.** """, ), MessagesPlaceholder(variable_name="messages"), ] ) chain = prompt | chat # chat_histroy_prompt = chat_history answer = chain.invoke( { "messages": [ HumanMessage( content=f" job description :{jd}\n Resume :{resume}" ), AIMessage(content=f"""Perform as intelligent interviewer, Your Task is ask question to the resume's candidate by following candidate Answer. chat history : {chat_history}"""), HumanMessage(content=candidate), ], } ) # print("INTERVIEWER :", answer.content) # chat_history.append({"candidate":candidate,"interviewer":answer.content }) result = answer.content chat_history.append((candidate, result)) print("chat_history", chat_history) return "", chat_history def gradio_interface() -> None: """Create a Gradio interface for the chatbot.""" with gr.Blocks(css = "style.css" ,theme="HaleyCH/HaleyCH_Theme") as demo: gr.HTML("""