from huggingface_hub import InferenceClient from resume import data import markdowm as md import gradio as gr import base64 import datetime client = InferenceClient("meta-llama/Meta-Llama-3-8B-Instruct") # Chatbot response function with integrated system message def respond( message, history: list[tuple[str, str]], max_tokens=1024, temperature=0.7, top_p=0.95, ): # System message defining assistant behavior system_message = { "role": "system", "content": f"Act and chat as SARATH to thw user question. SARATH is a professional fresher seeking a job and pursuing Btech-4th year. your name is SARATH." f"Here is about SARATH:```{data}```. You should answer questions based on this information only and other context convey a message that it havent found any info on my knowledge base contact me on linked." f"strictly prohibit the random respons or empty respons and speak in English" } messages = [system_message] # Adding conversation history for val in history: if val[0]: messages.append({"role": "user", "content": val[0]}) if val[1]: messages.append({"role": "assistant", "content": val[1]}) # print(f"{datetime.datetime.now()}::{{'role': 'user', 'content': val[0]}}->{{'role': 'user', 'content': val[1]}}") # Adding the current user input messages.append({"role": "user", "content": message}) response = "" # Streaming the response from the API for message in client.chat_completion( messages, max_tokens=max_tokens, stream=True, temperature=temperature, top_p=top_p, ): token = message.choices[0].delta.content response += token yield response print(f"{datetime.datetime.now()}::{messages[-1]["content"]}->{response}\n") def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode('utf-8') # Encode the images github_logo_encoded = encode_image("Images/github-logo.png") linkedin_logo_encoded = encode_image("Images/linkedin-logo.png") website_logo_encoded = encode_image("Images/ai-logo.png") # Gradio interface with additional sliders for control with gr.Blocks(theme=gr.themes.Ocean(font=[gr.themes.GoogleFont("Roboto Mono")]), css='footer {visibility: hidden}') as main: gr.Markdown(md.title) with gr.Tabs(): with gr.TabItem("Resume", visible=True, interactive=True): gr.Markdown(data) with gr.TabItem("My2.0", visible=True, interactive=True): gr.ChatInterface(respond, chatbot=gr.Chatbot(height=500), examples=["Tell me about yourself", 'Can you walk me through some of your recent projects and explain the role you played in each?', "What specific skills do you bring to the table that would benefit our company's AI/ML initiatives?", "How do you stay updated with the latest trends and advancements in AI and Machine Learning?", ] ) gr.Markdown(md.description) gr.HTML(md.footer.format(github_logo_encoded, linkedin_logo_encoded, website_logo_encoded)) if __name__ == "__main__": main.launch(share=True)