Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion echo/frontend/src/components/project/HostGuidePDF.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ export const HostGuidePDF = ({
<View style={styles.mainContent}>
<View style={styles.stepsContainer}>
{steps.map((step, index) => (
<View key={index} style={styles.stepRow}>
<View key={`step-${step}`} style={styles.stepRow}>
<Text style={styles.stepNumber}>{index + 1}.</Text>
<Text style={styles.stepText}>{step}</Text>
</View>
Expand Down
2 changes: 1 addition & 1 deletion echo/server/dembrane/api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
from dembrane.api.stateless import StatelessRouter
from dembrane.api.participant import ParticipantRouter
from dembrane.api.conversation import ConversationRouter
from dembrane.api.project_webhook import ProjectWebhookRouter
from dembrane.api.user_settings import UserSettingsRouter
from dembrane.api.project_webhook import ProjectWebhookRouter

logger = getLogger("api")

Expand Down
2 changes: 1 addition & 1 deletion echo/server/dembrane/api/user_settings.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from logging import getLogger

import requests
from fastapi import APIRouter, HTTPException, UploadFile
from fastapi import APIRouter, UploadFile, HTTPException

from dembrane.directus import directus
from dembrane.api.dependency_auth import DependencyDirectusSession
Expand Down
14 changes: 8 additions & 6 deletions echo/server/dembrane/llm_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@

import json
import logging
from typing import Any, Dict, List, Optional
from typing import Any, Dict, List, Literal, Optional

from litellm import Router
from litellm import Router # type: ignore[attr-defined]
from litellm.utils import get_model_info

from dembrane.settings import LLMProviderConfig, get_settings
Expand All @@ -34,7 +34,7 @@
ROUTER_NUM_RETRIES = 3
ROUTER_ALLOWED_FAILS = 3 # Failures per minute before cooldown
ROUTER_COOLDOWN_TIME = 60 # Seconds to cooldown a failed deployment
ROUTER_ROUTING_STRATEGY = "simple-shuffle" # Recommended for production
ROUTER_ROUTING_STRATEGY: Literal["simple-shuffle"] = "simple-shuffle" # Recommended for production

# Global router instance (lazy initialized)
_router: Optional[Router] = None
Expand Down Expand Up @@ -261,9 +261,11 @@ def get_min_context_length(model_group: str) -> int:
try:
resolved = config.resolve()
model_info = get_model_info(resolved.model)
if model_info and model_info.get("max_input_tokens"):
max_tokens = model_info["max_input_tokens"]
if min_tokens is None or max_tokens < min_tokens:
max_tokens = model_info.get("max_input_tokens") if model_info else None
if isinstance(max_tokens, int) and max_tokens > 0:
if min_tokens is None:
min_tokens = max_tokens
elif max_tokens < min_tokens:
min_tokens = max_tokens
logger.debug(f" {model_group}[{suffix}] {resolved.model}: {max_tokens} tokens")
except Exception as e:
Expand Down
2 changes: 1 addition & 1 deletion echo/server/dembrane/llms.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from dembrane.settings import get_settings

if TYPE_CHECKING:
from litellm import Router
from litellm import Router # type: ignore[attr-defined]

logger = logging.getLogger(__name__)

Expand Down
5 changes: 3 additions & 2 deletions echo/server/dembrane/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,9 @@ def get_deployments_for_group(
value = vars_dict[env_field]
# Handle JSON fields
if config_field in ("vertex_credentials", "gcp_sa_json"):
value = _coerce_service_account(value)
config_data[config_field] = value
config_data[config_field] = _coerce_service_account(value)
else:
config_data[config_field] = value

# Only add if model is configured
if config_data.get("model"):
Expand Down
2 changes: 1 addition & 1 deletion echo/server/dembrane/transcribe.py
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ def transcribe_audio_dembrane_26_01_redaction(
logger.info(
f"Transcription failed with AssemblyAI. Continuing with empty transcript: {e}"
)
transcript, response = "[Nothing to transcribe]", {}
transcript = "[Nothing to transcribe]"

# Apply regex PII redaction BEFORE the correction workflow
if not assemblyai_response_failed:
Expand Down
Loading