Spaces:
Running
Running
from langchain_core.tools import tool | |
from typing import Annotated, Any, Dict, List | |
from images.image_generator import generate_image | |
from langgraph.prebuilt import InjectedState | |
import logging | |
logger = logging.getLogger(__name__) | |
def _err(msg: str) -> str: | |
logger.error(msg) | |
return f"{{ 'error': '{msg}' }}" | |
def _success(msg: str) -> str: | |
logger.info(msg) | |
return f"{{ 'success': '{msg}' }}" | |
async def generate_scene_image( | |
prompt: Annotated[ | |
str, | |
"The prompt to generate an image from" | |
], | |
state: InjectedState, | |
) -> Annotated[ | |
str, | |
"The path to the generated image" | |
]: | |
""" | |
Generate an image from a prompt and set current scene image. | |
""" | |
try: | |
image_path, img_description = generate_image(prompt) | |
state["current_scene"]["image"] = image_path | |
state["current_scene"]["image_description"] = img_description | |
return _success(f"Image generated and set as current scene image: {img_description}") | |
except Exception as e: | |
return _err(str(e)) | |
available_tools = [generate_scene_image] |