AGAZO_Final_Assignment / convert_chessboard_image_to_fen_tool.py
Alexandre Gazola
fix
72846b4
raw
history blame
1.12 kB
from langchain_core.tools import tool
from image_to_text_tool import image_to_text
from utils import get_base64
from typing import Literal
@tool
def convert_chessboard_image_to_fen(chessboard_image_base64_path: str, current_player: Literal["black", "white"]) -> str:
"""
Given the path to a file with a chessboard image in base64, returns the FEN description of the chessboard.
Args:
image_path: Path to the image file with the chessboard.
current_player: Whose turn it is to play. Must be either 'black' or 'white'.
Returns:
JSON with FEN (Forsyth-Edwards Notation) string representing the current board position.
"""
chessboard_image_base64_str = get_base64(chessboard_image_base64_path)
print("Calling chessboard description")
fen = image_to_text.invoke(
{
"image_base64_str": chessboard_image_base64_str,
"instructions": f'Return the fen notation of this chessboard. Assume {current_player} will play.'
}
)
print("FEN returned: " + fen)
#gabarito do FEN: 3r2k1/pp3pp1/4b2p/7Q/3n4/PqBBR2P/5PP1/6K1 b - - 0 1