Xiaoyue Wang
Update LLM
83b6e89
import gradio as gr
import openai
import os
import random
import json
# Set OpenAI API key
openai.api_key = os.getenv("OPENAI_API_KEY")
def generate_random_turn_data():
"""Generates random flight turn data."""
data_points = []
for point in range(10):
data_points.append({
"Point": point * 36,
"ASI": random.randint(85, 100), # Airspeed Indicator in knots
"AI": "level",
"Heading": random.randint(0, 359), # Heading in degrees
"Turn and Slip": random.choice(["turn needle left", "turn needle right", "centered"]),
"Bank Angle": random.choice([-45, -40, -35, 35, 40, 45]),
"VSI": random.choice([-100, -50, 0, 50, 100]) # Vertical Speed Indicator in feet per minute
})
# Format data for display
input_blocks = ["\n".join([f"{key}: {value}" for key, value in point.items()]) for point in data_points]
return "\n\n".join(input_blocks)
def respond(message, history: list[tuple[str, str]]):
"""Handles chat responses using OpenAI."""
messages = [{"role": "system", "content": "Evaluate the flight turn data"}]
for user_msg, assistant_msg in history:
if user_msg:
messages.append({"role": "user", "content": user_msg})
if assistant_msg:
messages.append({"role": "assistant", "content": assistant_msg})
messages.append({"role": "user", "content": message})
response = openai.chat.completions.create(
model="ft:gpt-4o-2024-08-06:personal::BAk7EUnu",
messages=messages
)
return response.choices[0].message.content
def get_random_turn_data():
"""Returns randomly generated flight turn data."""
return generate_random_turn_data()
demo = gr.ChatInterface(respond)
demo = gr.Blocks()
with demo:
gr.Markdown("# Flight Turn Data Evaluator")
with gr.Row():
user_input = gr.Textbox(label="Enter Flight Turn Data or Generate Random Data")
with gr.Row():
submit_button = gr.Button("Submit")
random_button = gr.Button("Random Generate")
with gr.Row():
output_display = gr.Textbox(label="Response", interactive=False)
submit_button.click(respond, inputs=[user_input, gr.State([])], outputs=output_display)
random_button.click(get_random_turn_data, inputs=[], outputs=user_input)
if __name__ == "__main__":
demo.launch()