Prueba_2 / app.py
JaphetHernandez's picture
Update app.py
b2a494b verified
raw
history blame
3.86 kB
import pandas as pd
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.llms import HuggingFaceHub
from transformers import LlamaForCausalLM, AutoTokenizer
from huggingface_hub import login
import streamlit as st
import sys
# Inicialización de Hugging Face con el token de la API desde los secretos de Streamlit
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"])
if uploaded_file:
df = pd.read_csv(uploaded_file)
st.dataframe(df)
# Ingreso del query
query = "aspiring human resources specialist"
# Crear un modelo LLaMA
model_name = "meta-llama/Llama-2-7b"
modelo = LlamaForCausalLM.from_pretrained(model_name)
try:
# Usar AutoTokenizer para manejar automáticamente el tokenizador adecuado
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True)
print("Tokenizador cargado con éxito.")
except Exception as e:
print(f"Error al cargar el tokenizador: {e}")
sys.exit(1)
# Crear un prompt para la cadena LLM
prompt_template = PromptTemplate(
input_variables=["query", "texto"],
template=(
"Calcular el cosine similarity score entre '{query}' y '{texto}'. "
"Responde con el score como un valor numérico entre 0 y 1."
)
)
# Crear una cadena LLM con LangChain usando HuggingFaceHub y pasar el token
llm = HuggingFaceHub(repo_id=model_name, huggingfacehub_api_token=huggingface_token)
chain = LLMChain(llm=llm, prompt=prompt_template)
def calcular_similitud(texto):
resultado = chain.run({"query": query, "texto": texto})
return float(resultado)
# Calcular la similitud para cada job title
df['Score'] = df['job_title'].apply(calcular_similitud)
# Reportar los resultados
st.write(df)
else:
st.write("No se ha subido un archivo")
'''
import pandas as pd
from langchain.chains import LLMChain
from langchain_huggingface import HuggingFacePipeline
from transformers import LlamaForCausalLM, AutoTokenizer
from langchain.llms import HuggingFaceHub
from huggingface_hub import login
import streamlit as st
import sys
# Inicialización de Hugging Face
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"])
if uploaded_file:
df = pd.read_csv(uploaded_file)
st.dataframe(df)
# Ingreso del query
query = "aspiring human resources specialist"
# Crear un modelo LLaMA
model_name = "meta-llama/Llama-3.2-1B" # Usa un nombre de modelo válido en Hugging Face
modelo = LlamaForCausalLM.from_pretrained(model_name)
try:
# Usar AutoTokenizer para manejar automáticamente el tokenizador adecuado
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True)
print("Tokenizador cargado con éxito.")
except Exception as e:
print(f"Error al cargar el tokenizador: {e}")
sys.exit(1)
# Crear una cadena LLM con LangChain usando HuggingFaceHub
llm = HuggingFaceHub(repo_id=model_name, model_kwargs={"device_map": "auto"}, huggingfacehub_api_token=huggingface_token)
chain = LLMChain(llm=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
st.write(df)
else:
st.write("No se ha subido un archivo")
'''