Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI | |
| from pydantic import BaseModel | |
| from my_agent.agent import build_graph | |
| import pandas as pd | |
| from typing import Optional | |
| app = FastAPI() | |
| graph = build_graph() | |
| class RequestInput(BaseModel): | |
| query: list | |
| preferred_topics: Optional[list] = [] | |
| def run_graph(input_data: RequestInput): | |
| result = graph.invoke({'topic' : input_data.query}) | |
| return {'final_story': result['final_story']} | |
| # *********************INFERENCING PART**************************** | |
| # import asyncio | |
| # from fastapi import FastAPI, Request, Form | |
| # from fastapi.responses import HTMLResponse | |
| # from fastapi.staticfiles import StaticFiles | |
| # from fastapi.templating import Jinja2Templates | |
| # from my_agent.agent import build_graph | |
| # from starlette.concurrency import run_in_threadpool | |
| # app = FastAPI() | |
| # graph = build_graph() | |
| # app.mount("/static", StaticFiles(directory="static"), name="static") | |
| # templates = Jinja2Templates(directory="templates") | |
| # # Store session state in memory (simple approach) | |
| # session_data = { | |
| # "topic": [], | |
| # "preferred_topics": [], | |
| # } | |
| # @app.get("/", response_class=HTMLResponse) | |
| # def get_home(request: Request): | |
| # return templates.TemplateResponse("index.html", {"request": request}) | |
| # @app.post("/submit", response_class=HTMLResponse) | |
| # async def handle_query(request: Request, user_query: str = Form(...)): | |
| # session_data["topic"] = [user_query] | |
| # result = graph.invoke({"topic": session_data["topic"]}) | |
| # brainstorming = result.get("brainstroming_topics", [{}])[-1].values() | |
| # return templates.TemplateResponse("index.html", { | |
| # "request": request, | |
| # "topics": brainstorming, | |
| # "story": None, | |
| # "show_buttons": True | |
| # }) | |
| # @app.post("/select", response_class=HTMLResponse) | |
| # async def select_topics(request: Request, selected_topics: list[str] = Form(...), action: str = Form(...)): | |
| # session_data["preferred_topics"].append(selected_topics) | |
| # if action == "go_deeper": | |
| # result = await run_in_threadpool( | |
| # graph.invoke, | |
| # {"topic": session_data["topic"], "preferred_topics": session_data["preferred_topics"]} | |
| # ) | |
| # new_brainstorm = result.get("brainstroming_topics", [{}])[-1].values() | |
| # print() | |
| # print('*****RESPONSE IS GENERATED********') | |
| # print() | |
| # return templates.TemplateResponse("index.html", { | |
| # "request": request, | |
| # "topics": new_brainstorm, | |
| # "story": None, | |
| # "show_buttons": True | |
| # }) | |
| # elif action == "generate_final_story": | |
| # result = await run_in_threadpool( | |
| # graph.invoke, | |
| # {"topic": session_data["topic"], "preferred_topics": session_data["preferred_topics"]} | |
| # ) | |
| # return templates.TemplateResponse("index.html", { | |
| # "request": request, | |
| # "topics": [], | |
| # "story": result.get("final_story"), | |
| # "show_buttons": False | |
| # }) | |