# ============================================================
# [실습] 1단계: 웹 QA 챗봇 (문서 없이, 가장 단순한 웹서비스)
#
# 브라우저에서 질문 → Flask → LangChain(ChatOpenAI) → 답변. 아직 '문서'는 없다.
# day2 의 LCEL(프롬프트 | 모델 | 파서) 을 그대로 웹에 얹는다.
#
# 실행:  python 01_chatbot_실습.py   →   http://localhost:5000
#
# 구현 항목:
#  1) chain : ChatPromptTemplate | ChatOpenAI | StrOutputParser  (LCEL)
#  2) /ask  : chain.invoke({"question": ...}) 로 답하고 {"answer": ...} 반환
# ============================================================

from flask import Flask, request, jsonify, send_from_directory
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from dotenv import load_dotenv

load_dotenv()
app = Flask(__name__)

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
# 1) 여기에 코드를 작성하세요
#    prompt = ChatPromptTemplate.from_messages([("system", ...), ("human", "{question}")])
#    chain = prompt | llm | StrOutputParser()


@app.get("/")
def index():
    return send_from_directory(app.static_folder, "01.html")


@app.post("/ask")
def ask():
    # 2) 여기에 코드를 작성하세요 (answer = chain.invoke({"question": request.json["question"]}))
    pass


if __name__ == "__main__":
    app.run(debug=True, port=5000)
