louiecerv's picture
update
a45a731
import streamlit as st
import openai
import os
from openai import OpenAI
# API Key Input
api_key = os.environ['OPENAI_API_KEY']
client = OpenAI(
api_key=api_key
)
# Set up the OpenAI API client
openai.api_key = api_key
def generate_ai_response(prompt):
"""Simulates generating a response from an AI model.
Args:
prompt: The prompt to send to the AI model.
Returns:
response from the AI model.
"""
try:
completion = openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "developer",
"content": [
{
"type": "text",
"text": """
You are a programming assistant focused on providing accurate,
clear, and concise answers to technical questions. Your goal
is to help users solve programming problems efficiently, explain
concepts clearly, and provide examples when appropriate. Use a
professional yet approachable tone.
"""
}
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": prompt
}
]
}
]
)
# Extract and display the response
model_response = completion.choices[0].message.content
st.success("Here's the response:")
return model_response
except Exception as e:
st.error(f"An error occurred: {e}")
return None
# Define common programming tasks
programming_tasks = [
"Write a function to reverse a string",
"Create a class to represent a bank account",
"Implement a binary search algorithm",
"Write a script to scrape data from a website",
"Create a function to validate an email address",
"Implement a linked list data structure",
"Write a program to find the factorial of a number",
"Create a function to sort a list of numbers",
"Implement a queue data structure",
"Write a program to convert Celsius to Fahrenheit",
"Create a recursive function to calculate Fibonacci numbers",
"Write a function to check if a string is a palindrome",
"Implement a stack data structure"
]
# Streamlit app
st.title("AI Programming Task Assistant")
# Task selection
selected_task = st.selectbox("Select a programming task:", programming_tasks)
# Task details input
task_details = st.text_area("Provide details about the task:", height=150)
# Generate response button
if st.button("Get Response"):
if not task_details:
st.warning("Please provide details about the task.")
else:
# Construct the prompt
prompt = f"Programming Task: {selected_task}\nDetails: {task_details}"
if not api_key:
st.error("Please provide your OpenAI API Key.")
else:
with st.spinner("Thinking..."):
# Simulate AI model response
response = generate_ai_response(prompt)
st.write(response)