refactor: adjust model check, tool calls, and response handling logic

- Updated `thinking_enabled` condition in `DeepSeekAPI.py` to ensure `model` is not None before checking substring
- Removed default `tool_calls` value in `/backend-api/v2/create` route in `backend_api.py`
- Simplified response caching logic by consolidating `cast_str` handling and ensuring `response` is a string before writing
- Adjusted response filtering logic to handle string vs iterable cases more consistently
- Refined safe search tag check in file matching loop to only test the first tag against MIME type in `backend_api.py`
- Changed default filename from "index" to "home" in `_index` method of `website.py
This commit is contained in:
hlohaus
2025-05-21 15:05:43 +02:00
parent c6b85efba2
commit c3aca8964c
3 changed files with 11 additions and 18 deletions

View File

@@ -67,7 +67,7 @@ class DeepSeekAPI(AsyncAuthedProvider, ProviderModelMixin):
for chunk in api.chat_completion(
conversation.chat_id,
get_last_user_message(messages),
thinking_enabled="deepseek-r1" in model,
thinking_enabled=bool(model) and "deepseek-r1" in model,
search_enabled=web_search
):
if chunk['type'] == 'thinking':

View File

@@ -210,12 +210,7 @@ class Backend_Api(Api):
@app.route('/backend-api/v2/create', methods=['GET', 'POST'])
def create():
try:
tool_calls = [{
"function": {
"name": "bucket_tool"
},
"type": "function"
}]
tool_calls = []
web_search = request.args.get("web_search")
if web_search:
is_true_web_search = web_search.lower() in ["true", "1"]
@@ -277,12 +272,11 @@ class Backend_Api(Api):
if not response:
response = iter_run_tools(ChatCompletion.create, **parameters)
cache_dir.mkdir(parents=True, exist_ok=True)
copy_response = cast_str(response)
if copy_response:
response = cast_str(response)
response = response if isinstance(response, str) else "".join(response)
if response:
with cache_file.open("w") as f:
for chunk in [copy_response] if isinstance(copy_response, str) else copy_response:
f.write(chunk)
response = copy_response
f.write(response)
else:
response = cast_str(iter_run_tools(ChatCompletion.create, **parameters))
if isinstance(response, str):
@@ -298,7 +292,7 @@ class Backend_Api(Api):
return redirect(response)
if do_filter:
is_true_filter = do_filter.lower() in ["true", "1"]
response = "".join(response)
response = response if isinstance(response, str) else "".join(response)
return Response(filter_markdown(response, None if is_true_filter else do_filter, response if is_true_filter else ""), mimetype='text/plain')
return Response(response, mimetype='text/plain')
except Exception as e:
@@ -412,8 +406,7 @@ class Backend_Api(Api):
mime_type = is_allowed_extension(file)
if mime_type is not None:
mime_type = secure_filename(mime_type)
for tag in safe_search:
if tag in mime_type:
if safe_search[0] in mime_type:
self.match_files[search][file] = self.match_files[search].get(file, 0) + 1
break
for tag in safe_search:

View File

@@ -67,7 +67,7 @@ class Website:
},
}
def _index(self, filename = "index"):
def _index(self, filename = "home"):
return render(filename)
def _qrcode(self, filename = "qrcode"):