Docfile's picture
Update app.py
1222a26 verified
raw
history blame
2.34 kB
import gradio as gr
from PIL import Image
import google.generativeai as genai
import time
# Configure the API key directly in the script
API_KEY = 'AIzaSyDnnYRJ49VUm_2FiKhNubv85g6KCDjcNSc'
genai.configure(api_key=API_KEY)
# Generation configuration
generation_config = {
"temperature": 1,
"top_p": 0.95,
"top_k": 64,
"max_output_tokens": 8192,
"response_mime_type": "text/plain",
}
# Safety settings
safety_settings = [
{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"},
]
# Model name
MODEL_NAME = "gemini-1.5-pro-latest"
# Create the model
model = genai.GenerativeModel(
model_name=MODEL_NAME,
safety_settings=safety_settings,
generation_config=generation_config,
)
e =""
# Fonction pour générer le contenu
async def generate_content(pro,image):
global e
if not image:
response = model.generate_content(pro)
print(response)
e = response.text
print(e)
else:
print(f"Uploading file...")
uploaded_video = genai.upload_file(path=image)
print(f"Completed upload: {uploaded_video.uri}")
while uploaded_video.state.name == "PROCESSING":
print("Waiting for video to be processed.")
time.sleep(2)
uploaded_video = genai.get_file(uploaded_video.name)
if uploaded_video.state.name == "FAILED":
raise ValueError(uploaded_video.state.name)
print(f"Video processing complete: " + uploaded_video.uri)
print("Making LLM inference request...")
response = model.generate_content(
[prompt, uploaded_video], request_options={"timeout": 600}
)
genai.delete_file(uploaded_video.name)
print(f"Deleted file {uploaded_video.uri}")
e = response
return e
markdown = r"""
e
""".format(e)
# Interface Gradio
iface = gr.Interface(fn=generate_content, inputs=[gr.Textbox(),gr.Image(type='pil')], outputs= gr.Markdown(markdown, latex_delimiters=[{ "left":"$$", "right":"$$", "display": True }]))
iface.launch()