Spaces:
Runtime error
Runtime error
import google.generativeai as genai | |
from groq import Groq | |
import base64 | |
import os | |
# For better security practices, retrieve sensitive information like API keys from environment variables. | |
GOOGLE_API_KEY = os.environ.get('GOOGLE_API_KEY') | |
genai.configure(api_key=GOOGLE_API_KEY) | |
# These codelines are just to verify if your api key is correct or not | |
# Use them when you clone the repo and build locally | |
#!curl \ | |
#-H 'Content-Type: application/json' \ | |
#-d '{ "prompt": { "text": "Write a very short story about a magic backpack"} }' \ | |
#"https://generativelanguage.googleapis.com/v1beta3/models/text-bison-001:generateText?key=<enter-your-key-here>" | |
# Initialize genai models | |
# model = genai.GenerativeModel('gemini-1.5-pro') | |
# modelvis = genai.GenerativeModel('gemini-1.5-flash') | |
models = ["gemini-2.0-flash-exp", | |
"gemini-2.0-flash", | |
"gemini-1.5-flash-8b", | |
"gemini-1.5-flash", | |
"gemini-1.5-pro", | |
"llama-4-scout-17b-16e-instruct", | |
"llama-4-maverick-17b-128e-instruct" | |
] | |
def encode_image(image_path): | |
with open(image_path, "rb") as image_file: | |
return base64.b64encode(image_file.read()).decode('utf-8') | |
def encode_image(image): | |
buffered = io.BytesIO() | |
image.save(buffered, format="JPEG") | |
return base64.b64encode(buffered.getvalue()).decode('utf-8') | |
def readimage(image, prompt, model_name): | |
base64_image = encode_image(image) | |
image_content = {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}} | |
client = Groq(api_key=os.environ.get("GROQ_API_KEY")) | |
try: | |
chat_completion = client.chat.completions.create( | |
messages=[ | |
{ | |
"role": "user", | |
"content": [ | |
{"type": "text", "text": prompt}, image_content, | |
], | |
} | |
], | |
model=model, | |
) | |
return chat_completion.choices[0].message.content | |
except Exception as e: | |
return f"Error: {str(e)}" | |
# def readimage(image, prompt, model_name): | |
# """ | |
# Function to handle gemini model and gemini vision model interactions. | |
# Parameters: | |
# image: the image to read. | |
# prompt (str): The input text. | |
# model_name (str): model name. | |
# Returns: | |
# The response from the model. | |
# """ | |
# messages = [] | |
# messages.append({'role': 'user', 'parts': [prompt, image]}) | |
# model = genai.GenerativeModel(model_name) | |
# response = model.generate_content(messages) | |
# return response.text | |