nodes:
  - id: lebai-client
    build: pip install -e ../../../node-hub/lebai-client
    path: lebai-client
    inputs:
      movec:
        source: interpolation/movec
        queue_size: 1
      movej:
        source: interpolation/movej
        queue_size: 1
      claw: interpolation/claw
      stop: interpolation/stop
      save: interpolation/save
      go_to: interpolation/go_to
      record: interpolation/record
      cut: interpolation/cut
      play: interpolation/play
      teach: interpolation/teach
      end_teach: interpolation/end_teach

  - id: keyboard-listener
    build: pip install dora-keyboard
    path: dora-keyboard
    outputs:
      - char

  - id: dora-microphone
    build: pip install dora-microphone
    path: dora-microphone
    outputs:
      - audio

  - id: dora-distil-whisper
    build: pip install dora-distil-whisper
    path: dora-distil-whisper
    inputs:
      input: dora-microphone/audio
    outputs:
      - text

  - id: key-interpolation
    path: ../nodes/key_interpolation.py
    inputs:
      keyboard: keyboard-listener/char
    outputs:
      - text

  - id: prompt-interpolation
    path: ../nodes/prompt_interpolation.py
    inputs:
      text: dora-distil-whisper/text
    outputs:
      - text

  - id: interpolation
    path: ../nodes/interpolation.py
    inputs:
      keyboard: key-interpolation/text
      vlm: dora-qwenvl/tick
    outputs:
      - movec
      - movej
      - claw
      - stop
      - save
      - record
      - play
      - go_to
      - cut
      - teach
      - end_teach

  - id: camera
    build: pip install opencv-video-capture
    path: opencv-video-capture
    inputs:
      tick: dora/timer/millis/16
    outputs:
      - image
    env:
      CAPTURE_PATH: 8
      IMAGE_WIDTH: 640
      IMAGE_HEIGHT: 480

  - id: plot
    build: cargo install dora-rerun --locked
    path: dora-rerun
    inputs:
      image:
        source: camera/image
        queue_size: 1
      text_vlm: dora-qwenvl/tick
      text_whisper: dora-distil-whisper/text
    env:
      IMAGE_WIDTH: 640
      IMAGE_HEIGHT: 480

  - id: dora-qwenvl
    build: pip install -e ../../../dora/node-hub/dora-qwenvl
    path: dora-qwenvl
    inputs:
      image:
        source: camera/image
        queue_size: 1
      tick:
        source: key-interpolation/text
        queue_size: 1
      text: prompt-interpolation/text
    outputs:
      - text
      - tick
    env:
      CUSTOM_MODEL_PATH: /home/peter/Documents/work/LLaMA-Factory/saves/qwen2_vl-2b/lora-dora-demo/sft
      DEFAULT_QUESTION: Respond with left, right, forward, back, up, down or go home in order for the robotic arm to get the cup.
