Skip to content

feat: add blaze voicebot plugin#5050

Open
HoangPN711 wants to merge 4 commits intolivekit:mainfrom
Actable-AI:feat/blaze-voicebot-plugin
Open

feat: add blaze voicebot plugin#5050
HoangPN711 wants to merge 4 commits intolivekit:mainfrom
Actable-AI:feat/blaze-voicebot-plugin

Conversation

@HoangPN711
Copy link

No description provided.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 new potential issues.

View 8 additional findings in Devin Review.

Open in Devin Review

description = "Agent Framework plugin for Blaze AI services (STT, TTS, LLM)."
readme = "README.md"
license = "Apache-2.0"
requires-python = ">=3.10.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Plugin package drops required Python 3.9 compatibility

The new Blaze plugin package declares requires-python = ">=3.10.0", which violates the repository’s mandatory rule that code must maintain Python 3.9+ compatibility (AGENTS.md). This makes the plugin uninstallable on supported 3.9 environments and is a direct policy violation that must be fixed before merge (livekit-plugins/livekit-plugins-blaze/pyproject.toml:11).

Suggested change
requires-python = ">=3.10.0"
requires-python = ">=3.9.0"
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

# Build URL with query parameters using httpx for proper encoding
query_params: Dict[str, str] = {
"is_voice_call": "true",
"use_tool_based": "true",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 enable_tools option is never applied to LLM request parameters

LLM.__init__ and update_options store _enable_tools, but _run always sends "use_tool_based": "true" unconditionally. As a result, callers cannot actually disable tool mode, even when enable_tools=False, so runtime behavior contradicts the public API and option contract (livekit-plugins/livekit-plugins-blaze/livekit/plugins/blaze/llm.py:73, livekit-plugins/livekit-plugins-blaze/livekit/plugins/blaze/llm.py:123-143).

Suggested change
"use_tool_based": "true",
"use_tool_based": "true" if self._llm._enable_tools else "false",
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

self._language = language
self._auth_token = auth_token or self._config.auth_token
self._sample_rate = sample_rate
self._timeout = timeout or self._config.stt_timeout
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Explicit STT timeout override is ignored for falsy values

The STT constructor documents explicit-args-over-config precedence, but uses self._timeout = timeout or self._config.stt_timeout. This treats 0/0.0 as unset and silently replaces the caller’s explicit timeout with config/default, violating the stated precedence and making timeout behavior incorrect for valid falsy inputs.

Suggested change
self._timeout = timeout or self._config.stt_timeout
self._timeout = timeout if timeout is not None else self._config.stt_timeout
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

self._agentic_search = agentic_search
self._enable_tools = enable_tools
self._demographics = demographics
self._timeout = timeout or self._config.llm_timeout
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Explicit LLM/TTS timeout overrides are ignored for falsy values

Both LLM and TTS constructors use timeout or config_timeout, so explicitly provided 0/0.0 values are discarded and replaced by config defaults. This makes runtime timeout configuration inconsistent with constructor inputs and can break callers relying on exact timeout control.

Prompt for agents
Update timeout assignment logic to preserve explicit falsy values in both constructors: livekit-plugins/livekit-plugins-blaze/livekit/plugins/blaze/llm.py line 91 in LLM.__init__, and livekit-plugins/livekit-plugins-blaze/livekit/plugins/blaze/tts.py line 96 in TTS.__init__. Replace `timeout or ...` with a None-check form (`timeout if timeout is not None else ...`) so explicit values like 0.0 are honored.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants