Skip to content
Open
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
4 changes: 3 additions & 1 deletion helpers/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import subprocess
from typing import Any, Literal, TypedDict, cast, TypeVar

import models
from helpers import runtime, whisper, defer, git, subagents
from . import files, dotenv
from helpers.print_style import PrintStyle
Expand Down Expand Up @@ -223,6 +222,7 @@ def _ensure_option_present(options: list[OptionT] | None, current_value: str | N
return opts

def convert_out(settings: Settings) -> SettingsOutput:
import models # deferred to avoid circular import with models.py
out = SettingsOutput(
settings = settings.copy(),
additional = SettingsOutputAdditional(
Expand Down Expand Up @@ -309,6 +309,7 @@ def convert_out(settings: Settings) -> SettingsOutput:
return out

def _get_api_key_field(settings: Settings, provider: str, title: str) -> SettingsField:
import models # deferred to avoid circular import with models.py
key = settings["api_keys"].get(provider, models.get_api_key(provider))
# For API keys, use simple asterisk placeholder for existing keys
return {
Expand Down Expand Up @@ -418,6 +419,7 @@ def _adjust_to_version(settings: Settings, default: Settings):


def _load_sensitive_settings(settings: Settings):
import models # deferred to avoid circular import with models.py
# load api keys from .env
providers = get_providers("chat") + get_providers("embedding")
for provider in providers:
Expand Down
2 changes: 2 additions & 0 deletions models.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from helpers.rate_limiter import RateLimiter
from helpers.tokens import approximate_tokens
from helpers import dirty_json, browser_use_monkeypatch
from helpers.extension import extensible

from langchain_core.language_models.chat_models import SimpleChatModel
from langchain_core.outputs.chat_generation import ChatGenerationChunk
Expand Down Expand Up @@ -198,6 +199,7 @@ def output(self) -> ChatChunk:
api_keys_round_robin: dict[str, int] = {}


@extensible
def get_api_key(service: str) -> str:
# get api key for the service
key = (
Expand Down