import streamlit as st import json import google.generativeai as genai def add_to_json(goal): """ Adds a new goal to the "test.json" file, ensuring the JSON structure is correct. Args: goal (str): The goal text to be added. """ try: with open("test.json", "r") as file: data = json.load(file) except FileNotFoundError: data = {"goals": []} # Create the file with an empty 'goals' list if it doesn't exist if "goals" not in data: # Handle cases where the 'goals' key might be missing data["goals"] = [] new_item = {"Goal": goal} data["goals"].append(new_item) with open("test.json", "w") as file: json.dump(data, file, indent=4) GOOGLE_API_KEY = "AIzaSyCUBaL7TdISL7lRuBy19_X0-OsZfgbIgEc" genai.configure(api_key=GOOGLE_API_KEY) model = genai.GenerativeModel('gemini-pro') def main(): """ Main application logic. Handles user input, interaction with generative AI, data saving, and JSON display. """ prompt = st.chat_input("Hi, how can I help you?") if prompt: goal = prompt goals_prompt = f"""Act as a personal assistant... {goal} """ completion = model.generate_content(goals_prompt) with st.chat_message("Assistant"): st.write(completion.text) add_to_json(goal) # Display JSON Data if st.button("Show JSON Data"): with open("test.json", "r") as file: data = json.load(file) st.json(data) # Streamlit's way to display JSON if __name__ == "__main__": main()