|
import streamlit as st |
|
import openai |
|
|
|
|
|
|
|
def generate_detailed_artifact(api_key, description, artifact_type): |
|
""" |
|
Interact with OpenAI using the provided API key to generate the artifact content. |
|
""" |
|
openai.api_key = api_key |
|
|
|
|
|
st.title("AI-Enabled Project Artifact Generator") |
|
|
|
|
|
if 'api_key' not in st.session_state: |
|
st.session_state.api_key = '' |
|
|
|
api_key_input = st.text_input("Enter your OpenAI API Key", type="password", value=st.session_state.api_key) |
|
|
|
if api_key_input: |
|
st.session_state.api_key = api_key_input |
|
with st.form("artifact_generator"): |
|
artifact_types = list(sophisticated_prompts.keys()) |
|
description = st.text_area("Enter Project Description", "Type your project description here...") |
|
selected_artifact_types = st.multiselect("Select Artifact Types", artifact_types, default=artifact_types[0]) |
|
generate_button = st.form_submit_button("Generate Artifacts") |
|
|
|
if generate_button and st.session_state.api_key: |
|
tab_container = st.tabs([f"{artifact_type}" for artifact_type in selected_artifact_types]) |
|
|
|
for i, artifact_type in enumerate(selected_artifact_types): |
|
artifact_content = generate_detailed_artifact(st.session_state.api_key, description, artifact_type) |
|
|
|
with tab_container[i]: |
|
st.markdown(artifact_content, unsafe_allow_html=True) |
|
else: |
|
st.warning("Please enter your OpenAI API key to use the app.") |
|
|