rogarces85 commited on
Commit
6de5251
1 Parent(s): 074db72

Primera Prueba

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -0
  2. a_env_vars.py +1 -0
  3. b_backend.py +33 -0
  4. c_front_end.py +48 -0
  5. ecommerce.db +3 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ ecommerce.db filter=lfs diff=lfs merge=lfs -text
a_env_vars.py ADDED
@@ -0,0 +1 @@
 
 
1
+ OPENAI_API_KEY = ''
b_backend.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 1. Cargar la bbdd con langchain
2
+ from langchain.sql_database import SQLDatabase
3
+ db = SQLDatabase.from_uri("sqlite:///ecommerce.db")
4
+
5
+ # 2. Importar las APIs
6
+ import a_env_vars
7
+ import os
8
+ os.environ["OPENAI_API_KEY"] = a_env_vars.OPENAI_API_KEY
9
+
10
+ # 3. Crear el LLM
11
+ from langchain.chat_models import ChatOpenAI
12
+ llm = ChatOpenAI(temperature=0,model_name='gpt-3.5-turbo')
13
+
14
+ # 4. Crear la cadena
15
+ from langchain import SQLDatabaseChain
16
+ cadena = SQLDatabaseChain(llm = llm, database = db, verbose=False)
17
+
18
+ # 5. Formato personalizado de respuesta
19
+ formato = """
20
+ Data una pregunta del usuario:
21
+ 1. crea una consulta de sqlite3
22
+ 2. revisa los resultados
23
+ 3. devuelve el dato
24
+ 4. si tienes que hacer alguna aclaraci贸n o devolver cualquier texto que sea siempre en espa帽ol
25
+ #{question}
26
+ """
27
+
28
+ # 6. Funci贸n para hacer la consulta
29
+
30
+ def consulta(input_usuario):
31
+ consulta = formato.format(question = input_usuario)
32
+ resultado = cadena.run(consulta)
33
+ return(resultado)
c_front_end.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #lanzar con streamlit run c_front_end.py en el terminal
2
+
3
+ import b_backend
4
+ import streamlit as st
5
+ from streamlit_chat import message
6
+
7
+ st.title("App No Moleste Usuario de Negocio")
8
+ st.write("Puedes hacerme a mi todas las preguntas y dejar trabajar al equipo de Data Science!!")
9
+
10
+ if 'preguntas' not in st.session_state:
11
+ st.session_state.preguntas = []
12
+ if 'respuestas' not in st.session_state:
13
+ st.session_state.respuestas = []
14
+
15
+ def click():
16
+ if st.session_state.user != '':
17
+ pregunta = st.session_state.user
18
+ respuesta = b_backend.consulta(pregunta)
19
+
20
+ st.session_state.preguntas.append(pregunta)
21
+ st.session_state.respuestas.append(respuesta)
22
+
23
+ # Limpiar el input de usuario despu茅s de enviar la pregunta
24
+ st.session_state.user = ''
25
+
26
+
27
+ with st.form('my-form'):
28
+ query = st.text_input('驴En qu茅 te puedo ayudar?:', key='user', help='Pulsa Enviar para hacer la pregunta')
29
+ submit_button = st.form_submit_button('Enviar',on_click=click)
30
+
31
+ if st.session_state.preguntas:
32
+ for i in range(len(st.session_state.respuestas)-1, -1, -1):
33
+ message(st.session_state.respuestas[i], key=str(i))
34
+
35
+ # Opci贸n para continuar la conversaci贸n
36
+ continuar_conversacion = st.checkbox('Quieres hacer otra pregunta?')
37
+ if not continuar_conversacion:
38
+ st.session_state.preguntas = []
39
+ st.session_state.respuestas = []
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
ecommerce.db ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:341b49965b58af6830aceddd150efb3fa9d977a8294275cb7e93664697a31138
3
+ size 100397056