dograh/api
Octopus 0e0d3136ca
feat: add MiniMax provider support (Chat + TTS) (#309)
* feat: add MiniMax provider support (Chat + TTS)

- Add MiniMax LLM provider using OpenAI-compatible API
  - Models: MiniMax-M2.7, MiniMax-M2.7-highspeed
  - Default base URL: https://api.minimax.io/v1
  - Uses MINIMAX_API_KEY for authentication
- Add MiniMax TTS provider using Pipecat's MiniMaxHttpTTSService
  - Models: speech-2.8-hd (default), speech-2.8-turbo
  - 6 built-in voices
  - Requires group_id configuration
- Add unit tests for both providers

* fix(minimax): validator, temperature, session cleanup, reasoning filter
  - check_validity.py: wire MiniMax into _validator_map and enforce
    group_id at save time. Without this, saving a config with a valid
    key was rejected.
  - registry.py: surface temperature on the LLM config (gt=0; MiniMax
    rejects 0) and base_url on the TTS config
  - service_factory.py:
    * Plumb temperature through create_llm_service
    * Normalize TTS base_url to include /t2a_v2 — pipecat appends only
      ?GroupId=... to the URL.
    * Use the new MiniMaxLLMService (from pipecat) to strip
      <think>...</think> reasoning that MiniMax-M2.7 emits inline in
      delta.content (otherwise it leaks straight to TTS).
    * Use MiniMaxOwnedSessionTTSService so the per-instance aiohttp
      session gets closed in cleanup() instead of leaking sockets/FDs.
  - minimax_tts.py: small wrapper around MiniMaxHttpTTSService that owns
    the session it was handed (pipecat's caller-owns-session API
    conflicts with the ftory's per-instance pattern).
  - pipecat submodule: bumps to a commit that adds MiniMaxLLMService — a
    thin OpenAILLMService subclass with the streaming <think> filter
    (mirrors NvidiaLLMService's pattern for NIM reasoning models).
  - Tests updated/added for all of the above.

  Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: octo-patch <octo-patch@github.com>
Co-authored-by: Sabiha Khan <sabihak89@gmail.com>
2026-05-22 13:09:41 +05:30
..
alembic feat: add chat based testing for voice agent (#308) 2026-05-21 15:20:02 +05:30
assets feat: telephony call transfer (#155) 2026-02-16 14:33:33 +05:30
db feat: add chat based testing for voice agent (#308) 2026-05-21 15:20:02 +05:30
errors Feat/inbound telephony (#113) 2026-01-12 10:10:30 +05:30
mcp_server test(mcp): guard instructions.py against tool drift 2026-05-20 18:44:18 +05:30
native/rnnoise Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
routes feat: add chat based testing for voice agent (#308) 2026-05-21 15:20:02 +05:30
schemas feat: agent stream for cloudonix OPBX (#261) 2026-05-02 15:53:58 +05:30
services feat: add MiniMax provider support (Chat + TTS) (#309) 2026-05-22 13:09:41 +05:30
tasks feat: add Tuner Integration to Dograh (#311) 2026-05-20 14:37:33 +05:30
tests feat: add MiniMax provider support (Chat + TTS) (#309) 2026-05-22 13:09:41 +05:30
utils feat: add workflow graph constraints fixtures 2026-05-08 16:02:51 +05:30
.cursorignore Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
.dockerignore Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
.env.example fix: number pool initialization in multi telephony setup 2026-05-08 14:48:53 +05:30
.gitignore Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
__init__.py Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
AGENTS.md feat: add chat based testing for voice agent (#308) 2026-05-21 15:20:02 +05:30
alembic.ini chore: bump pipecat version and fix tests (#263) 2026-05-04 21:35:37 +05:30
app.py feat: refactor node spec and add mcp tools (#244) 2026-04-21 07:56:16 +05:30
CLAUDE.md Chore/add setup and contributing docs (#90) 2025-12-27 09:25:20 +05:30
conftest.py chore: bump pipecat version and fix tests (#263) 2026-05-04 21:35:37 +05:30
constants.py feat: add Tuner Integration to Dograh (#311) 2026-05-20 14:37:33 +05:30
Dockerfile feat(mcp): generic MCP tool source with per-node function filtering (#301) 2026-05-19 16:10:00 +05:30
enums.py feat: add chat based testing for voice agent (#308) 2026-05-21 15:20:02 +05:30
logging_config.py feat: add headless mode, redesign floating widget, refactor lifecycle callbacks (#268) 2026-05-07 12:23:41 +05:30
pyproject.toml chore(main): release dograh 1.31.0 (#318) 2026-05-21 17:29:59 +05:30
pytest.ini feat: refactor node spec and add mcp tools (#244) 2026-04-21 07:56:16 +05:30
requirements.dev.txt feat: add headless mode, redesign floating widget, refactor lifecycle callbacks (#268) 2026-05-07 12:23:41 +05:30
requirements.txt fix(security): bump python-multipart 0.0.20 -> 0.0.27 (#332) 2026-05-21 15:29:27 +05:30
sdk_expose.py feat: refactor node spec and add mcp tools (#244) 2026-04-21 07:56:16 +05:30