omidk414's picture
Update app.py
c2eb9c8 verified
import os
import gradio as gr
import numpy as np
import tensorflow as tf
from transformers import pipeline
from dotenv import load_dotenv
import nltk
# Load environment variables from .env file
load_dotenv()
hf_api_key = os.getenv("HUGGING_FACE_KEY")
# Initialize Hugging Face Text Generation Pipeline
llama_model = "meta-llama/Meta-Llama-3.1-8B-Instruct"
text_generator = pipeline("text-generation", model=llama_model, use_auth_token=hf_api_key)
# Load the TensorFlow model
model = tf.keras.models.load_model("resume_generator_model.h5")
# Define helper functions
def enhance_with_huggingface(resume_text, job_title):
"""Generate enhanced resume content using Llama."""
prompt = f"Enhance the following resume for the job title '{job_title}': {resume_text}"
response = text_generator(prompt, max_length=500, num_return_sequences=1)
return response[0]['generated_text']
def enhance_with_local_model(resume_text, job_title):
"""Generate enhancements using local TensorFlow model."""
# Placeholder example: Use some custom logic for enhancement based on the local model.
sample_input = np.array([[len(resume_text.split()), len(job_title.split())]])
enhancement_score = model.predict(sample_input)
return f"Enhanced (Local Model) - Score: {enhancement_score[0][0]:.2f}"
# Define the function to handle resume enhancements
def enhance_resume(uploaded_resume, job_title):
"""Main enhancement function."""
# Extract text from the uploaded file
resume_text = uploaded_resume.read().decode('utf-8')
# Use both models for enhancements
llama_enhanced_resume = enhance_with_huggingface(resume_text, job_title)
local_enhanced_resume = enhance_with_local_model(resume_text, job_title)
# Combine results from both models
enhanced_resume = f"{llama_enhanced_resume}\n\n{local_enhanced_resume}"
return enhanced_resume
# Create a Gradio interface
inputs = [
gr.inputs.File(label="Upload your Resume (TXT)", type="file"),
gr.inputs.Textbox(label="Job Title", placeholder="e.g., Data Scientist"),
]
outputs = gr.outputs.Textbox(label="Enhanced Resume")
# Create a Gradio Interface
app = gr.Interface(
fn=enhance_resume,
inputs=inputs,
outputs=outputs,
title="Resume Enhancer",
description="Enhance your resume based on the given job title using AI models.",
)
# Run the app
if __name__ == "__main__":
app.launch()