TL;DR

  • Friday Assistant는 Flutter 기반 음성 활성화 개인 AI 동반자로, 장기 기억·실시간 웹 접근·백그라운드 선제 알림을 제공함.
  • Groq의 Llama 3.3 70B를 사용하는 AI 서비스와 Supabase 기반 기억 저장소, 웹 검색 도구를 결합함.
  • 홀로그램 미학의 인터페이스와 음성 반응형 Friday Orb, 상태 표시 HUD, 햅틱 및 음향 피드백을 갖춤.
  • Android, iOS, 웹, 데스크톱을 지원하며 영어·프랑스어·독일어·스페인어·힌디어 음성 기능을 제공함.
  • 오디오 데이터를 저장하지 않고 개인 기억을 Supabase의 행 수준 보안(RLS)으로 보호하는 구성을 제시함.

Friday Assistant란

  • Friday Assistant는 Flutter로 구축한 차세대 음성 활성화 개인 AI 동반자임.
  • ‘공상과학 우선(Sci-Fi First)’ 철학에 따라 최신 대형 언어 모델(LLM)과 홀로그램 미학, 반응형 애니메이션, 선제형 지능을 갖춘 몰입형 인터페이스를 결합함.
  • 일반 챗봇과 달리 장기 기억, 실시간 웹 접근, 앱이 백그라운드에 있을 때도 사용자를 살피는 선제적 센티널 모드를 제공함.

Friday Assistant를 선택하는 이유

  • 음성 우선 인터페이스: 핸즈프리 조작
  • 장기 기억: 세션을 넘나들며 사용자 선호를 기억
  • 선제 알림: 충돌이 발생하기 전에 알림
  • 도구 통합: 앱 열기, 메시지 전송, 길 안내
  • 멀티플랫폼: Android, iOS, 웹, 데스크톱
  • 개인정보 보호 중심: 사용자 데이터가 Supabase 보관소에 저장됨

기능

미래형 UI/UX

  • Friday Orb: 음성 진폭에 반응하고, 처리 중에는 맥박처럼 움직이며, 대기·청취·처리·발화 상태에 따라 모습이 바뀌는 중앙의 생동감 있는 코어임.
  • 홀로그램 미학: 글래스모피즘 효과, 네온 그라데이션, 동적인 파티클 필드 배경으로 구성됨.
  • Neural HUD: Neural Link 표시기와 활성 Memory Node 수를 포함한 실시간 시스템 상태 표시임.
  • 몰입형 피드백: 모든 상호작용에 햅틱 피드백과 구분되는 음향 효과를 제공함.

고급 지능

  • FridayBrainService: Groq의 Llama 3.3 70B를 활용해 빠른 추론과 복합 추론을 제공함.
  • 에이전트 워크플로: 사고 과정 단계를 ‘사고 → 웹 검색 → 기억 접근 → 종합’으로 시각화함.
  • Memory Auditor: 기존 기억과 정보를 대조해 충돌을 방지하는 자율 하위 에이전트임.
  • 도구 통합:
  • web_search: 날씨, 뉴스, 주가 등 실시간 데이터 가져오기
  • save_memory 및 search_memory: 개인 사실과 선호를 위한 Supabase Vault 통합

선제적 센티널 시스템

  • 백그라운드 알림: 일정, 날씨, 환경을 대상으로 예약된 백그라운드 점검을 수행함.
  • 상황 인식: “오후 3시 야외 회의에 비 예보가 있으니 우산을 챙기세요”와 같은 지능형 알림을 제공함.
  • 수동 진단: 즉각적인 분석을 위해 센티널 점검을 바로 실행할 수 있음.

음성 인터페이스

  • 다국어 지원: 영어, 프랑스어, 독일어, 스페인어, 힌디어
  • 실시간 전사: 매끄러운 음성-텍스트 받아쓰기
  • 자연스러운 음성: 고품질 텍스트 음성 변환(TTS) 응답 시스템

개인정보 보호 및 보안

  • 로컬 처리: 초기 추론에 Groq의 고속 추론을 사용함.
  • 암호화된 보관소: 개인 기억을 행 수준 보안(RLS)이 적용된 비공개 Supabase 인스턴스에 저장함.
  • 최소 데이터 처리: 오디오 데이터를 저장하지 않으며, 음성-텍스트 변환(STT) 데이터는 실시간 처리 후 폐기함.

기술 스택

  • 프레임워크: Flutter(Dart)
  • AI 백엔드: Groq API(Llama 3.3 70B)
  • 데이터베이스: Supabase(PostgreSQL)
  • 상태 관리: 기본 setState 및 스트림
  • 애니메이션: flutter_animate 및 사용자 지정 페인터
  • 음성: speech_to_text 및 flutter_tts
  • 백그라운드 작업: workmanager
  • 알림: flutter_local_notifications

시작하기

사전 준비

  • Flutter SDK v3.10 이상 설치
  • chat_messages 및 Friday_memory 테이블이 있는 Supabase 프로젝트
  • LLM 추론용 Groq API 키

설치

  • 저장소를 복제하고 프로젝트 디렉터리로 이동: git clone https://github.com/dj2313/jarvis_assistant.git 및 cd jarvis_assistant
  • 루트 디렉터리에 .env 파일을 만들고 GROQ_API_KEY=your_groq_api_key_here, SUPABASE_URL=your_supabase_url_here, SUPABASE_ANON_KEY=your_supabase_anon_key_here를 설정함.
  • flutter pub get으로 의존성을 설치함.
  • flutter run으로 앱을 실행함.

프로젝트 구조

  • lib/core/: 구성 및 상수
  • lib/models/: 데이터 모델(ChatMessage 등)
  • lib/screens/: UI 화면
  • friday_home_screen.dart: 기본 HUD 인터페이스
  • friday_initialization_screen.dart: 시작 시퀀스
  • lib/services/: 로직 및 API 계층
  • friday_brain_service.dart: AI 코어, Groq 통합 및 도구
  • memory_service.dart: Supabase 데이터베이스 상호작용
  • vocal_service.dart: TTS 및 STT 처리
  • lib/widgets/: 재사용 가능한 UI 구성 요소
  • friday_orb.dart: 애니메이션 AI 코어

기여

  • 기여를 환영하며, 가이드라인은 CONTRIBUTING.md에서 확인 가능함.

라이선스

  • 이 프로젝트는 MIT 라이선스로 제공되며 자세한 내용은 LICENSE에 명시됨.