Tuesday, February 17, 2026

Learn how to Construct Human-in-the-Loop Plan-and-Execute AI Brokers with Specific Person Approval Utilizing LangGraph and Streamlit

app_code = r'''
import os, json, uuid
import streamlit as st
from typing import TypedDict, Record, Dict, Any, Elective
from pydantic import BaseModel, Discipline
from openai import OpenAI


from langgraph.graph import StateGraph, START, END
from langgraph.sorts import Command, interrupt
from langgraph.checkpoint.reminiscence import InMemorySaver




def tool_search_flights(origin: str, vacation spot: str, depart_date: str, return_date: str, budget_usd: int) -> Dict[str, Any]:
   choices = [
       {"airline": "SkyJet", "route": f"{origin}->{destination}", "depart": depart_date, "return": return_date, "price_usd": int(budget_usd*0.55)},
       {"airline": "AeroBlue", "route": f"{origin}->{destination}", "depart": depart_date, "return": return_date, "price_usd": int(budget_usd*0.70)},
       {"airline": "Nimbus Air", "route": f"{origin}->{destination}", "depart": depart_date, "return": return_date, "price_usd": int(budget_usd*0.62)},
   ]
   choices = sorted(choices, key=lambda x: x["price_usd"])
   return {"device": "search_flights", "top_options": choices[:2]}


def tool_search_hotels(metropolis: str, nights: int, budget_usd: int, preferences: Record[str]) -> Dict[str, Any]:
   base = max(60, int(budget_usd / max(nights, 1)))
   picks = [
       {"name": "Central Boutique", "city": city, "nightly_usd": int(base*0.95), "notes": ["walkable", "great reviews"]},
       {"identify": "Riverside Keep", "metropolis": metropolis, "nightly_usd": int(base*0.80), "notes": ["quiet", "good value"]},
       {"identify": "Fashionable Loft Lodge", "metropolis": metropolis, "nightly_usd": int(base*1.10), "notes": ["new", "gym"]},
   ]
   if "luxurious" in [p.lower() for p in preferences]:
       picks = sorted(picks, key=lambda x: -x["nightly_usd"])
   else:
       picks = sorted(picks, key=lambda x: x["nightly_usd"])
   return {"device": "search_hotels", "top_options": picks[:2]}


def tool_build_day_by_day(metropolis: str, days: int, vibe: str) -> Dict[str, Any]:
   blocks = []
   for d in vary(1, days+1):
       blocks.append({
           "day": d,
           "morning": f"{metropolis}: espresso + a must-see landmark",
           "afternoon": f"{metropolis}: {vibe} exercise + native lunch",
           "night": f"{metropolis}: sundown spot + dinner + non-compulsory night time stroll"
       })
   return {"device": "draft_itinerary", "days": blocks}
'''

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles