Seasalt: 당신의 식욕을 모험으로 바꾸는 AI 에이전트
요약
Seasalt는 사용자의 식욕(craving)을 분석하여 실제 세계의 음식 모험 계획을 세워주는 AI 에이전트입니다. 자연어 입력, 예산, 거리를 고려해 Swiggy MCP 데이터를 활용하며, Gemma를 통해 사용자 취향에 맞는 '음식 여정'을 생성합니다. 이는 사용자가 화면 대신 현실에서 활동하도록 돕는 것을 목표로 합니다.
핵심 포인트
- AI 에이전트를 활용하여 식욕 기반의 음식 모험 계획 수립
- Gemma가 자연어 입력을 해석하고, Swiggy MCP 데이터를 검색에 활용
- 단순 추천을 넘어선 '음식 여정' 생성 및 Python 검증 과정 포함
- 사용자가 현실 세계에서 활동하도록 유도하는 AI 애플리케이션의 예시
_이 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass에 제출하는 내용입니다.
제가 만든 것 (What I Built)
Seasalt는 당신의 식욕을 실제 세계를 탐험할 이유로 바꾸어 주는 AI 기반 음식 모험 에이전트입니다.
만두(momos)가 먹고 싶다가, 이어서 비리야니와 달콤한 디저트가 당기는데, 어디로 가야 할지, 혹은 예산에 맞을지 전혀 감이 오지 않은 적이 있나요?
제가 해결하고 싶었던 문제가 바로 이것입니다.
Seasalt를 사용하면 자연어로 원하는 음식을 설명하고, 예산과 선호 거리를 지정할 수 있으며, Swiggy MCP를 통해 검색된 식당 및 메뉴 정보를 활용하여 AI 에이전트가 음식 모험 계획을 세우도록 할 수 있습니다.
단순히 일반적인 추천 목록을 반환하는 대신, Seasalt는 사용자의 취향에 맞춰진 음식 여정을 만들려고 시도합니다.
🌶️ 매콤한 것이 당기나요? Seasalt에게 말해주세요.
🍰 나중에 달콤한 것이 먹고 싶다면요? 그것도 포함하세요.
💸 지켜야 할 예산이 있나요? Seasalt는 제안된 요리들을 검색된 데이터와 대조하여 총액을 계산합니다.
작동 방식 (How It Works)
- 식욕 설명: 원하는 음식, 예산, 그리고 거리 제한을 입력합니다.
- 요청 이해: Gemma가 사용자의 자연어 입력을 해석합니다.
- 음식 발견: Seasalt는 Swiggy MCP를 사용하여 식당을 검색하고 메뉴 정보를 가져옵니다.
- 모험 계획: Gemma가 검색된 옵션을 사용하여 제안하는 음식 모험을 생성합니다.
- 결과 검증: Python이 요리 이름, 가격, 거리, 예산을 포함한 사용 가능한 식당 데이터와 추천 사항을 확인합니다.
Seasalt의 아이디어는 간단합니다: AI를 활용하여 사람들이 화면에서 시간을 더 보내기보다 실제 세계에서 무언가를 하도록 돕는 것입니다.
현재는 명령줄 애플리케이션입니다. 그래픽 사용자 인터페이스(GUI)를 추가하기 전에 핵심 에이전트 워크플로우 구축에 집중했습니다.
데모 (Demo)
다음은 Seasalt의 성공적인 터미널 실행 예시입니다.
사용자 입력:
i want momos then biryani then sweet under 500
생성된 모험: 비리야니 & 디저트 트레일
짭짤한 비리야니부터 크림 같은 아이스크림까지의 맛있는 여정.
| 정류장 | 레스토랑 | 메뉴 | 가격 |
|---|---|---|---|
| 1 | The Food Factory | 에그 비리야니 (알루 1개 및 계란 2개) | ₹195 |
| ... |
이 테스트가 보여준 것
- ✅ Swiggy OAuth 및 MCP 연결
- ✅ 위치 선택
- ✅ Gemma 갈망(craving) 분석
- ✅ 레스토랑 검색
- ✅ 메뉴 검색
- ✅ AI 생성 음식 모험
- ✅ 레스토랑, 메뉴, 가격에 대한 Python 검증
알려진 한계: 생성된 계획에는 요청했던 모모(momos)가 포함되지 않았습니다. 선호도 커버리지를 개선하는 것이 추가 개발 영역입니다.
이것은 배포된 웹 애플리케이션이나 비디오 녹화가 아닌, 터미널 데모 시연입니다.
코드
🌊 GitHub 저장소: Seasalt on GitHub
이 저장소에는 Python 에이전트, Gemma 통합 기능 및 Swiggy MCP 연결을 위한 지원 코드가 포함되어 있습니다.
소스 코드를 탐색하여 Seasalt가 어떻게 갈망(craving)을 분석하고, 레스토랑 정보를 검색하며, 모험을 생성하고, 추천 사항을 검증하는지 확인해 보세요.
구축 방법
저는 Python, Gemma 및 Swiggy MCP를 사용하여 Seasalt를 만들었습니다.
기술 스택
- Python: 핵심 애플리케이션 로직 및 결정론적 검증.
- Gemma 4: 자연어 이해(NLU) 및 음식 모험 생성.
- Gemini API: Gemma 모델에 대한 접근.
- Swiggy MCP: 레스토랑 검색 및 메뉴 검색.
- HTTPX 및 비동기 네트워킹: 외부 서비스와의 통신.
에이전트 워크플로우
이 애플리케이션은 AI 추론과 실제 데이터를 결합합니다.
먼저, Gemma가 사용자의 요청을 해석합니다. 그런 다음 Seasalt는 Swiggy MCP를 통해 레스토랑 및 메뉴 정보를 검색하고, 모험 생성을 위해 가능한 옵션들을 모델에 제공합니다.
하지만 저는 모든 세부 사항을 정확하게 얻기 위해 전적으로 모델에 의존하고 싶지 않았습니다.
AI가 생성한 추천은 예산 초과하거나 검색된 메뉴에 없는 요리를 포함할 수 있어 그럴듯하게 들릴 수 있습니다. 이를 해결하기 위해 저는 제안된 추천을 사용 가능한 데이터와 비교하고 총 비용을 재계산하는 Python 검증 계층(validation layer)을 구현했습니다.
AI가 생성한 계획과 결정론적 검증(deterministic validation) 사이의 이러한 분리는 프로젝트에서 중요한 부분입니다.
모델이 모험을 제안하면, 애플리케이션은 그 추천이 검증할 수 있는 제약 조건을 충족하는지 확인합니다.
현재 구현은 로컬에서 추론(inference)을 실행하기보다는 호스팅된 Gemma API를 사용합니다.
Open Innovation이 중요한 이유
Open innovation은 서로 다른 도구, 모델 및 서비스를 처음부터 모든 것을 구축할 필요 없이 결합하여 아이디어를 실험할 수 있게 합니다.
Seasalt는 오픈 웨이트(open-weight) AI 모델, MCP 기반 외부 서비스, 그리고 사용자 지정 Python 로직을 통합하여 기존의 챗봇보다 더 구체적인 무언가를 만듭니다.
모델은 유연한 인간 언어를 해석하고 계획을 생성하는 데 도움을 줍니다. MCP는 애플리케이션을 레스토랑 데이터에 연결할 수 있는 방법을 제공합니다. Python은 언어 모델에만 의존해서는 안 되는 검사(checks)를 처리합니다.
이러한 모듈식 접근 방식 덕분에 저는 애플리케이션 로직을 제어하면서 전체 워크플로우를 실험하는 것이 가능했습니다.
또한 프로젝트 확장이 더 쉬워집니다. 다른 개발자들은 구현을 탐색하고, 검증 기능을 개선하거나, 다양한 계획 방식을 실험하거나, 에이전트를 중심으로 새로운 인터페이스를 구축할 수 있습니다.
저에게 Open innovation이란 기술들을 결합하여 무언가를 만들고, 그 결과를 공유하며, 다른 사람들이 개선할 수 있도록 만드는 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기