File size: 1,470 Bytes
e5dc2b1
a2dda53
9719344
13dc018
a264f9f
e5dc2b1
15fed86
e5dc2b1
15fed86
e5dc2b1
 
15fed86
 
494e223
e5dc2b1
 
15fed86
d80452a
e5dc2b1
 
9ff8e8c
 
90c9dd2
 
 
 
 
 
e5dc2b1
a264f9f
 
e5dc2b1
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import pandas as pd
from langchain.chains import LLMChain
from langchain_huggingface import HuggingFacePipeline
from transformers import LlamaForCausalLM, LlamaTokenizer, pipeline
from langchain.llms import HuggingFaceHub#HuggingFaceLLM
from huggingface_hub import login
import streamlit as st

huggingface_token = st.secrets["SECRET"]
login(huggingface_token)
# Cargar el archivo CSV
uploaded_file = st.file_uploader("Sube un archivo CSV con la columna 'job_title':", type=["csv"])
df = pd.read_csv(uploaded_file)
st.write(df)

# Ingreso del query
query = "aspiring human resources specialist"


# Crear un modelo LLaMA
model_name = "meta-llama/Llama-3.2-1B"
modelo = LlamaForCausalLM.from_pretrained(model_name)
try:
    tokenizer = LlamaTokenizer.from_pretrained(model_id, force_download=True)
    print("Vocab file:", tokenizer.vocab_file)  # Depurar el archivo de vocabulario
except Exception as e:
    print(f"Error al cargar el tokenizador: {e}")
    
# Crear una cadena LLM con LangChain
llm = HuggingFaceHub(modelo, tokenizer)
#llm = HuggingFaceLLM(modelo, tokenizer)
chain = LLMChain(llm)

def calcular_similitud(texto):
    prompt = f"Calcular el cosine similarity score entre '{query}' y '{texto}'. Responde con el score como un valor numérico entre 0 y 1."
    resultado = chain.run(prompt)
    return float(resultado)

# Calcular la similitud para cada job title
df['Score'] = df['job_title'].apply(calcular_similitud)

# Reportar los resultados
print(df)