GAS17 commited on
Commit
a1c0c91
·
verified ·
1 Parent(s): 2b91200

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import openai
3
+
4
+ openai.api_key = "YOUR_OPENAI_API_KEY"
5
+
6
+ contexto = """
7
+ - Eres Citrino especializado en Dron, un asistente de voz amigable y servicial que hablas español, del Rio de la Plata. Hablar de manera informal -
8
+ Responde brevemente a la solicitud del usuario y no proporciones información innecesaria. -
9
+ Si no entiendes la solicitud del usuario, pide aclaración. Usar espacios entre oraciones, emplear listas, no usar emojis ni otro formato en tus respuestas.
10
+ Responde de manera que sea fácil de leer por software de texto a voz.
11
+ Unicamente responde a lo relacionado al dron, a la información de la ventana de contexto. Prohibido hablar de algun otro tema.
12
+ Sugerir siempre algo mas relacionado al tema, la continuacion del tema especifico. Entender el contexto para incentivar el intercambio.
13
+ En la primera interacción tienes que saludar a Gastón.
14
+
15
+ CONCEPTOS BÁSICOS UAS, RPAS, drone o aeromodelo Se usan diferentes términos para referirnos a las aeronaves no tripuladas, pero ¿qué diferencias hay entre ellos? • Aeronave no tripulada o RPA (Remotely Piloted Aircraft) Cualquier aeronave que opere o esté diseñada para operar de forma autónoma o para ser pilotada a distancia sin un piloto a bordo. este RPA, es también llamado DAOD por DINACIA (Dispositivo aéreo operado a distancia)) • Dron (drone en inglés) Palabra coloquialmente usada para referirse en general a todas las aeronaves no tripuladas, debido a su similitud con un zumbido de Abejorro es otra forma de nombrar a los RPA • Aeromodelo Aeronave de tamaño reducido pilotado a distancia usada principalmente para vuelos deportivos o experimentales. también puede ser un RPA • RPAS «sistema de aeronave pilotada por control remoto» Aeronave pilotada a distancia, su sistema de vuelo, su estación, los enlaces requeridos de mando y control y cualquier otro componente según lo indicado en el diseño de la aeronave. • UAV « aeronave no tripulada» Aeronave no tripulada, que tiene la capacidad de volar autónomamente y el equipo para controlarla de forma remota. • UAS «Unmanned Aircraft System» El término UAS engloba los RPAS y las aeronaves autónomas es un término más genérico que se refiere a cualquier sistema de aeronaves no tripuladas, incluidos RPAS y UAV. (el piloto a distancia no puede intervenir durante el vuelo). VFR (Visual Flight Rules por sus siglas en inglés) IFR (Instrument Flight Rules por sus siglas en inglés) VMC (Visual Meteorological Conditions) IMC (Instrument Meteorological Conditions) Piloto a distancia Es toda persona física responsable de la conducción segura del vuelo de un UAS mediante la utilización de sus mandos de vuelo, ya sea manualmente o, cuando la aeronave vuele de forma automática, mediante la supervisión de su vuelo (rumbo, velocidad, altura, entorno...), siendo Página 5 capaz de intervenir y cambiar los parámetros de vuelo (rumbo, velocidad y/o altura) en cualquier momento. Operador de UAS Es cualquier persona, física o jurídica, que sea propietaria de un UAS o lo alquile. Una persona puede ser operador y piloto si esa misma persona es quien vuela el UAS. Sin embargo, se puede ser piloto a distancia sin necesidad de ser operador, por ejemplo si el piloto trabaja para una compañía que ofrece servicios con UAS. En aquellos casos en los que un piloto a distancia utiliza un UAS para volar en su tiempo libre, esa persona también es un operador de UAS. DINACIA (Dirección Nacional de Aviación Civil e Infraestructura Aeronáutica) DINACIA es el organismo estatal que vela por el cumplimiento de las normas de aviación civil en el conjunto de la actividad aeronáutica en Uruguay, promueve el desarrollo y aplicación de la legislación aeronáutica para conseguir aportar seguridad, calidad y sostenibilidad al sistema de aviación civil nacional. En caso de incumplimiento de las normas de aviación civil en territorio nacional, DINACIA es quien tiene la potestad sancionadora.
16
+ """
17
+
18
+ def generate_questions():
19
+ prompt = f"Genera 38 preguntas de opción múltiple con 3 opciones cada una y la respuesta correcta, basadas en el siguiente contexto:\n\n{contexto}"
20
+ response = openai.ChatCompletion.create(
21
+ model="gpt-4",
22
+ messages=[
23
+ {"role": "system", "content": "Eres un asistente que ayuda a generar preguntas de opción múltiple."},
24
+ {"role": "user", "content": prompt},
25
+ ],
26
+ )
27
+ questions = response.choices[0].message["content"].strip().split("\n\n")
28
+ return questions
29
+
30
+ def evaluate_answers(questions, user_answers):
31
+ correct_answers = [q.split('\n')[-1].split(': ')[-1] for q in questions]
32
+ results = [user_answers[i] == correct_answers[i] for i in range(len(correct_answers))]
33
+ return results, correct_answers
34
+
35
+ if "questions" not in st.session_state:
36
+ st.session_state.questions = generate_questions()
37
+
38
+ st.title("Evaluación de Drones")
39
+
40
+ form = st.form(key="quiz_form")
41
+ user_answers = []
42
+
43
+ for i, q in enumerate(st.session_state.questions):
44
+ question, *options = q.split('\n')
45
+ form.write(question)
46
+ user_answers.append(form.radio(f"Pregunta {i+1}", options))
47
+
48
+ submit_button = form.form_submit_button(label="Enviar respuestas")
49
+
50
+ if submit_button:
51
+ results, correct_answers = evaluate_answers(st.session_state.questions, user_answers)
52
+ st.write("Resultados:")
53
+ for i, result in enumerate(results):
54
+ st.write(f"Pregunta {i+1}: {'Correcta' if result else 'Incorrecta'} (Respuesta correcta: {correct_answers[i]})")
55
+
56
+ if st.button("Generar nuevas preguntas"):
57
+ st.session_state.questions = generate_questions()
58
+ st.experimental_rerun()