Spaces:
Runtime error
Runtime error
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| import torch | |
| import pandas as pd | |
| import streamlit as st | |
| # Tu token secreto de Hugging Face | |
| huggingface_token = st.secrets["HUGGINGFACEHUB_API_TOKEN"] | |
| # Cargar el modelo y tokenizer | |
| model_name = "meta-llama/Llama-3.1-8B-Instruct" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name, token=huggingface_token) | |
| model = AutoModelForCausalLM.from_pretrained(model_name, token=huggingface_token, torch_dtype=torch.float16) | |
| # Usar Streamlit para cargar el archivo CSV | |
| uploaded_file = st.file_uploader("Por favor sube un archivo CSV:", type="csv") | |
| if uploaded_file is not None: | |
| df = pd.read_csv(uploaded_file) | |
| if 'job_title' not in df.columns: | |
| st.error("El archivo CSV debe contener una columna llamada 'job_title'.") | |
| else: | |
| job_title = df['job_title'].tolist() | |
| job_title_text = "\n".join(f"- {title}" for title in job_title) | |
| user_query = st.text_input("Introduce tu query:") | |
| if user_query: | |
| prompt = f""" | |
| You are an advanced AI assistant trained to process job titles and user queries. I will provide you with a list of job titles, and a user query. Your task is to: | |
| 1. Calculate the cosine similarity score between the query and each job title. | |
| 2. Rank the job titles from the most similar to the least similar based on their semantic meaning. | |
| 3. Return the top 5 job titles with their cosine similarity scores. | |
| Here is the list of job titles from the CSV: | |
| {job_title_text} | |
| The user's query is: "{user_query}" | |
| Now, compute the similarity scores, rank the job titles, and return the top 5. | |
| """ | |
| inputs = tokenizer(prompt, return_tensors="pt") | |
| try: | |
| with torch.no_grad(): | |
| outputs = model.generate(**inputs, max_new_tokens=200) | |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| if response: | |
| st.write(response) | |
| else: | |
| st.error("No se generó ninguna respuesta.") | |
| except Exception as e: | |
| st.error(f"Error al generar la respuesta: {e}") | |
| # Limpiar memoria después de la inferencia | |
| torch.cuda.empty_cache() # Si estás usando una GPU | |