fix: fix open router, google and vertex ai provider selection

This commit is contained in:
LUIS NOVO 2025-07-27 22:30:15 -03:00
parent 4a79093503
commit 929cd262a6
3 changed files with 36 additions and 24 deletions

View file

@ -11,7 +11,12 @@ from api.models_service import models_service
from pages.components.model_selector import model_selector
from pages.stream_app.utils import setup_page
setup_page("🤖 Models", only_check_mandatory_models=False, stop_on_model_error=False, skip_model_check=True)
setup_page(
"🤖 Models",
only_check_mandatory_models=False,
stop_on_model_error=False,
skip_model_check=True,
)
st.title("🤖 Models")
@ -32,20 +37,16 @@ def check_available_providers():
provider_status["openai"] = os.environ.get("OPENAI_API_KEY") is not None
provider_status["groq"] = os.environ.get("GROQ_API_KEY") is not None
provider_status["xai"] = os.environ.get("XAI_API_KEY") is not None
provider_status["vertexai"] = (
provider_status["vertex"] = (
os.environ.get("VERTEX_PROJECT") is not None
and os.environ.get("VERTEX_LOCATION") is not None
and os.environ.get("GOOGLE_APPLICATION_CREDENTIALS") is not None
)
provider_status["gemini"] = (
provider_status["google"] = (
os.environ.get("GOOGLE_API_KEY") is not None
or os.environ.get("GEMINI_API_KEY") is not None
)
provider_status["openrouter"] = (
os.environ.get("OPENROUTER_API_KEY") is not None
and os.environ.get("OPENAI_API_KEY") is not None
and os.environ.get("OPENROUTER_BASE_URL") is not None
)
provider_status["openrouter"] = os.environ.get("OPENROUTER_API_KEY") is not None
provider_status["anthropic"] = os.environ.get("ANTHROPIC_API_KEY") is not None
provider_status["elevenlabs"] = os.environ.get("ELEVENLABS_API_KEY") is not None
provider_status["voyage"] = os.environ.get("VOYAGE_API_KEY") is not None
@ -234,12 +235,19 @@ with st.container(border=True):
"language",
"Recommended: Gemini models",
)
# Show warning if mandatory language models are missing
if not default_models.default_chat_model or not default_models.default_transformation_model:
st.warning("⚠️ Please select a Chat Model and Transformation Model - these are required for Open Notebook to function properly.")
if (
not default_models.default_chat_model
or not default_models.default_transformation_model
):
st.warning(
"⚠️ Please select a Chat Model and Transformation Model - these are required for Open Notebook to function properly."
)
elif not default_models.default_tools_model:
st.info("💡 Consider selecting a Tools Model for better tool calling capabilities (recommended: OpenAI or Anthropic models).")
st.info(
"💡 Consider selecting a Tools Model for better tool calling capabilities (recommended: OpenAI or Anthropic models)."
)
# Embedding Models Section
st.subheader("🔍 Embedding Models")
@ -271,10 +279,12 @@ with st.container(border=True):
"embedding",
)
st.warning("⚠️ Changing embedding models requires regenerating all embeddings")
# Show warning if no default embedding model is selected
if not default_models.default_embedding_model:
st.warning("⚠️ Please select a default Embedding Model - this is required for search functionality.")
st.warning(
"⚠️ Please select a default Embedding Model - this is required for search functionality."
)
with col2:
add_model_form("embedding", "main", available_providers)
@ -309,7 +319,7 @@ with st.container(border=True):
"text_to_speech",
"Can be overridden per podcast",
)
# Show info if no default TTS model is selected
if not default_models.default_text_to_speech_model:
st.info(" Select a default TTS model to enable podcast generation.")
@ -346,10 +356,12 @@ with st.container(border=True):
"Used for audio transcriptions",
"speech_to_text",
)
# Show info if no default STT model is selected
if not default_models.default_speech_to_text_model:
st.info(" Select a default STT model to enable audio transcription features.")
st.info(
" Select a default STT model to enable audio transcription features."
)
with col2:
add_model_form("speech_to_text", "main", available_providers)

View file

@ -1,6 +1,6 @@
[project]
name = "open-notebook"
version = "0.3.1"
version = "0.3.2"
description = "An open source implementation of a research assistant, inspired by Google Notebook LM"
authors = [
{name = "Luis Novo", email = "lfnovo@gmail.com"}
@ -41,7 +41,7 @@ dependencies = [
"nest-asyncio>=1.6.0",
"content-core>=1.0.2",
"ai-prompter>=0.3",
"esperanto>=2.0.4",
"esperanto>=2.3.4",
"langchain-google-vertexai>=2.0.10",
"surrealdb>=1.0.4",
"surreal-commands>=1.0.13",

10
uv.lock
View file

@ -538,15 +538,15 @@ wheels = [
[[package]]
name = "esperanto"
version = "2.3.3"
version = "2.3.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
{ name = "pydantic" },
]
sdist = { url = "https://files.pythonhosted.org/packages/f4/c3/6594c9e25af0c93a633b212392f979742491eca4782f071e82b33d8c1510/esperanto-2.3.3.tar.gz", hash = "sha256:3df64556be480a93c1327e4796d57042d0b519356128de374e0e00fa91f4b307", size = 455487 }
sdist = { url = "https://files.pythonhosted.org/packages/f0/0d/549928070ab49078b7834a5a8b251a36a807d9791d0a8a43f57df8c8ea8c/esperanto-2.3.4.tar.gz", hash = "sha256:5072c3a6bdbbf0c53d6671f28991e9f205c93c49821058e2b62c3a17710bd235", size = 457606 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/10/2c/5db4447f94f71a97e2d238fe8f1320ca9fb238ae7e34bc608868127ad0c6/esperanto-2.3.3-py3-none-any.whl", hash = "sha256:0fe3827d2f9aa8eb311948c7f609ab7f7d34f7fd7f6ec977e37fa0606fc5ac2b", size = 113492 },
{ url = "https://files.pythonhosted.org/packages/26/27/f98201713ec5339388e0a00bef25ccf598ba5048f3980f556d6a243c2b30/esperanto-2.3.4-py3-none-any.whl", hash = "sha256:9759ff22f3bfff6c9cc46acc6c69ded4f038baa6f5cda592b6ec83d5f11c5eff", size = 116946 },
]
[[package]]
@ -1970,7 +1970,7 @@ wheels = [
[[package]]
name = "open-notebook"
version = "0.3.1"
version = "0.3.2"
source = { editable = "." }
dependencies = [
{ name = "ai-prompter" },
@ -2028,7 +2028,7 @@ dev = [
requires-dist = [
{ name = "ai-prompter", specifier = ">=0.3" },
{ name = "content-core", specifier = ">=1.0.2" },
{ name = "esperanto", specifier = ">=2.0.4" },
{ name = "esperanto", specifier = ">=2.3.4" },
{ name = "fastapi", specifier = ">=0.104.0" },
{ name = "groq", specifier = ">=0.12.0" },
{ name = "httpx", extras = ["socks"], specifier = ">=0.27.0" },