Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import openai | |
import os | |
import instructions | |
# OpenAI API μ€μ | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
# νμΌ μ λ‘λ λ° λ°μ΄ν° μ²λ¦¬ ν¨μ | |
def upload_and_process_file(): | |
uploaded_file = st.file_uploader("μ΄μ μνκΈ°λ‘λΆ νμΌ μ λ‘λ", type=['csv', 'json']) | |
if uploaded_file is not None: | |
if uploaded_file.type == 'text/csv': | |
data = pd.read_csv(uploaded_file) | |
elif uploaded_file.type == 'application/json': | |
data = pd.read_json(uploaded_file) | |
return data | |
return None | |
# μνκΈ°λ‘λΆ λ¬Έκ΅¬ μμ± ν¨μ | |
def generate_living_record(data): | |
data_str = str(data) | |
response = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo-16k", | |
messages=[ | |
{"role": "system", | |
"content": instructions.instruction | |
}, | |
{"role": "user", | |
"content": data_str | |
} | |
], | |
temperature=0.7, | |
max_tokens=10000, | |
top_p=1, | |
frequency_penalty=0, | |
presence_penalty=0 | |
) | |
return response.choices[0].message.content | |
# Streamlit μ± κ΅¬μ± | |
st.title("μνκΈ°λ‘λΆ μμ± μλΉμ€") | |
st.write("μ΄μ μνκΈ°λ‘λΆ νμΌμ μ λ‘λνκ±°λ, μ§μ μνκΈ°λ‘λΆ λ΄μ©μ μ λ ₯νμΈμ.") | |
# νμΌ μ λ‘λ κΈ°λ₯ | |
uploaded_data = upload_and_process_file() | |
# μ λ ₯ νλ λμ μμ± λ° λ°μ΄ν° μλ μ±μ°κΈ° | |
for i in range(6): | |
record_key = f"record_{i}" | |
if uploaded_data is not None and i < len(uploaded_data): | |
# μ λ‘λλ νμΌ λ°μ΄ν°λ₯Ό μΈμ μνμ ν λΉ | |
st.session_state[record_key] = uploaded_data.iloc[i].to_string(index=False) | |
else: | |
if record_key not in st.session_state: | |
st.session_state[record_key] = "" | |
with st.expander(f"μ λ ₯μ°½ {i+1}", expanded=False): | |
st.text_area("μνκΈ°λ‘λΆ λ΄μ© μ λ ₯", key=record_key, height=150, value=st.session_state[record_key]) | |
# λ°μ΄ν° μ²λ¦¬ λ° κ²°κ³Ό μΆλ ₯ | |
if st.button("μμ±"): | |
input_data = "\n".join([st.session_state[f'record_{i}'] for i in range(6) if st.session_state[f'record_{i}']]) | |
if uploaded_data is not None: | |
generated_record = generate_living_record(uploaded_data) | |
else: | |
generated_record = generate_living_record(input_data) | |
st.write("μμ±λ μνκΈ°λ‘λΆ:", generated_record) |