Spaces:
Build error
Build error
| from pydantic import BaseModel | |
| from google import genai | |
| from google.genai.types import HttpOptions | |
| from dotenv import load_dotenv | |
| import os | |
| import json | |
| import re | |
| from vertexai.generative_models import Part, Image, GenerativeModel | |
| from utils import setup_logger | |
| import vertexai | |
| logger = setup_logger(__name__) | |
| load_dotenv() | |
| project = os.getenv("GOOGLE_CLOUD_PROJECT") | |
| location = os.getenv("GOOGLE_CLOUD_LOCATION") | |
| vertexai.init(project=project, location=location) | |
| class DocumentLLM(BaseModel): | |
| def call_llm_api(self, prompt, image_path): | |
| model: GenerativeModel = GenerativeModel( | |
| model_name="gemini-2.0-flash-001") | |
| text_part = Part.from_text(prompt) | |
| image_part = Part.from_image(Image.load_from_file(image_path)) | |
| response = model.generate_content([ | |
| image_part, | |
| text_part]) | |
| content = response.text | |
| try: | |
| content = json.loads(content) | |
| except Exception as e: | |
| logger.info(f"Json is being formatted") | |
| content = re.sub(r"^```json\s*|\s*```$", "", | |
| content, flags=re.MULTILINE) | |
| # Parse JSON | |
| content = json.loads(content) | |
| return content | |