Module: Relay::Routes::Websocket::Interrupt
- Included in:
- Relay::Routes::Websocket
- Defined in:
- app/routes/websocket/interrupt.rb
Instance Method Summary collapse
Instance Method Details
#interrupt!(conn, ctx) ⇒ Object
9 10 11 12 13 |
# File 'app/routes/websocket/interrupt.rb', line 9 def interrupt!(conn, ctx) return unless request_in_flight? ctx.interrupt! write(conn, fragment(:status, (status: "Cancelling...", ctx:))) end |
#interrupt?(payload) ⇒ Boolean
5 6 7 |
# File 'app/routes/websocket/interrupt.rb', line 5 def interrupt?(payload) payload["type"] == "interrupt" end |
#on_interrupt(conn, ctx) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'app/routes/websocket/interrupt.rb', line 15 def on_interrupt(conn, ctx) = vars[:messages].reverse_each.find { _1[:role] == :assistant } if && [:content].to_s.empty? [:content] = "Request cancelled." write(conn, fragment(:replace_last_message, message:)) end write(conn, fragment(:status, (status: "Request cancelled", ctx:))) write(conn, fragment(:input)) end |