ignore typecheck in models.py
frdel committed
Sep 23, 2025 at 17:40 UTC
9c75aea346cb0bed180ec2ca860883ea5c3674bb
2 files changed
+13
-5
models.py
+3
-2
@@ -17,6 +17,7 @@ from typing import (
17
from litellm import completion, acompletion, embedding
18
import litellm
19
import openai
20
+from litellm.types.utils import ModelResponse
21
22
from python.helpers import dotenv
23
from python.helpers import settings, dirty_json
@@ -620,9 +621,9 @@ class BrowserCompatibleChatWrapper(ChatOpenRouter):
621
622
# Gemini: strip triple backticks and conform schema
623
try:
623
- msg = resp.choices[0].message
624
+ msg = resp.choices[0].message # type: ignore
625
if self.provider == "gemini" and isinstance(getattr(msg, "content", None), str):
625
- cleaned = browser_use_monkeypatch.gemini_clean_and_conform(msg.content)
626
+ cleaned = browser_use_monkeypatch.gemini_clean_and_conform(msg.content) # type: ignore
627
if cleaned:
628
msg.content = cleaned
629
except Exception:
webui/js/api.js
+10
-3
@@ -55,6 +55,7 @@ export async function fetchApi(url, request) {
55
}else if(response.redirected && response.url.endsWith("/login")){
56
// redirect to login
57
window.location.href = response.url;
58
+ return;
59
}
60
61
// return the response
@@ -80,8 +81,14 @@ async function getCsrfToken() {
81
if (csrfToken) return csrfToken;
82
const response = await fetch("/csrf_token", {
83
credentials: "same-origin",
83
- }).then((r) => r.json());
84
- csrfToken = response.token;
85
- document.cookie = `csrf_token_${response.runtime_id}=${csrfToken}; SameSite=Strict; Path=/`;
84
+ });
85
+ if (response.redirected && response.url.endsWith("/login")) {
86
+ // redirect to login
87
+ window.location.href = response.url;
88
+ return;
89
+ }
90
+ const json = await response.json();
91
+ csrfToken = json.token;
92
+ document.cookie = `csrf_token_${json.runtime_id}=${csrfToken}; SameSite=Strict; Path=/`;
93
return csrfToken;
94
}