# import altair as alt # import numpy as np # import pandas as pd # import streamlit as st # """ # # Welcome to Streamlit! # Edit `/streamlit_app.py` to customize this app to your heart's desire :heart:. # If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community # forums](https://discuss.streamlit.io). # In the meantime, below is an example of what you can do with just a few lines of code: # """ # num_points = st.slider("Number of points in spiral", 1, 10000, 1100) # num_turns = st.slider("Number of turns in spiral", 1, 300, 31) # indices = np.linspace(0, 1, num_points) # theta = 2 * np.pi * num_turns * indices # radius = indices # x = radius * np.cos(theta) # y = radius * np.sin(theta) # df = pd.DataFrame({ # "x": x, # "y": y, # "idx": indices, # "rand": np.random.randn(num_points), # }) # st.altair_chart(alt.Chart(df, height=700, width=700) # .mark_point(filled=True) # .encode( # x=alt.X("x", axis=None), # y=alt.Y("y", axis=None), # color=alt.Color("idx", legend=None, scale=alt.Scale()), # size=alt.Size("rand", legend=None, scale=alt.Scale(range=[1, 150])), # )) import streamlit as st import os from groq import Groq # Custom function to load variables from a .env file def load_dotenv(filepath=".env"): try: with open(filepath, "r") as f: for line in f: line = line.strip() # Skip comments and empty lines if not line or line.startswith("#"): continue if "=" in line: key, value = line.split("=", 1) os.environ.setdefault(key.strip(), value.strip()) except FileNotFoundError: st.error("No .env file found. Please create one with your API key.") except Exception as e: st.error(f"Error loading .env file: {e}") # Load environment variables from the .env file load_dotenv() def main(): st.title("Samyotech Chatbot") # Fetch API key from environment variables groq_api_key = os.environ.get("GROQ_API_KEY") if groq_api_key: client = Groq(api_key=groq_api_key) st.write("### Chat with LLM") user_input = st.text_area("Enter your message:") if st.button("Generate Response"): if user_input.strip(): try: response = client.chat.completions.create( model="llama-3.3-70b-versatile", messages=[ {"role": "user", "content": user_input} ] ) st.write("### Response:") st.write(response.choices[0].message.content) except Exception as e: st.error(f"Error: {e}") else: st.warning("Please enter a message to generate a response.") else: st.error("API key not found. Please ensure your .env file contains GROQ_API_KEY.") if __name__ == "__main__": main()