Skip to content

Latest commit

 

History

History
145 lines (113 loc) · 8.75 KB

File metadata and controls

145 lines (113 loc) · 8.75 KB

SmartRoute — 발표 스크립트 (약 5분)

사용법: 각 슬라이드의 [슬라이드] 불릿은 PPT에 넣을 내용, 🎤 멘트는 그대로 읽으면 되는 발표 대본입니다. 전체 약 5분 (말하기 기준 ~800단어). 시간이 모자라면 슬라이드 7(데모)에 집중하세요.


슬라이드 1 — 표지 / 한 줄 소개 (20초)

[슬라이드]

  • 제목: SmartRoute — 서울 실시간 "주차 우선" 길 안내 AI 에이전트
  • 부제: Microsoft Agent Framework + Azure OpenAI + 서울 열린데이터
  • 팀명 / 발표자

🎤 "안녕하세요. 저희 팀이 만든 'SmartRoute'는, 목적지를 말하면 주차 자리를 먼저 확보하고 거기까지 가는 길을 한 번에 안내하는 AI 에이전트입니다. Microsoft Agent Framework와 Azure OpenAI로 구현했습니다."


슬라이드 2 — 문제 정의 (35초)

[슬라이드]

  • 도심 운전자는 "어디로 가야 안 막히나" + "도착지에 댈 곳이 있나" 를 앱 2~3개로 따로 확인
  • 정작 도착해서 주차 자리가 없으면 빠른 길도 무의미
  • 실시간 데이터는 흩어져 있고, 일반 사용자가 종합하기 어려움

🎤 "운전할 때 우리는 길찾기 앱 따로, 주차 앱 따로 봅니다. 그런데 빠르게 갔는데 댈 곳이 없으면 의미가 없죠. 그래서 저희는 순서를 뒤집었습니다. 주차 자리를 먼저 찾고, 그 주차장까지 가는 길을 안내하자. 흩어진 실시간 공공데이터를 AI가 종합해서요."


슬라이드 3 — 솔루션 개요 (30초)

[슬라이드]

  • 자연어로 목적지 입력 → 추천 주차장 + 거기까지 접근 경로를 한 답변으로
  • 3개의 전문 AI 에이전트가 협업 (멀티에이전트 오케스트레이션)
  • 데이터: 서울 실시간 도시데이터 / 두뇌: Azure OpenAI / 화면: 웹 챗(Chainlit)

🎤 "사용자가 '여의도 가는데 주차하고 길 알려줘' 라고 하면, 세 개의 전문 에이전트가 협업해서 추천 주차장과 접근 경로를 하나로 묶어 답합니다."


슬라이드 4 — 시스템 구조 (아키텍처) (45초)

[슬라이드] (다이어그램 권장)

사용자 (Chainlit 웹 챗)
        │
   ┌────▼─────────┐
   │ Coordinator  │  ← 컨시어지: 목적지 파악·종합 (Azure OpenAI)
   └──┬───────┬───┘
      │       │  (agent-as-tool)
 ┌────▼──┐ ┌──▼─────┐
 │Parking│ │ Route  │  ← 주차 전문가 / 교통 전문가
 │ Agent │ │ Agent  │
 └───┬───┘ └───┬────┘
   @tool      @tool
     └────┬─────┘
   서울 실시간 도시데이터(citydata) API
  • Microsoft Agent Framework(Python) 기반, 에이전트는 Azure OpenAI 모델로 추론
  • 두 전문 에이전트를 '도구(tool)'처럼 코디네이터가 호출 → 멀티에이전트 오케스트레이션

🎤 "구조는 단순합니다. 사용자는 Chainlit 웹 챗으로 대화하고, 가운데 코디네이터 에이전트가 목적지를 파악합니다. 그리고 주차 전문가교통 전문가, 두 에이전트를 마치 도구처럼 불러서 결과를 종합합니다. 모든 에이전트의 '두뇌'는 Azure OpenAI 모델이고, 실제 데이터는 서울 열린데이터에서 가져옵니다."


슬라이드 5 — 구현 ① Azure OpenAI(Foundry)로 LLM 불러오기 (60초) ★

[슬라이드]

  1. Azure에서 Azure OpenAI 리소스 생성 → 모델 배포(gpt-4o-mini)
  2. 엔드포인트 + API 키 + 배포 이름 확보
  3. .env 에 보관 (키는 커밋 금지)
    AZURE_OPENAI_ENDPOINT=https://maf-test-handok.openai.azure.com/
    AZURE_OPENAI_API_KEY=********
    AZURE_OPENAI_DEPLOYMENT=gpt-4o-mini
    
  4. 코드 한 곳에서 클라이언트 생성 → 에이전트로 변환
    from agent_framework.openai import OpenAIChatCompletionClient
    client = OpenAIChatCompletionClient(
        model="gpt-4o-mini",                 # 배포 이름
        azure_endpoint=..., api_key=..., api_version="2024-10-21")
    agent = client.as_agent(name="coordinator", instructions=..., tools=[...])

🎤 "핵심은 LLM 연동입니다. 먼저 Azure에 Azure OpenAI 리소스를 만들고 gpt-4o-mini 모델을 배포합니다. 그러면 엔드포인트, API 키, 배포 이름이 나오는데, 이걸 .env에 안전하게 보관합니다. 코드에서는 Agent Framework의 OpenAIChatCompletionClient에 이 엔드포인트와 배포 이름을 넘기면 끝입니다. 한 번 만든 클라이언트를 as_agent로 감싸면 바로 에이전트가 됩니다. 즉 앱이 실행될 때마다 이 Azure 모델을 API로 호출해서 답을 만드는 구조입니다."

💡 팁: "처음엔 최신 Responses API를 쓰려다 Azure api-version 호환 문제로 ChatCompletions 방식으로 전환해 해결했다"는 트러블슈팅을 곁들이면 좋습니다.


슬라이드 6 — 구현 ② 데이터 & 도구 (40초)

[슬라이드]

  • 서울 실시간 도시데이터(citydata, OA-21285) — 지역(핫스팟) 한 번 호출로 주차 + 도로소통 동시 제공
  • @tool 함수 2개: get_parking_status(지역), get_road_traffic(지역)
  • 주차: 실시간 잔여(CUR_PRK_YN='Y') 우선 정렬 + 네이버 지도 링크 자동 첨부
  • 가드레일: 수치는 데이터에서만, 추측 금지(환각 0), 갱신시각 표기

🎤 "데이터는 서울시 '실시간 도시데이터' 하나로 주차와 도로 정보를 동시에 받습니다. 이걸 두 개의 도구 함수로 만들어 각 전문가 에이전트에 붙였습니다. 주차장은 실시간 잔여가 있는 곳을 우선 보여주고, 이름을 누르면 네이버 지도로 바로 연결됩니다. 그리고 중요한 원칙 — 모든 수치는 실제 데이터에서만 인용하고 지어내지 않도록 가드레일을 걸었습니다."


슬라이드 7 — 결과물 / 데모 (60초) ★

[슬라이드] (실제 챗 화면 캡처 권장)

  • 입력: 여의도 IFC몰 가는데 주차하고 가는 길 알려줘
  • 출력: ① 추천 주차장(여유 295면, 요금, 갱신시각, 네이버 링크) → ② 접근 소통(서행 21km/h, 유리한 구간)
  • 대화 맥락 유지(세션) — "경로도 알려줘"에 목적지 재질문 안 함

🎤 "실제 데모입니다. '여의도 IFC몰 가는데 주차하고 길 알려줘' 라고 하면 — 먼저 여의도한강3주차장, 여유 295면을 추천하고 네이버 링크까지 줍니다. 이어서 그 지역 접근이 현재 서행이라는 것과 어느 구간이 원활한지 알려줍니다. 그리고 대화를 기억하기 때문에, 이어서 '경로도 알려줘'라고 하면 목적지를 다시 묻지 않고 바로 답합니다." (가능하면 라이브 시연)


슬라이드 8 — 차별점 & 확장 계획 (30초)

[슬라이드]

  • 차별점: "주차 우선" 발상 + 멀티에이전트 협업 + 실시간 공공데이터 + 환각 방지 가드레일
  • 확장: Tmap/카카오 실제 경로 API로 ETA·턴바이턴, 공영주차장 API로 전화 연결·커버리지 확대
  • Agent Framework라 에이전트/도구 추가가 모듈식

🎤 "저희의 차별점은 '주차 우선'이라는 발상과, 여러 전문 에이전트가 협업한다는 점입니다. Agent Framework 덕분에 새로운 데이터나 에이전트를 모듈처럼 붙일 수 있어서, 앞으로 실제 경로 API나 전화 연결도 쉽게 확장됩니다."


슬라이드 9 — 마무리 (20초)

[슬라이드]

  • SmartRoute = 실시간 데이터 × 멀티에이전트 × Azure OpenAI
  • "목적지를 말하면, 댈 곳부터 길까지 한 번에"
  • 감사합니다 / Q&A

🎤 "정리하면 SmartRoute는 실시간 공공데이터와 멀티에이전트, 그리고 Azure OpenAI를 결합해, 목적지만 말하면 주차부터 경로까지 한 번에 안내합니다. 감사합니다. 질문 받겠습니다."


⏱️ 시간 배분 요약 (총 ~5분)

슬라이드 내용 시간
1 표지 0:20
2 문제 정의 0:35
3 솔루션 개요 0:30
4 아키텍처 0:45
5 Azure OpenAI 연동 1:00
6 데이터 & 도구 0:40
7 데모/결과 1:00
8 차별점·확장 0:30
9 마무리 0:20

핵심 기술 키워드 (질문 대비)

  • Microsoft Agent Framework (Python, agent-framework), as_agent, agent-as-tool 오케스트레이션
  • Azure OpenAI(gpt-4o-mini), OpenAIChatCompletionClient(azure_endpoint=...)
  • 서울 실시간 도시데이터(citydata), @tool, httpx
  • 세션 메모리(맥락 유지), 가드레일(환각 방지), Chainlit 웹 UI