사실 저도 kiro 도움 많이 받아서 헷갈림
프론트엔드 (React)
↓ HTTP POST
백엔드 (Express + LangChain)
↓ 4단계 파이프라인
OpenAI GPT-4o-mini
↓
구조화된 응답 (텍스트 + 카드)
📁 src/services/intentAnalyzer.ts
// ChatOpenAI 모델 생성
const intentModel = new ChatOpenAI({
modelName: 'gpt-4o-mini',
temperature: 0.3, // 낮은 온도 = 일관된 분류
openAIApiKey: process.env.OPENAI_API_KEY
});
// 메시지 구성
const systemMessage = new SystemMessage(INTENT_CLASSIFICATION_PROMPT);
const userMessage = new HumanMessage(message);
// GPT 호출
const response = await intentModel.invoke([systemMessage, userMessage]);
역할: 사용자 질문 → JSON 형태의 의도 분석 결과
{
"intent": "plan_recommendation",
"entities": {
"priceConstraint": {"max": 90000},
"features": ["무제한 데이터"],
"category": "plan"
},
"confidence": 0.95
}
📁 src/services/langchain.ts