|
import openai |
|
import os |
|
import streamlit as st |
|
import pandas as pd |
|
from streamlit_chat import message as st_message |
|
|
|
|
|
def load_data(path): |
|
return pd.read_csv(path) |
|
|
|
|
|
openai.api_key = os.getenv("OPENAI_API_KEY") |
|
|
|
|
|
|
|
uploaded_file = st.sidebar.file_uploader("Choose a CSV file", type="csv") |
|
if uploaded_file is not None: |
|
st.session_state["df"] = pd.read_csv(uploaded_file) |
|
|
|
|
|
def ask_openai(prompt): |
|
try: |
|
response = openai.ChatCompletion.create( |
|
model="gpt-3.5-turbo", |
|
messages=[{"role": "system", "content": "You are a helpful assistant."}, |
|
{"role": "user", "content": prompt}], |
|
) |
|
return response.choices[0].message["content"] |
|
except Exception as e: |
|
st.error(f"Error in generating response: {e}") |
|
return "I encountered an error. Please try again." |
|
|
|
|
|
user_input = st.text_input("Ask me anything:", key="chat_input") |
|
|
|
|
|
if user_input: |
|
with st.chat_message("user"): |
|
st.write(user_input) |
|
|
|
|
|
ai_response = ask_openai(user_input) |
|
with st.chat_message("assistant"): |
|
st.write(ai_response) |