Canva Link https://www.canva.com/design/DAGkcA9ANUQ/pRWtXTYj6z4Q9G5ClW8-Qg/view?utm_content=DAGkcA9ANUQ&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h38a74e1d6a

Github Link https://github.com/dominhok/CodeWave

๐Ÿ’กInspiration

The inspiration behind CodeWave - Disaster Safety Alert System came from the limitations of traditional emergency alert systems.

CodeWave - ์žฌ๋‚œ ์•ˆ์ „ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ๊ธฐ์กด์˜ ์ „ํ†ต์ ์ธ ์žฌ๋‚œ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์˜ ํ•œ๊ณ„์—์„œ ์ถœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.


โ“ What it Does

CodeWave - Disaster Safety Alert System is a platform that delivers targeted alerts during disaster situations for the vulnerable classes. It notifies users based on their vulnerability type, disaster type and location using SMS and voice calls, interprets their voice responses for signs of distress, and routes critical information to emergency contacts when necessary. It also provides interactive map guidance to nearby shelters and offers summarized voice reports for real-time situational awareness. This system is especially designed to assist at-risk populations who may need tailored support during emergencies.

CodeWave - ์žฌ๋‚œ ์•ˆ์ „ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ์žฌ๋‚œ ์ƒํ™ฉ์—์„œ ์ทจ์•ฝ ๊ณ„์ธต์„ ์œ„ํ•œ ๋งž์ถคํ˜• ์•Œ๋ฆผ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์œ ํ˜•, ์žฌ๋‚œ ์œ ํ˜•, ์œ„์น˜ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ SMS์™€ ์Œ์„ฑ ์ „ํ™”๋ฅผ ํ†ตํ•ด ์•Œ๋ฆผ์„ ์ „๋‹ฌํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์˜ ์Œ์„ฑ ์‘๋‹ต์„ ๋ถ„์„ํ•ด ์œ„๊ธ‰ ์‹ ํ˜ธ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ํ•„์š” ์‹œ ๊ธด๊ธ‰ ์—ฐ๋ฝ์ฒ˜๋กœ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ฃผ๋ณ€ ๋Œ€ํ”ผ์†Œ๋กœ์˜ ์ง€๋„ ์•ˆ๋‚ด์™€ ์‹ค์‹œ๊ฐ„ ์ƒํ™ฉ ์ธ์‹์„ ์œ„ํ•œ ์š”์•ฝ ์Œ์„ฑ ๋ฆฌํฌํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ ํŠนํžˆ ์žฌ๋‚œ ์‹œ ๋งž์ถคํ˜• ์ง€์›์ด ํ•„์š”ํ•œ ์ทจ์•ฝ ๊ณ„์ธต์„ ๋•๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ› ๏ธ How We Built It

  • Backend Framework: FastAPI for asynchronous web APIs.
  • Database: SQLAlchemy with SQLite (default), ready for production upgrades like PostgreSQL.
  • Vector Store & RAG: FAISS for semantic search across disaster manuals, powered by Upstage AI LLMs for Retrieval-Augmented Generation (RAG).
  • Voice Interpretation: Upstage AI analyzes voice input for emergency intent.
  • Communication Integration: Twilio handles SMS and voice calling (TTS, STT and voice response).
  • Geolocation Services: KakaoMap API geocodes user addresses; shelter data is fetched from Koreaโ€™s Safety Data Portal.
  • Maps: Naver Maps (JavaScript) provides a disaster map interface, showing epicenters, user locations, and nearby shelters.
  • Multi-language Support: Basic KOโ†’EN translation via Upstage AI.
  • Deployment Support: Uvicorn ASGI server, dotenv for environment management, and Ngrok for local webhook tunneling.
  • Frontend Support: HTML/CSS, JavaScript and React.js for interactive disaster maps (static folder setup).

  • Backend Framework: FastAPI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์›น API๋ฅผ ๊ตฌ์ถ•

  • Database: SQLAlchemy์™€ SQLite(๊ธฐ๋ณธ๊ฐ’)๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ์ถ”ํ›„ PostgreSQL ๊ฐ™์€ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ์˜ ํ™•์žฅ ๊ฐ€๋Šฅ.

  • Vector Store & RAG: FAISS๋ฅผ ํ™œ์šฉํ•œ ์žฌ๋‚œ ๋งค๋‰ด์–ผ์˜ ์‹œ๋งจํ‹ฑ ๊ฒ€์ƒ‰๊ณผ Upstage AI LLM์„ ํ†ตํ•œ RAG(Retrieval-Augmented Generation)๋ฅผ ๊ตฌํ˜„

  • Voice Interpretation: Upstage AI๊ฐ€ ์Œ์„ฑ ์ž…๋ ฅ์„ ๋ถ„์„ํ•ด ๊ธด๊ธ‰ ์ƒํ™ฉ ์˜๋„๋ฅผ ํŒŒ์•…

  • Communication Integration: Twilio๋ฅผ ํ†ตํ•ด SMS ๋ฐ ์Œ์„ฑ ํ†ตํ™”(TTS, STT, ์Œ์„ฑ ์‘๋‹ต)๋ฅผ ์ฒ˜๋ฆฌ

  • Geolocation Services: ์นด์นด์˜ค๋งต API๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ฃผ์†Œ๋ฅผ ์ง€์˜ค์ฝ”๋”ฉํ•˜๊ณ , ๋Œ€ํ”ผ์†Œ ์ •๋ณด๋Š” ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ(์•ˆ์ „์ •๋ณดํฌํ„ธ)์—์„œ ๊ฐ€์ ธ์˜ด

  • Maps: Naver Maps(JavaScript)๋ฅผ ์‚ฌ์šฉํ•ด ์žฌ๋‚œ ์ง€๋„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ, ์ง„์•™์ง€, ์‚ฌ์šฉ์ž ์œ„์น˜, ์ธ๊ทผ ๋Œ€ํ”ผ์†Œ๋ฅผ ์ „์†ก

  • Multi-language Support: Upstage AI๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์ธ ํ•œ๊ตญ์–ดโ†’์˜์–ด ๋ฒˆ์—ญ ๊ธฐ๋Šฅ์„ ์ œ๊ณต

  • Deployment Support: Uvicorn ASGI ์„œ๋ฒ„, dotenv๋ฅผ ํ†ตํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ, Ngrok์œผ๋กœ ๋กœ์ปฌ ์›นํ›… ํ„ฐ๋„๋ง์„ ์ง€์›

  • Frontend Support: HTML/CSS์™€ JavaScript, React.js๋ฅผ ์‚ฌ์šฉํ•ด ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์žฌ๋‚œ ์ง€๋„๋ฅผ ๊ตฌ์„ฑ


๐Ÿšง Challenges We Ran Into

  • Emergency Escalation: Safely routing voice messages to emergency contacts without false positives or missed distress cases required rigorous intent classification logic.
  • Voice Understanding: Accurately interpreting user responses over calls required careful prompt tuning and testing with Claude to differentiate between general queries and distress calls.
  • Webhook Testing: Twilio's webhook system required stable public URLs, and free tunneling services (like Ngrok) sometimes introduced latency or blocking interstitials.
  • Vector Store Preparation: Creating meaningful vector representations from diverse and sometimes unstructured disaster manuals was non-trivial. The quality of response from RAG heavily depended on the preprocessing of .txt content.

  • ๊ธด๊ธ‰ ์ƒํ™ฉ ๋Œ€์‘: ์Œ์„ฑ ๋ฉ”์‹œ์ง€๋ฅผ ๊ธด๊ธ‰ ์—ฐ๋ฝ์ฒ˜๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •์—์„œ, ์˜๋„์น˜ ์•Š์€ ์‹ ๊ณ ๋‚˜ ๊ธด๊ธ‰ ์ƒํ™ฉ์„ ๋†“์น˜์ง€ ์•Š๋„๋ก ์‹ ๊ณ  ๋ถ„๋ฅ˜ ๋กœ์ง์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์Œ์„ฑ ์ดํ•ด: ์Œ์„ฑ ํ†ตํ™”์—์„œ ์‚ฌ์šฉ์ž์˜ ์‘๋‹ต์„ ์ •ํ™•ํžˆ ํ•ด์„ํ•˜๊ธฐ ์œ„ํ•ด, ์ผ๋ฐ˜์ ์ธ ์งˆ๋ฌธ๊ณผ ๊ธด๊ธ‰ ํ†ตํ™”๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก Claude์™€ ํ•จ๊ป˜ ํ”„๋กฌํ”„ํŠธ ํŠœ๋‹๊ณผ ํ…Œ์ŠคํŠธ๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ์ง„ํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฒกํ„ฐ DB: ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ์žฌ๋‚œ ๋งค๋‰ด์–ผ์—์„œ ์œ ์˜๋ฏธํ•œ ๋ฒกํ„ฐ ํ‘œํ˜„์„ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์€ ์‰ฝ์ง€ ์•Š์•˜์œผ๋ฉฐ, RAG ์‘๋‹ต์˜ ํ’ˆ์งˆ์€ .txt ํŒŒ์ผ ์ „์ฒ˜๋ฆฌ ์ˆ˜์ค€์— ํฌ๊ฒŒ ์ขŒ์šฐ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์›นํ›… ํ…Œ์ŠคํŠธ: Twilio์˜ ์›นํ›… ์‹œ์Šคํ…œ์€ ์•ˆ์ •์ ์ธ ๊ณต๊ฐœ URL์„ ์š”๊ตฌํ–ˆ์œผ๋ฉฐ, Ngrok๊ณผ ๊ฐ™์€ ๋ฌด๋ฃŒ ํ„ฐ๋„๋ง ์„œ๋น„์Šค๋Š” ๋•Œ๋•Œ๋กœ ์ง€์—ฐ ์‹œ๊ฐ„์ด๋‚˜ ์„œ๋น„์Šค ์ฐจ๋‹จ ๋ฌธ์ œ๋ฅผ ์ผ์œผ์ผœ ์•ˆ์ •์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค.


๐Ÿ† Accomplishments That We're Proud Of

  • Personalized, AI-Generated Alerts: Using large language models (LLMs) and Retrieval-Augmented Generation (RAG), alert messages are tailored to the user's personal status and the specific disaster situation, improving clarity and relevance.
  • Automatic Escalation to Emergency Contacts: Upon receiving a response from the user, intelligent triage using Claude analyzes the situation to determine if it is an emergency and then escalates it to the appropriate emergency contacts, all without human intervention.
  • Voice-Aware Safety System: We have seamlessly integrated voice AI into a real-time emergency alert system with an asynchronous workflow, enabling natural and efficient interaction for users in need of assistance.
  • Multi-Modal Outreach: The system supports both SMS and voice delivery channels, making it accessible across a broad range of user abilities and preferences.
  • Live Disaster Mapping: Real-time, browser-based interactive maps that allow users to track the current disaster location and evacuation routes to near shelters through a link provided via SMS.

  • ๊ฐœ์ธํ™”๋œ AI ์ƒ์„ฑ ์•Œ๋ฆผ: ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)๊ณผ Retrieval-Augmented Generation(RAG)์„ ํ™œ์šฉํ•˜์—ฌ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ์ƒํƒœ์™€ ํŠน์ • ์žฌ๋‚œ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๋งž์ถคํ™”ํ•จ์œผ๋กœ์จ, ๋ช…ํ™•์„ฑ๊ณผ ๊ด€๋ จ์„ฑ์„ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

  • ๊ธด๊ธ‰ ์—ฐ๋ฝ์ฒ˜๋กœ์˜ ์ž๋™ ์‹ ๊ณ  ์‹œ์Šคํ…œ: ์‚ฌ์šฉ์ž์˜ ์‘๋‹ต์„ ๋ฐ›์€ ํ›„, Claude๋ฅผ ์ด์šฉํ•œ ์ง€๋Šฅํ˜• ํŠธ๋ฆฌ์•„์ง€๊ฐ€ ์ƒํ™ฉ์„ ๋ถ„์„ํ•˜์—ฌ ๊ธด๊ธ‰ ์ƒํ™ฉ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๊ณ , ์ ์ ˆํ•œ ๊ธด๊ธ‰ ์—ฐ๋ฝ์ฒ˜๋กœ ์ž๋™์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ณผ์ •์€ ์‚ฌ๋žŒ์˜ ๊ฐœ์ž… ์—†์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • AI ์Œ์„ฑ ์‹œ์Šคํ…œ: ์Œ์„ฑ AI๋ฅผ ์‹ค์‹œ๊ฐ„ ๊ธด๊ธ‰ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์— ํ†ตํ•ฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ณ  ํšจ์œจ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋„์›€์ด ํ•„์š”ํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์‹œ๋‹ค๋ฐœ์ ์œผ๋กœ ๋” ๋‚˜์€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์ค‘ ๋ชจ๋“œ ์‹ ๊ณ : ์‹œ์Šคํ…œ์€ SMS์™€ ์Œ์„ฑ ์ „๋‹ฌ ์ฑ„๋„์„ ๋ชจ๋‘ ์ง€์›ํ•˜์—ฌ, ์‚ฌ์šฉ์ž๋“ค์˜ ์ƒํ™ฉ๊ณผ ์„ ํ˜ธ๋„๋ฅผ ์ถฉ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹ค์‹œ๊ฐ„ ์žฌ๋‚œ ์ง€๋„: ์‹ค์‹œ๊ฐ„ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ง€๋„๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ์žฌ๋‚œ ์œ„์น˜์™€ ๋Œ€ํ”ผ์†Œ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋ฅผ SMS๋กœ ์ œ๊ณต๋œ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“š What We Learned

  • LLMs for Emergency Use-Cases: With proper guardrails and prompt design, large language models can be powerful tools in high-stakes, time-sensitive scenarios like disaster response.
  • API Interoperability: Building a resilient system that integrates multiple APIs (Twilio, Kakao, Naver, Upstage, Anthropic) involves error handling, retries, and good observability.
  • Platform Integration is Crucial: Coordinating communication across different platforms (SMS, voice calls, maps, dashboards, emergency contact systems) requires clear interface contracts and reliable state management to ensure consistent, timely user experiences.
  • Language Accessibility: Translation support, even basic, can make a significant difference in user reach and comprehension in multilingual communities.
  • Preparedness is a Data Problem: The effectiveness of RAG systems hinges on the availability of clear, well-structured, and relevant disaster manuals.

  • LLM์˜ ์žฌ๋‚œ์‹œ ํ™œ์šฉ: ์ ์ ˆํ•œ ๊ฐ€๋“œ๋ ˆ์ผ๊ณผ ํ”„๋กฌํ”„ํŠธ ์„ค๊ณ„๋ฅผ ํ†ตํ•ด ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ(LLMs)์€ ์žฌ๋‚œ ๋Œ€์‘๊ณผ ๊ฐ™์€ ๊ณ ์œ„ํ—˜, ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • API ํ†ตํ•ฉ: ์—ฌ๋Ÿฌ API(Twilio, Kakao, Naver, Upstage, Anthropic)๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฒฌ๊ณ ํ•œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ, ์ง€์†์ ์ธ ๊ด€์ฐฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”Œ๋žซํผ ํ†ตํ•ฉ์˜ ์ค‘์š”์„ฑ: SMS, ์Œ์„ฑ ํ†ตํ™”, ์ง€๋„, ๋Œ€์‹œ๋ณด๋“œ, ๊ธด๊ธ‰ ์—ฐ๋ฝ์ฒ˜ ์‹œ์Šคํ…œ ๋“ฑ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ํ†ตํ•ฉํ•˜๋ ค๋ฉด ๋ช…ํ™•ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„์™€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

  • ์–ธ์–ด ์ ‘๊ทผ์„ฑ: ๊ธฐ๋ณธ์ ์ธ ๋ฒˆ์—ญ ์ง€์›๋งŒ์œผ๋กœ๋„ ๋Œ€ํ•œ๋ฏผ๊ตญ์— ๊ฑฐ์ฃผํ•˜๋Š” ์™ธ๊ตญ์ธ๋“ค์ด ์žฌ๋‚œ ์ƒํ™ฉ์—์„œ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‹ ๊ณ ํ•˜๊ฑฐ๋‚˜ ์•ˆ๋‚ด๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ์กด์— ์ž˜ ๊ฐ€๊ณต๋œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ: RAG ์‹œ์Šคํ…œ์˜ ํšจ์œจ์€ ๋ช…ํ™•ํ•˜๊ณ  ์ž˜ ๊ตฌ์กฐํ™”๋œ ๊ด€๋ จ ์žฌ๋‚œ ๋งค๋‰ด์–ผ ์ฆ‰, ์ž˜ ์ •์ œ๋œ ๋ฐ์ดํ„ฐ์— ํฐ ํž˜์„ ๋ฐœํœ˜ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”ฎ What's Next for Our Project

  • Real-Time Alert Service Improvements: Continuously enhance real-time notification services to ensure faster, more accurate delivery of disaster-related updates.
  • Expanded Vulnerability Segmentation: Further refine user vulnerability categories to provide even more personalized services, targeting specific needs based on physical, visual, or cognitive impairments.
  • International Expansion: Explore the potential for expanding the service to international markets, ensuring accessibility for users in different regions.
  • Improved Multilingual Translation: Expand to more language pairs (e.g., ENโ†”JP, ENโ†”ZH) with backtranslation verification.
  • Community Engagement and Feedback: Establish mechanisms for user feedback to inform ongoing improvements and ensure the system remains aligned with the needs of vulnerable populations.
  • Admin mode : This mode is designed for public officials or system administrators to assist vulnerable individuals such as the elderly living alone. It allows bulk user registration via Excel upload and other administrative tools.
  • Phone Call Retry System: In case the user does not answer the phone, the system will automatically retry calling every 5 minutes. Additionally, the data will be forwarded to fire departments or government agencies to ensure appropriate action is taken.

  • ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ์„œ๋น„์Šค ๊ณ ๋„ํ™”: ์žฌ๋‚œ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋”์šฑ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ์„œ๋น„์Šค๋ฅผ ๊ณ ๋„ํ™” ํ•˜๋Š” ๋ฐฉ์•ˆ์„ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ทจ์•ฝ์„ฑ ์„ธ๋ถ„ํ™” ํ™•๋Œ€: ์‹ ์ฒด์ , ์‹œ๊ฐ์ , ์ธ์ง€์  ํŠน์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž ์œ ํ˜•์„ ๋ณด๋‹ค ์ •๋ฐ€ํ•˜๊ฒŒ ๋ถ„๋ฅ˜ํ•˜์—ฌ, ๊ฐ ์ƒํ™ฉ์— ๋งž์ถ˜ ์„ธ๋ฐ€ํ•œ ๋งž์ถคํ˜• ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹œ์žฅ ํ™•๋Œ€์„ฑ: ์„œ๋น„์Šค๋ฅผ ํ•ด์™ธ๋กœ ํ™•์žฅํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋ชจ์ƒ‰ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์ง€์—ญ์˜ ์‚ฌ์šฉ์ž๋“ค๋„ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ ‘๊ทผ์„ฑ๊ณผ ํ˜ธํ™˜์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹ค๊ตญ์–ด ๋ฒˆ์—ญ ๊ธฐ๋Šฅ ๊ฐœ์„ : ๋” ๋งŽ์€ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋„๋ก ํ™•์žฅํ•˜๊ณ , ์—ญ๋ฒˆ์—ญ์˜ ์ •ํ™•์„ฑ๊ณผ ์‹ ๋ขฐ๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฐธ์—ฌ ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜: ์‚ฌ์šฉ์ž ์˜๊ฒฌ์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ฒด๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ, ์‹œ์Šคํ…œ์ด ์‹ค์ œ ์ทจ์•ฝ ๊ณ„์ธต์˜ ์š”๊ตฌ์— ๋ถ€ํ•ฉํ•˜๋„๋ก ์ง€์†์ ์œผ๋กœ ์ ๊ฒ€ํ•˜๊ณ  ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ–‰์ • ๋ชจ๋“œ(๊ฐ€์นญ) : ์ด ๋ชจ๋“œ๋Š” ์ง€์—ญ ๋‹ด๋‹น ๊ณต๋ฌด์› ๋“ฑ ๊ด€๋ฆฌ์ž ๊ณ„์ •์—์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—‘์…€ ํŒŒ์ผ ๋“ฑ์„ ํ†ตํ•ด ๋ณต์ˆ˜ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€๋ฆฌ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋…๊ฑฐ๋…ธ์ธ ๋ถ„๋“ค๊ณผ ๊ฐ™์ด ์Šค์Šค๋กœ ๋“ฑ๋ก ๋ฐ ๋Œ€๋ฆฌ์‹ ์ฒญ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ถ„๋“ค์„ ์œ„ํ•œ ํ–‰์ • ์ง€์› ์ˆ˜๋‹จ์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์ „ํ™” ์žฌ์‹œ๋„ ์‹œ์Šคํ…œ: ์‚ฌ์šฉ์ž๊ฐ€ ์ „ํ™”๋ฅผ ๋ฐ›์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์‹œ์Šคํ…œ์€ 5๋ถ„๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์ „ํ™”๋ฅผ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ์†Œ๋ฐฉ์„œ๋‚˜ ์ •๋ถ€๊ธฐ๊ด€์— ์ „๋‹ฌ๋˜์–ด ์ ์ ˆํ•œ ์กฐ์น˜๊ฐ€ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงฐ Built With

  • Python (FastAPI, SQLAlchemy, Uvicorn)
  • Twilio (Programmable SMS, Voice, TTS)
  • Upstage AI (Translation)
  • Anthropic Claude (RAG, LLM, Voice Response Intent Classification)
  • FAISS (Vector Search for Disaster Manual RAG)
  • Langchain (LLM Orchestration)
  • KakaoAPI (Address Geocoding)
  • NaverMapsAPI (Interactive Shelter Maps)
  • SQLite (Default DB for Development)
  • Ngrok (Webhook Tunneling)
  • Pydantic, dotenv, httpx (Validation and Config)

Built With

Share this project:

Updates