from dotenv import load_dotenv
import os
from groq import Groq
import json

# Load environment variables
load_dotenv()

# Initialize Groq client
client = Groq(
    api_key=os.getenv("GROQ_API_KEY"),
)


def chat_with_groq(prompt: str, model: str = "llama-3.3-70b-versatile") -> str:
    try:
        # Create a chat completion
        chat_completion = client.chat.completions.create(
            messages=[
                {
                    "role": "system",
                    "content": "you are a helpful AI engineer assistant."
                },
                {
                    "role": "user",
                    "content": prompt
                }
            ],
            model=model,
        )
        # Return the response content
        return chat_completion.choices[0].message.content
    except Exception as e:
        return f"An error occurred: {e}"

def groq_module_fun(resume_prompt, base64_image):
    completion = client.chat.completions.create(
        model="llama-3.2-90b-vision-preview",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": resume_prompt
                    },
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": f"data:image/jpeg;base64,{base64_image}",
                        },
                    }
                ]
            }
        ],
        temperature=1,
        max_completion_tokens=1024,
        top_p=1,
        stream=False,
        response_format={"type": "json_object"},
    )
    
    # Access the response here inside the function
    api_response = completion.choices[0].message.content
    return api_response
