Trino 통합 — 개발자 가이드

건축학

Aura 인터페이스: 음성 → INTERFACE=음성(.py의 기본 대체) 터미널 → INTERFACE=터미널 (s() zshrc에 명시적) 웹 → INTERFACE=웹(start_service에 명시적) ↓ aura_state.py ← 개발자를 위한 고급 API ↓ trino_client.py ← 하위 수준 DB 작업 ↓ Trino 메모리 카탈로그 memory.aura.features ← 인터페이스별 번역 켜기/끄기 memory.aura.translation_state ← 인터페이스별 대상 언어

로컬 설정

1. 도커

docker pull trinodb/trino
docker run -d --name trino -p 8083:8080 trinodb/trino
docker logs trino -f | grep -m1 "SERVER STARTED"

2. Python 클라이언트

source .venv/bin/activate
pip install trino

3. DB 초기화(Aura 시작 시 자동 호출)

python3 scripts/py/func/db/init_trino_db.py

개발자 API — aura_state.py

from scripts.py.func.db.aura_state import (
    enable_translation,
    disable_translation,
    set_language,
    get_current_language,
    is_translation_enabled,
    get_all_status,
)

# Enable translation for speech interface
enable_translation('speech', lang='en')

# Check status
is_translation_enabled('speech')  # True
get_current_language('speech')    # 'en'

# Disable
disable_translation('speech')

# All interfaces
get_all_status()
# [
#   {'interface': 'speech',   'translation': 'on',  'language': 'en'},
#   {'interface': 'terminal', 'translation': 'off', 'language': None},
#   {'interface': 'web',      'translation': 'off', 'language': None},
# ]

관리 UI

http://localhost:8084

시작:

streamlit run scripts/py/chat/streamlit-admin.py --server.port 8084

Trino UI(쿼리 모니터)

http://localhost:8083/ui/

스크립트/py/func/db/ ├── init.py ├── trino_client.py ← 하위 수준: feature_state, target_lang 가져오기/설정 ├── init_trino_db.py ← 시작: Docker 시작 + 스키마 + 테이블 └── aura_state.py ← 개발자를 위한 고수준 API 스크립트/py/chat/ └── streamlit-admin.py ← 포트 8084의 관리 UI

로드맵

  • [x] Docker에서 실행되는 Trino

  • [x] Python 클라이언트가 연결됨

  • [x] Aura 시작 시 DB 초기화

  • [x] 인터페이스 인식 번역 상태

  • [x] 음성/터미널에서 분리된 웹(Streamlit)

  • [x] 포트 8084의 관리 UI

  • [ ] 터미널과 음성이 완전히 독립적입니다.

  • [ ] 사용자별 재정의(다중 사용자)

  • [ ] 영구 스토리지(메모리 카탈로그 교체)