-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
84 lines (63 loc) · 2.42 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Interview Chatbot
#from langchain.llms import OpenAI
from dotenv import load_dotenv
load_dotenv() # take environment variables from .env.
import streamlit as st
import os
import pathlib
import textwrap
from PIL import Image
import sys
from streamlit.web import cli as stcli
from streamlit import runtime
import google.generativeai as genai
os.getenv("GOOGLE_API_KEY")
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
## Function to load OpenAI model and get respones
def get_gemini_response(input,image,prompt):
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content([input,image[0],prompt])
return response.text
def input_image_setup(uploaded_file):
# Check if a file has been uploaded
if uploaded_file is not None:
# Read the file into bytes
bytes_data = uploaded_file.getvalue()
image_parts = [
{
"mime_type": uploaded_file.type, # Get the mime type of the uploaded file
"data": bytes_data
}
]
return image_parts
else:
raise FileNotFoundError("No file uploaded")
##initialize our streamlit app
def main ():
st.set_page_config(page_title="Gemini Based Application Demo")
st.header("Gemini Interview Prep Application")
input=st.text_input("Input Prompt: ",key="input")
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
image=""
if uploaded_file is not None:
image = Image.open(uploaded_file)
st.image(image, caption="Uploaded Image.", use_column_width=True)
submit=st.button("List down Interview Questions")
input_prompt = """
You are an expert in extracting Info from images of Resume .
You will receive input images as resumes &
you will have to ask Interview questions based on the input image
"""
## If ask button is clicked
if submit:
image_data = input_image_setup(uploaded_file)
response=get_gemini_response(input_prompt,image_data,input)
st.subheader("The Interview Questions are")
st.write(response)
if __name__ == '__main__':
if runtime.exists():
main()
else:
sys.argv = ["streamlit", "run", sys.argv[0]]
sys.exit(stcli.main())
import subprocess