LLMGameHub / src /agent /tools.py
gsavin's picture
A new start
86b351a
raw
history blame
1.11 kB
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}' }}"
@tool
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]