Voice AGI Notepad Agent
ใใผใใใใใปใชใขใซใฟใคใ ้ณๅฃฐใปๆฑ็จไบบๅทฅ็ฅ่ฝใปFlutter ใขใใชใ
- ๐ค ใชใขใซใฟใคใ ้ณๅฃฐไผ่ฉฑ - ใตใผใใผใในใๅ Voice Agent ใซใใ่ช็ถใชๅฏพ่ฉฑ
- ๐ค ๆฑ็จไบบๅทฅ็ฅ่ฝ - GPT-4oใซใใ้ซๅบฆใชๆจ่ซใจๅฟ็ญ
- ๐ ใใผใใใใๆฉ่ฝ - ใใณใบใใชใผๆๆธไฝๆใป็ทจ้
- ๐ง ใใญในใใจใผใธใงใณใ - ๆทฑใๅๆใจ้ทๆ็ๆใซ็นๅใใAIใขใทในใฟใณใ (NEW)
- ๐ ๏ธ ๅผทๅใใใใใผใซใทในใใ - ้ณๅฃฐใจใผใธใงใณใใใใใญในใใจใผใธใงใณใใธใฎใฏใจใชๆฉ่ฝ (NEW)
- โ๏ธ ใใญใฐใฉใใใฃใใฏ้่ฉฑๅถๅพก - AIใซใใ่ชๅ้่ฉฑ็ตไบๆฉ่ฝ (NEW)
- ๐ฑ ใฏใญในใใฉใใใใฉใผใ - Android / iOS / Windows / Web ๅฏพๅฟ
- ๐จ ในใฟใคใชใใทใฅใช UI - ใขใใณใชใใถใคใณ
(ๆบๅไธญ)
- Flutter SDK 3.27.1 (fvm ็ต็ฑใง็ฎก็)
- VAGINA server API ใธใฎๆฅ็ถ่จญๅฎ
ใใฎใใญใธใงใฏใใฏ fvm (Flutter Version Management) ใไฝฟ็จใใฆ Flutter ใฎใใผใธใงใณใ็ฎก็ใใฆใใพใใ
# Dart ใใคใณในใใผใซๆธใฟใฎๅ ดๅ
dart pub global activate fvm
# ใพใใฏ Homebrew (macOS/Linux)
brew tap leoafarias/fvm
brew install fvm่ฉณ็ดฐใฏ fvm ใฎๅ ฌๅผใใญใฅใกใณใ ใๅ็ งใใฆใใ ใใใ
# ใใญใธใงใฏใใงๆๅฎใใใใใผใธใงใณใฎ Flutter ใใคใณในใใผใซ
fvm install
# fvm ็ต็ฑใง Flutter ใณใใณใใๅฎ่ก
fvm flutter --version
fvm flutter pub get
fvm flutter run
# IDE ใง fvm ใไฝฟ็จใใๅ ดๅ
# .fvm/flutter_sdk ใไฝๆใใใใฎใงใใใฎใในใ IDE ใซ่จญๅฎใใฆใใ ใใๆณจๆ: devcontainer ใไฝฟ็จใใๅ ดๅใfvm ใฏ่ชๅ็ใซ่จญๅฎใใใพใใ
ในใฏใชใผใณ/ใฟใ/ใใผใณ/ใปใฐใกใณใใฎ้ ็ฝฎใซใผใซใ็ฐกๆใใงใใฏใใพใใ
python3 scripts/ui_structure_check.py --lib ./lib# ใชใใธใใชใใฏใญใผใณ
git clone https://github.com/yuki-js/vagina.git
cd vagina
# fvm ใง Flutter ใใคใณในใใผใซ
fvm install
# ไพๅญ้ขไฟใใคใณในใใผใซ
fvm flutter pub get
# ใขใใชใๅฎ่ก
fvm flutter rundevcontainer ใไฝฟ็จใใใจใfvm ใจ Flutter 3.27.1 ใ่ชๅ็ใซใปใใใขใใใใใพใใ
# VS Code ใง้ใ
code .
# Command Palette ใใ "Dev Containers: Reopen in Container" ใ้ธๆ
# devcontainer ๅ
ใงใฏ fvm ใ่จญๅฎๆธใฟใชใฎใงใ็ดๆฅ flutter ใณใใณใใไฝฟ็จๅฏ่ฝ
flutter --version
flutter pub get
flutter run้ณๅฃฐใจใผใธใงใณใใฏใตใผใใผๅด registry ใง็ฎก็ใใใพใใใฏใฉใคใขใณใใฏ provider ๅใbase URLใAPI ใญใผใไฟๆใใใSpeed Dial ใใจใซ server registry ใฎ Voice Agent ใ้ธๆใใพใใ
vagina/
โโโ lib/
โ โโโ main.dart # ใจใณใใชใผใใคใณใ
โ โโโ config/ # ใขใใชใฑใผใทใงใณ่จญๅฎ
โ โโโ core/ # ใณใขๆฉ่ฝ
โ โ โโโ state/ # ็ถๆ
็ฎก็ใใญใใคใใผ
โ โโโ feat/ # ๆฉ่ฝๅฅใใฃใฌใฏใใช๏ผFeature-first๏ผ
โ โ โโโ home/ # ใใผใ ๆฉ่ฝ
โ โ โ โโโ screens/ # ็ป้ข
โ โ โ โโโ tabs/ # ใฟใUI
โ โ โโโ call/ # ้่ฉฑๆฉ่ฝ
โ โ โ โโโ screens/ # ็ป้ข
โ โ โ โโโ panes/ # ใใคใณUI๏ผChat/Call/Notepad๏ผ
โ โ โ โโโ widgets/ # ใฆใฃใธใงใใ
โ โ โ โโโ state/ # ็ถๆ
็ฎก็
โ โ โโโ session/ # ใปใใทใงใณๆฉ่ฝ
โ โ โ โโโ screens/ # ็ป้ข
โ โ โ โโโ segments/ # ใปใฐใกใณใUI
โ โ โ โโโ widgets/ # ใฆใฃใธใงใใ
โ โ โ โโโ state/ # ็ถๆ
็ฎก็
โ โ โโโ settings/ # ่จญๅฎๆฉ่ฝ
โ โ โโโ oobe/ # ๅๅ่ตทๅใใญใผ
โ โ โโโ speed_dial/ # ในใใผใใใคใคใซ่จญๅฎ
โ โ โโโ about/ # ใขใใชใซใคใใฆ
โ โโโ models/ # ใใผใฟใขใใซ
โ โโโ services/ # ใใธใในใญใธใใฏใปAPI
โ โ โโโ call_service.dart
โ โ โโโ realtime_api_client.dart
โ โ โโโ chat/ # ใใฃใใ้ข้ฃ
โ โ โโโ tools/ # ใใผใซใทในใใ
โ โ โโโ platform/ # ใใฉใใใใฉใผใ ๅบๆ
โ โโโ repositories/ # ใใผใฟๆฐธ็ถๅ
โ โโโ data/ # ในใใฌใผใธๅฎ่ฃ
โ โโโ interfaces/ # ใชใใธใใชใคใณใฟใผใใงใผใน
โ โโโ widgets/ # ๅ
ฑๆUIใณใณใใผใใณใ
โ โโโ theme/ # ใใผใๅฎ็พฉ
โ โโโ utils/ # ใฆใผใใฃใชใใฃ
โโโ test/ # ใในใใณใผใ
โโโ docs/ # ใใญใฅใกใณใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ UI Layer (Screens) โ
โ HomeScreen, CallScreen, ChatPage, NotepadPage โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ State Management (Riverpod) โ
โ Providers, Notifiers, StreamProviders โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Business Logic (Services) โ
โ CallService, RealtimeApiClient, ToolService โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Data Layer (Repositories) โ
โ ConfigRepository, MemoryRepository, etc. โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Storage (JsonFileStore) โ
โ File I/O, Web localStorage โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- ใใญในใใจใผใธใงใณใ ใฆใผใถใผใฌใคใ - ใใญในใใจใผใธใงใณใใฎไฝฟใๆน
- ้ณๅฃฐใจใผใธใงใณใใใผใซ - ๆฐใใ4ใคใฎใใผใซใฎไฝฟใๆน
- ใใญในใใจใผใธใงใณใ ใขใผใญใใฏใใฃ - ใทในใใ ่จญ่จใจใณใณใใผใใณใ
- ใใผใซ้็บใฌใคใ - ๆฐใใใใผใซใฎไฝๆๆนๆณ
- API ใชใใกใฌใณใน - ใใญในใใจใผใธใงใณใ APIไปๆง
- ใขใผใญใใฏใใฃ - ๅ จไฝใทในใใ ่จญ่จ
- ้็บ่ ใฌใคใ - ็ฐๅขใปใใใขใใใจใใซใๆนๆณ
- Realtime API - Azure OpenAI API ไปๆง
- Windows ็ - Windows ใใซใใปใในใ
- WebRTC ็งป่ก - WebRTC ๅฏพๅฟ๏ผๅฐๆฅ๏ผ
- ใใฉใคใใทใผ - ใใผใฟๅใๆฑใใใชใทใผ
ใใฎใใญใธใงใฏใใธใฎ่ฒข็ฎใๆญ่ฟใใพใ๏ผ
- ใใฎใชใใธใใชใใใฉใผใฏ
- ใใฃใผใใฃใผใใฉใณใใไฝๆ (
git checkout -b feature/amazing-feature) - ๅคๆดใใณใใใ (
git commit -m 'Add amazing feature') - ใใฉใณใใซใใใทใฅ (
git push origin feature/amazing-feature) - ใใซใชใฏใจในใใไฝๆ
- Dart ใฎๅ ฌๅผในใฟใคใซใฌใคใใซๅพใ
dart formatใงใณใผใใๆดๅฝข- ๆฐๆฉ่ฝใซใฏๅฟ ใใในใใ่ฟฝๅ
- ใณใกใณใใฏ่ฑ่ชใพใใฏๆฅๆฌ่ช๏ผไธ่ฒซๆงใไฟใค๏ผ
- ใณใใใใกใใปใผใธใฏๅคๆดๅ ๅฎนใๆ็ขบใซ่จ่ฟฐ
Q: ใฉใฎAzure OpenAIใขใใซใๅฟ ่ฆใงใใ๏ผ
A: GPT-4o with Realtime API ใๅฟ ่ฆใงใใAzure ใใผใฟใซใงใใใญใคใกใณใใไฝๆใใฆใใ ใใใ
Q: ้่ฉฑๆ้ใฏใใใใพใใ๏ผ
A: Azure OpenAI ใฎๅพ้่ชฒ้ใ็บ็ใใพใใๆ้ใฏ้ณๅฃฐๅ ฅๅใปๅบๅใฎใใผใฏใณๆฐใซๅฟใใฆๅคๅใใพใใ
Q: ใชใใฉใคใณใงไฝฟ็จใงใใพใใ๏ผ
A: ใใใใAzure OpenAI APIใธใฎๆฅ็ถใๅฟ ้ ใงใใ
Q: iOS/Androidใงใใซใใงใใพใใ
A: ใใฉใใใใฉใผใ ๅบๆใฎๆจฉ้่จญๅฎใๅฟ
่ฆใงใใAndroidManifest.xml ใ Info.plist ใ็ขบ่ชใใฆใใ ใใใ
| ใซใใดใช | ๆ่ก | ็จ้ |
|---|---|---|
| ใใฌใผใ ใฏใผใฏ | Flutter 3.27.1 | ใฏใญในใใฉใใใใฉใผใ UI |
| ็ถๆ ็ฎก็ | Riverpod 3.1.0 | ไพๅญๆงๆณจๅ ฅใป็ถๆ ็ฎก็ |
| ้ณๅฃฐๅ ฅๅ | record 6.2.0 | ใใคใฏ้ฒ้ณ (PCM 24kHz) |
| ้ณๅฃฐๅ็ | Flutter SoLoud / just_audio | ใฉใคใPCMใปใใฃใผใใใใฏ้ณๅ็ |
| ้ไฟก | web_socket_channel 3.0.3 | WebSocketๆฅ็ถ |
| ในใใฌใผใธ | path_provider | ใใกใคใซไฟๅญ |
| UI | Google Fonts, Flutter Markdown | ใใฉใณใใปMarkdown่กจ็คบ |
- ใชใขใซใฟใคใ ้ณๅฃฐ้่ฉฑ: Azure OpenAI GPT-4o Realtime APIใจใฎๅๆนๅ้ณๅฃฐ้ไฟก
- ้ณๅฃฐใใฃใผใใใใฏ: ้่ฉฑ้ๅงๆใฎใใคใคใซใใผใณใ็ตไบๆใฎใใใญใณใ้ณ
- ใใฃใใๅฑฅๆญด: ไผ่ฉฑๅ ๅฎนใฎใใญในใ่กจ็คบใปไฟๅญ
- ใใผใใใใ: AIใใชใขใซใฟใคใ ใง็ทจ้ๅฏ่ฝใชใใญใฅใกใณใ
- ในใใผใใใคใคใซ: ใซในใฟใ ใญใฃใฉใฏใฟใผ่จญๅฎใไฟๅญใใฆ็ด ๆฉใ้่ฉฑ้ๅง
- ใญใฃใฉใฏใฟใผใซในใฟใใคใบ: ็ตตๆๅญใปๅๅใป้ณๅฃฐใปใใญใณใใใใซในใฟใใคใบ
- ใปใใทใงใณ็ฎก็: ้ๅปใฎไผ่ฉฑๅฑฅๆญดใไฟๅญใป้ฒ่ฆง
- ๅฐ้็ใชAIใขใทในใฟใณใ: ๆทฑใๅๆใ้ทๆ็ๆใซ็นๅใใใใญในใใจใผใธใงใณใ
- Instant-only (< 30็ง): ๅๆใง็ตๆใ่ฟใ๏ผ30็งใฟใคใ ใขใฆใ๏ผ
- ่คๆฐใจใผใธใงใณใ็ฎก็: ็จ้ๅฅใซ่คๆฐใฎใจใผใธใงใณใใ่จญๅฎๅฏ่ฝ
- end_call: ้ณๅฃฐใจใผใธใงใณใใใใญใฐใฉใใใฃใใฏใซ้่ฉฑใ็ตไบ
- say_hello_to_agent: ้ณๅฃฐใจใผใธใงใณใใใใใญในใใจใผใธใงใณใใธใฏใจใช๏ผๅๆใ30็งใฟใคใ ใขใฆใ๏ผ
- list_available_agents: ๅฉ็จๅฏ่ฝใชใใญในใใจใผใธใงใณใใไธ่ฆง่กจ็คบ
- ใใผใซใทในใใ : ใกใขใชไฟๅญใๆๅปๅๅพใ่จ็ฎๆฉใชใฉใฎใใซใใคใณใใผใซ
- PWAๅฏพๅฟ: Webใใฉใฆใถใใใขใใชใจใใฆใคใณในใใผใซๅฏ่ฝ
# ใญใผใซใฉใคใบ็ๆ๏ผARB ๆดๆฐๆ๏ผ
fvm flutter gen-l10n
# ้็่งฃๆ
fvm flutter analyze
# ใในใๅฎ่ก
fvm flutter test
# ใณใผใใใฉใผใใใ
dart format .
# ็นๅฎใฎใใฉใใใใฉใผใ ใงใใซใ
fvm flutter build apk # Android
fvm flutter build ios # iOS
fvm flutter build windows # Windows
# ใใใใฐๅฎ่ก
fvm flutter run -d windows # Windows
fvm flutter run -d chrome # Webใญใผใซใซใฎ Flutter Web ใงใฏใ่ตทๅไธญใฎใในใใจใใผใใใ https://localhost:<port>/announcement.json ใ่ชๅ็ใซๅ็
งใใใพใใๆๅใฎ --dart-define ๆๅฎใฏไธ่ฆใงใใ
fvm flutter run -d chrome- ๆฉ่ฝ้็บ:
lib/้ ไธใฎ้ฉๅใชใใฃใฌใฏใใชใซๅฎ่ฃ - ใญใผใซใฉใคใบๆดๆฐ:
lib/l10n/*.arbใๅคๆดใใๅ ดๅใฏfvm flutter gen-l10nใๅฎ่ก - ใในใไฝๆ:
test/้ ไธใซๅฏพๅฟใใใในใใใกใคใซใไฝๆ - ้็่งฃๆ:
flutter analyzeใงใจใฉใผใใชใใใจใ็ขบ่ช - ใใฉใผใใใ:
dart format .ใงใณใผใๆดๅฝข - ใในใๅฎ่ก:
flutter testใงๅ จใในใใ้ใใใจใ็ขบ่ช
- ใฉใคใ้ณๅฃฐใฏ Flutter SoLoud ใฎใใคใใฃใใใใฏใจใณใใไฝฟ็จใใพใ
- ้ณๅฃฐๅบๅใใใคในใจWindowsใฎ้ณ้ใใญใตใผ่จญๅฎใ็ขบ่ชใใฆใใ ใใ
- Android: ใใใใงในใใใกใคใซใซ้ฒ้ณๆจฉ้ใๅฟ ่ฆ
- iOS: Info.plist ใซใใคใฏไฝฟ็จ่จฑๅฏใฎ่ชฌๆใๅฟ ่ฆ
- ใขใใช่ตทๅๆใซๆจฉ้ใชใฏใจในใใ่กจ็คบใใใพใ
- Azure OpenAI ใฎใจใณใใใคใณใURLใจAPIใญใผใ็ขบ่ช
- ใใใใฏใผใฏๆฅ็ถใ็ขบ่ช
- ใญใฐ็ป้ข๏ผ่จญๅฎ > ใญใฐ๏ผใงใจใฉใผ่ฉณ็ดฐใ็ขบ่ช
fvm ใไฝฟ็จใใใจใ่คๆฐใฎใใผใธใงใณใ็ฎก็ใงใใพใ:
# ๅฅใฎใใผใธใงใณใใคใณในใใผใซ
fvm install 3.38.3
# ไธๆ็ใซๅฅใฎใใผใธใงใณใไฝฟ็จ
fvm use 3.38.3
# ใใใฉใซใใใผใธใงใณ (3.27.1) ใซๆปใ
fvm use 3.27.1(TBD)