mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
* fix: refactor modal API key configuration for better separation of concerns - Split generic MODAL_API_KEY into service-specific keys: - TRANSCRIPT_API_KEY for transcription service - DIARIZATION_API_KEY for diarization service - TRANSLATE_API_KEY for translation service - Remove deprecated *_MODAL_API_KEY settings - Add proper validation to ensure URLs are set when using modal processors - Update README with new configuration format BREAKING CHANGE: Configuration keys have changed. Update your .env file: - TRANSCRIPT_MODAL_API_KEY → TRANSCRIPT_API_KEY - LLM_MODAL_API_KEY → (removed, use TRANSCRIPT_API_KEY) - Add DIARIZATION_API_KEY and TRANSLATE_API_KEY if using those services * fix: update Modal backend configuration to use service-specific API keys - Changed from generic MODAL_API_KEY to service-specific keys: - TRANSCRIPT_MODAL_API_KEY for transcription - DIARIZATION_MODAL_API_KEY for diarization - TRANSLATION_MODAL_API_KEY for translation - Updated audio_transcript_modal.py and audio_diarization_modal.py to use modal_api_key parameter - Updated documentation in README.md, CLAUDE.md, and env.example * feat: implement auto/modal pattern for translation processor - Created TranscriptTranslatorAutoProcessor following the same pattern as transcript/diarization - Created TranscriptTranslatorModalProcessor with TRANSLATION_MODAL_API_KEY support - Added TRANSLATION_BACKEND setting (defaults to "modal") - Updated all imports to use TranscriptTranslatorAutoProcessor instead of TranscriptTranslatorProcessor - Updated env.example with TRANSLATION_BACKEND and TRANSLATION_MODAL_API_KEY - Updated test to expect TranscriptTranslatorModalProcessor name - All tests passing * refactor: simplify transcript_translator base class to match other processors - Moved all implementation from base class to modal processor - Base class now only defines abstract _translate method - Follows the same minimal pattern as audio_diarization and audio_transcript base classes - Updated test mock to use _translate instead of get_translation - All tests passing * chore: clean up settings and improve type annotations - Remove deprecated generic API key variables from settings - Add comments to group Modal-specific settings - Improve type annotations for modal_api_key parameters * fix: typing * fix: passing key to openai * test: fix rtc test failing due to change on transcript It also correctly setup database from sqlite, in case our configuration is setup to postgres. * ci: deactivate translation backend by default * test: fix modal->mock * refactor: implementing igor review, mock to passthrough
98 lines
2.2 KiB
TOML
98 lines
2.2 KiB
TOML
[project]
|
|
name = "reflector"
|
|
version = "0.1.0"
|
|
description = ""
|
|
authors = [{ name = "Monadical team", email = "ops@monadical.com" }]
|
|
requires-python = ">=3.11, <3.13"
|
|
readme = "README.md"
|
|
dependencies = [
|
|
"aiohttp>=3.9.0",
|
|
"aiohttp-cors>=0.7.0",
|
|
"av>=10.0.0",
|
|
"requests>=2.31.0",
|
|
"aiortc>=1.5.0",
|
|
"sortedcontainers>=2.4.0",
|
|
"loguru>=0.7.0",
|
|
"pydantic-settings>=2.0.2",
|
|
"structlog>=23.1.0",
|
|
"uvicorn[standard]>=0.23.1",
|
|
"fastapi[standard]>=0.100.1",
|
|
"sentry-sdk[fastapi]>=1.29.2",
|
|
"httpx>=0.24.1",
|
|
"fastapi-pagination>=0.12.6",
|
|
"databases[aiosqlite, asyncpg]>=0.7.0",
|
|
"sqlalchemy<1.5",
|
|
"alembic>=1.11.3",
|
|
"nltk>=3.8.1",
|
|
"prometheus-fastapi-instrumentator>=6.1.0",
|
|
"sentencepiece>=0.1.99",
|
|
"protobuf>=4.24.3",
|
|
"profanityfilter>=2.0.6",
|
|
"celery>=5.3.4",
|
|
"redis>=5.0.1",
|
|
"python-jose[cryptography]>=3.3.0",
|
|
"python-multipart>=0.0.6",
|
|
"faster-whisper>=0.10.0",
|
|
"transformers>=4.36.2",
|
|
"black==24.1.1",
|
|
"jsonschema>=4.23.0",
|
|
"openai>=1.59.7",
|
|
"psycopg2-binary>=2.9.10",
|
|
"llama-index>=0.12.52",
|
|
"llama-index-llms-openai-like>=0.4.0",
|
|
"pytest-env>=1.1.5",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"black>=24.1.1",
|
|
"stamina>=23.1.0",
|
|
"pyinstrument>=4.6.1",
|
|
]
|
|
tests = [
|
|
"pytest-cov>=4.1.0",
|
|
"pytest-aiohttp>=1.0.4",
|
|
"pytest-asyncio>=0.21.1",
|
|
"pytest>=7.4.0",
|
|
"httpx-ws>=0.4.1",
|
|
"pytest-httpx>=0.23.1",
|
|
"pytest-celery>=0.0.0",
|
|
]
|
|
aws = ["aioboto3>=11.2.0"]
|
|
evaluation = [
|
|
"jiwer>=3.0.2",
|
|
"levenshtein>=0.21.1",
|
|
"tqdm>=4.66.0",
|
|
"pydantic>=2.1.1",
|
|
]
|
|
|
|
[tool.uv]
|
|
default-groups = [
|
|
"dev",
|
|
"tests",
|
|
"aws",
|
|
"evaluation",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["reflector"]
|
|
|
|
[tool.coverage.run]
|
|
source = ["reflector"]
|
|
|
|
[tool.pytest_env]
|
|
ENVIRONMENT = "pytest"
|
|
DATABASE_URL = "sqlite:///test.sqlite"
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "-ra -q --disable-pytest-warnings --cov --cov-report html -v"
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"reflector/processors/summary/summary_builder.py" = ["E501"]
|