JaphetHernandez commited on
Commit
bec3852
·
verified ·
1 Parent(s): 33bb252

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -40
app.py CHANGED
@@ -1,47 +1,42 @@
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
  import pandas as pd
3
+ import streamlit as st
4
+ from langchain.llms import Llama
5
+ from huggingface_hub import login
6
 
7
+ # Tu token secreto de Hugging Face
8
+ huggingface_token = st.secrets["HUGGINGFACEHUB_API_TOKEN"]
9
+ login(huggingface_token)
10
 
11
+ # Cargar el modelo Llama 3.1
12
+ model_name = "meta-llama/llama-3.1-8b-instruct" # Asegúrate de que este sea el nombre correcto del modelo
13
+ llm = Llama(model_name=model_name, torch_dtype=torch.float16)
14
+
15
+ # Interfaz de Streamlit
16
+ st.title("Cosine Similarity con Llama 3.1")
17
+
18
+ # Subida de archivo CSV
19
+ uploaded_file = st.file_uploader("Sube un archivo CSV", type=["csv"])
20
  if uploaded_file is not None:
21
  # Leer el archivo CSV
22
  df = pd.read_csv(uploaded_file)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
+ # Solicitar un query al usuario
25
+ query = st.text_input("Por favor ingresa tu consulta:")
26
+
27
+ if query:
28
+ # Crear el prompt para calcular la similitud del coseno
29
+ prompt = f"""
30
+ Con la columna 'job_title' del csv, tiene que calcular los cosine similarity score entre cada registro y el query,
31
+ tiene que crear una columna nueva 'Score' con dichos scores y además tiene que ordenar los registros de mayor a menor valor de 'Score'.
32
+ El query es: {query}
33
+ """
34
+
35
+ # Llamar al modelo Llama con el prompt
36
+ response = llm(prompt)
37
+
38
+ # Mostrar la respuesta del modelo
39
+ st.write("Respuesta del modelo:", response)
40
+
41
+ # Aquí puedes procesar la respuesta para extraer los scores y ordenar los registros
42
+ # Esto asume que el modelo te devuelve una respuesta estructurada en un formato que puedes procesar