getapi commited on
Commit
fef6bf3
·
1 Parent(s): 6003875

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +57 -60
app.py CHANGED
@@ -1,12 +1,8 @@
1
  from PIL import Image
2
  import io
3
- import os
4
  import streamlit as st
5
  import google.generativeai as genai
6
 
7
- # import google.ai.generativelanguage as glm
8
-
9
-
10
  safety_settings = [
11
  {
12
  "category": "HARM_CATEGORY_HARASSMENT",
@@ -28,60 +24,61 @@ safety_settings = [
28
 
29
  with st.sidebar:
30
  st.title("Gemini Pro")
31
-
32
- genai.configure(api_key=st.secrets["api_key"])
33
-
34
-
35
- # select_model = st.selectbox("модель", ["gemini-pro", "gemini-pro-vision"])
36
-
37
- # if select_model == "gemini-pro-vision":
38
- uploaded_image = st.file_uploader(
39
- "upload image",
40
- label_visibility="collapsed",
41
- accept_multiple_files=False,
42
- type=["png", "jpg"],
43
- )
44
-
45
- if uploaded_image:
46
- image_bytes = uploaded_image.read()
47
-
48
-
49
- def get_response(messages, model="gemini-pro"):
50
- model = genai.GenerativeModel(model)
51
- res = model.generate_content(messages, stream=True, safety_settings=safety_settings)
52
- return res
53
-
54
-
55
- if "messages" not in st.session_state:
56
- st.session_state["messages"] = []
57
- messages = st.session_state["messages"]
58
-
59
- if messages:
60
- for item in messages:
61
- role, parts = item.values()
62
- if role == "user":
63
- st.chat_message("user").markdown(parts[0])
64
- elif role == "model":
65
- st.chat_message("assistant").markdown(parts[0])
66
-
67
- chat_message = st.chat_input("Спроси что-нибудь!")
68
-
69
- if chat_message:
70
- st.chat_message("user").markdown(chat_message)
71
- res_area = st.chat_message("assistant").empty()
72
-
73
- if "image_bytes" in globals():
74
- vision_message = [chat_message, Image.open(io.BytesIO(image_bytes))]
75
- res = get_response(vision_message, model="gemini-pro-vision")
 
 
 
 
 
 
 
 
 
 
 
76
  else:
77
- vision_message = [{"role": "user", "parts": [chat_message]}]
78
- res = get_response(vision_message)
79
-
80
-
81
- res_text = ""
82
- for chunk in res:
83
- res_text += chunk.text
84
- res_area.markdown(res_text)
85
-
86
- messages.append({"role": "model", "parts": [res_text]})
87
-
 
1
  from PIL import Image
2
  import io
 
3
  import streamlit as st
4
  import google.generativeai as genai
5
 
 
 
 
6
  safety_settings = [
7
  {
8
  "category": "HARM_CATEGORY_HARASSMENT",
 
24
 
25
  with st.sidebar:
26
  st.title("Gemini Pro")
27
+ password = st.text_input("пасскод", type="password")
28
+ if password == st.secrets["real_password"]:
29
+ st.success("тебе позволено войти, хорошо")
30
+
31
+ genai.configure(api_key=st.secrets["api_key"])
32
+
33
+ uploaded_image = st.file_uploader(
34
+ label="загрузи изображение",
35
+ label_visibility="visible",
36
+ help="если загружено изображение - можно спрашивать по нему что-то, если нет - будет обычный чат",
37
+ accept_multiple_files=False,
38
+ type=["png", "jpg"],
39
+ )
40
+
41
+ if uploaded_image:
42
+ image_bytes = uploaded_image.read()
43
+
44
+
45
+ def get_response(messages, model="gemini-pro"):
46
+ model = genai.GenerativeModel(model)
47
+ res = model.generate_content(messages, stream=True, safety_settings=safety_settings)
48
+ return res
49
+
50
+
51
+ if "messages" not in st.session_state:
52
+ st.session_state["messages"] = []
53
+ messages = st.session_state["messages"]
54
+
55
+ if messages:
56
+ for item in messages:
57
+ role, parts = item.values()
58
+ if role == "user":
59
+ st.chat_message("user").markdown(parts[0])
60
+ elif role == "model":
61
+ st.chat_message("assistant").markdown(parts[0])
62
+
63
+ chat_message = st.chat_input("Спроси что-нибудь!")
64
+
65
+ if chat_message:
66
+ st.chat_message("user").markdown(chat_message)
67
+ res_area = st.chat_message("assistant").empty()
68
+
69
+ if "image_bytes" in globals():
70
+ vision_message = [chat_message, Image.open(io.BytesIO(image_bytes))]
71
+ res = get_response(vision_message, model="gemini-pro-vision")
72
+ else:
73
+ vision_message = [{"role": "user", "parts": [chat_message]}]
74
+ res = get_response(vision_message)
75
+
76
+
77
+ res_text = ""
78
+ for chunk in res:
79
+ res_text += chunk.text
80
+ res_area.markdown(res_text)
81
+
82
+ messages.append({"role": "model", "parts": [res_text]})
83
  else:
84
+ st.warning("неправильный пароль, увы...")