from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_core.prompts import ChatPromptTemplate
from pydantic import BaseModel
from typing import List,Optional
from langchain_core.output_parsers import PydanticOutputParser
from dotenv import load_dotenv
load_dotenv()
model = ChatGoogleGenerativeAI(model="gemini-2.5-flash-lite")
class Movie(BaseModel):
title: str
release_year: Optional[int]
genre: List[str]
director: str
cast: List[str]
rating: float
summary: str
parser= PydanticOutputParser(pydantic_object=Movie)
template = ChatPromptTemplate.from_messages([
("system",
"""
Extract movie information from the paragraph
STRICT RULES:
- Output ONLY valid JSON
- No explanations, no markdown, no extra text
- Follow the format EXACTLY
{format_instructions}
"""),
("human",
"""
{paragraph}
""")
])
para = input("give me a paragraph: ")
prompt = template.invoke(
{
"paragraph":para,
"format_instructions":parser.get_format_instructions()
}
)
response = model.invoke(prompt)
parsed_output = parser.parse(response.content)
print(parsed_output)
Workflows from the Neura Market marketplace related to this Gemini resource