WalidAlHassan commited on
Commit
f17f8e6
·
1 Parent(s): d3132ec
Files changed (3) hide show
  1. .gitattributes +0 -35
  2. gemini.py +54 -0
  3. requirements.txt +63 -0
.gitattributes DELETED
@@ -1,35 +0,0 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
gemini.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dotenv import load_dotenv
2
+ import streamlit as st
3
+ import os
4
+ import google.generativeai as genai
5
+
6
+ # Load environment variables
7
+ load_dotenv()
8
+
9
+ # Configure the Generative AI model
10
+ genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
11
+ model = genai.GenerativeModel("gemini-pro")
12
+ chat = model.start_chat(history=[])
13
+
14
+ def get_gemini_response(question):
15
+ response = chat.send_message(question, stream=True)
16
+ return response
17
+
18
+ # Initialize the Streamlit app
19
+ st.set_page_config(page_title="Gemini Application")
20
+
21
+ st.header("Ask with Gemini")
22
+
23
+ # Initialize session state for chat history if it doesn't exist
24
+ if 'history' not in st.session_state:
25
+ st.session_state['history'] = []
26
+
27
+ # Sidebar with expandable history items
28
+ st.sidebar.header("Chat History")
29
+
30
+ def delete_history(index):
31
+ del st.session_state.history[index]
32
+
33
+ # Display history in the sidebar with expanders
34
+ for i, entry in enumerate(st.session_state.history):
35
+ with st.sidebar.expander(f"Q{i+1}"):
36
+ st.write(f"**Input:** {entry['input']}")
37
+ st.write(f"**Response:** {entry['response']}")
38
+ if st.button(f"Delete", key=f"delete_{i}"):
39
+ delete_history(i)
40
+ # Force rerun by setting query parameters
41
+ st.query_params.update(deleted_index=i)
42
+
43
+ # Input and submit button for new questions
44
+ input = st.text_input("", key="input")
45
+ submit = st.button("Submit")
46
+
47
+ if submit and input:
48
+ response = get_gemini_response(input)
49
+ response_text = ''.join([chunk.text for chunk in response])
50
+ st.session_state.history.append({"input": input, "response": response_text})
51
+ st.write(response_text)
52
+ st.query_params.update(new_question=input)
53
+
54
+ # streamlit run gemini.py
requirements.txt ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ altair==5.4.0
2
+ annotated-types==0.7.0
3
+ attrs==24.2.0
4
+ blinker==1.8.2
5
+ cachetools==5.4.0
6
+ certifi==2024.7.4
7
+ charset-normalizer==3.3.2
8
+ click==8.1.7
9
+ colorama==0.4.6
10
+ gitdb==4.0.11
11
+ GitPython==3.1.43
12
+ google-ai-generativelanguage==0.6.6
13
+ google-api-core==2.19.1
14
+ google-api-python-client==2.140.0
15
+ google-auth==2.33.0
16
+ google-auth-httplib2==0.2.0
17
+ google-generativeai==0.7.2
18
+ googleapis-common-protos==1.63.2
19
+ grpcio==1.65.4
20
+ grpcio-status==1.62.3
21
+ httplib2==0.22.0
22
+ idna==3.7
23
+ Jinja2==3.1.4
24
+ jsonschema==4.23.0
25
+ jsonschema-specifications==2023.12.1
26
+ markdown-it-py==3.0.0
27
+ MarkupSafe==2.1.5
28
+ mdurl==0.1.2
29
+ narwhals==1.3.0
30
+ numpy==2.0.1
31
+ packaging==24.1
32
+ pandas==2.2.2
33
+ pillow==10.4.0
34
+ proto-plus==1.24.0
35
+ protobuf==4.25.4
36
+ pyarrow==17.0.0
37
+ pyasn1==0.6.0
38
+ pyasn1_modules==0.4.0
39
+ pydantic==2.8.2
40
+ pydantic_core==2.20.1
41
+ pydeck==0.9.1
42
+ Pygments==2.18.0
43
+ pyparsing==3.1.2
44
+ python-dateutil==2.9.0.post0
45
+ python-dotenv==1.0.1
46
+ pytz==2024.1
47
+ referencing==0.35.1
48
+ requests==2.32.3
49
+ rich==13.7.1
50
+ rpds-py==0.20.0
51
+ rsa==4.9
52
+ six==1.16.0
53
+ smmap==5.0.1
54
+ streamlit==1.37.1
55
+ tenacity==8.5.0
56
+ toml==0.10.2
57
+ tornado==6.4.1
58
+ tqdm==4.66.5
59
+ typing_extensions==4.12.2
60
+ tzdata==2024.1
61
+ uritemplate==4.1.1
62
+ urllib3==2.2.2
63
+ watchdog==4.0.2