File size: 2,576 Bytes
c1918f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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