Improve audio capture and LLM integration
- Implement Silero VAD for dynamic audio chunking - Add support for Ollama and vLLM backends - Harden extraction prompts for strict JSON output - Refactor TUI worker to handle proposals asynchronously
This commit is contained in:
Binary file not shown.
@@ -88,39 +88,13 @@ class PipelineOrchestrator:
|
||||
Worker that handles TUI: Proposal -> Persistence.
|
||||
"""
|
||||
logger.info("TUI Worker started.")
|
||||
while self.is_running:
|
||||
try:
|
||||
# Get proposal from queue
|
||||
result = await self.proposal_queue.get()
|
||||
|
||||
logger.info("Proposal received. Launching TUI for confirmation.")
|
||||
|
||||
# Launch TUI (Note: Textual's run() is blocking)
|
||||
# We need to run the TUI in a way that doesn't block the overall event loop
|
||||
# or we accept that the system pauses for confirmation.
|
||||
# Given the requirement for "Non-blocking", but TUI is a focus-modal,
|
||||
# we launch it.
|
||||
|
||||
# To integrate Textual with asyncio, we can use its async support.
|
||||
# However, ConfirmationApp is designed as a standard Textual app.
|
||||
# Since we want to bridge the asyncio loop, we'll run the TUI.
|
||||
|
||||
# Note: In a real high-performance pipeline, we'd use an async TUI
|
||||
# that updates widgets in real-time. For now, we follow the
|
||||
# a confirmation screen pattern.
|
||||
|
||||
# we will use the run() method, but since we are in an async loop,
|
||||
# we might need to wrap it or use an async variant.
|
||||
# For this integration, we'll use the run() method as defined
|
||||
# in ConfirmationApp, which will take over the terminal.
|
||||
|
||||
ConfirmationApp(result).run()
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"TUI Worker error: {e}")
|
||||
|
||||
# Small sleep
|
||||
await asyncio.sleep(0.1)
|
||||
try:
|
||||
# Launch TUI exactly once.
|
||||
# Pass the proposal queue to the app.
|
||||
app = ConfirmationApp(proposal_queue=self.proposal_queue)
|
||||
await app.run_async()
|
||||
except Exception as e:
|
||||
logger.error(f"TUI Worker error: {e}")
|
||||
|
||||
async def run(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user