JaphetHernandez commited on
Commit
1860099
·
verified ·
1 Parent(s): bb4b951

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -23
app.py CHANGED
@@ -1,34 +1,47 @@
1
- import torch
2
- import pandas as pd
3
  import streamlit as st
4
- import transformers
5
- from transformers import AutoModelForCausalLM, AutoTokenizer
6
- from huggingface_hub import login
7
-
8
- # Tu token secreto de Hugging Face
9
- huggingface_token = st.secrets["HUGGINGFACEHUB_API_TOKEN"]
10
- login(huggingface_token)
11
 
12
- # Solicitar la subida de un archivo CSV
13
  uploaded_file = st.file_uploader("Sube un archivo CSV", type=["csv"])
14
 
15
  if uploaded_file is not None:
16
- # Leer el archivo CSV y mostrar una vista previa
17
  df = pd.read_csv(uploaded_file)
18
  st.write("Vista previa del archivo CSV:", df.head())
19
 
20
- model_name = "meta-llama/llama-3.1-8b-instruct" # Reemplaza con el modelo que quieras usar
21
- model = AutoModelForCausalLM.from_pretrained(model_name, token=huggingface_token, torch_dtype=torch.float16)
22
- tokenizer = AutoTokenizer.from_pretrained(model_name, token=huggingface_token)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- # Solicita un query al usuario
25
- query = st.text_input("Por favor ingresa tu consulta:")
26
 
27
- if query:
28
- # Tokeniza el input y genera una respuesta
29
- inputs = tokenizer(query, return_tensors="pt")
30
- outputs = model.generate(**inputs)
31
 
32
- # Decodifica y muestra la respuesta
33
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
34
- st.write("Respuesta del modelo:", response)
 
 
 
1
  import streamlit as st
2
+ import pandas as pd
3
+ from langchain.prompts import PromptTemplate
4
+ from langchain.llms import OpenAI
 
 
 
 
5
 
6
+ # Cargar archivo CSV
7
  uploaded_file = st.file_uploader("Sube un archivo CSV", type=["csv"])
8
 
9
  if uploaded_file is not None:
10
+ # Leer el archivo CSV
11
  df = pd.read_csv(uploaded_file)
12
  st.write("Vista previa del archivo CSV:", df.head())
13
 
14
+ if 'job_title' in df.columns:
15
+ # Preguntar al usuario por el query
16
+ query = st.text_input("Por favor ingresa tu consulta para calcular similitud de coseno:")
17
+
18
+ if query:
19
+ # Crear el prompt para el modelo, dándole instrucciones detalladas
20
+ prompt_template = """
21
+ Tienes un archivo CSV con la columna 'job_title'. Tu tarea es calcular el puntaje de similitud de coseno entre cada registro de 'job_title' y el siguiente query: '{query}'.
22
+ Necesitas crear una nueva columna 'Score' que contenga los puntajes de similitud para cada registro.
23
+ Luego, debes ordenar los registros de mayor a menor según el valor en la columna 'Score'.
24
+ Devuélveme el DataFrame resultante con los registros ordenados.
25
+ Aquí tienes los datos de la columna 'job_title':
26
+ {job_titles}
27
+ """
28
+
29
+ # Convertir los títulos de trabajo a una lista
30
+ job_titles = df['job_title'].tolist()
31
+
32
+ # Formatear el prompt con el query y los job_titles
33
+ prompt = PromptTemplate(
34
+ template=prompt_template,
35
+ input_variables=["query", "job_titles"]
36
+ ).format(query=query, job_titles=job_titles)
37
+
38
+ # Llamar al modelo de lenguaje usando LangChain y OpenAI
39
+ llm = OpenAI(temperature=0.7) # Llama a GPT u otro LLM
40
+ response = llm(prompt)
41
 
42
+ # Mostrar la respuesta del modelo (el DataFrame procesado)
43
+ st.write("Resultados ordenados por similitud de coseno:", response)
44
 
45
+ else:
46
+ st.warning("El archivo CSV no contiene la columna 'job_title'.")
 
 
47