Skip to content

Commit fcb73c3

Browse files
authored
Merge pull request #212 from meglinge/dev
feat: 优化工具面板展开逻辑,统一 Google Search 和 URL Context 行为 fix: 在多轮对话中聚合所有历史图片,解决上下文丢失问题
2 parents 529abcd + ca95f63 commit fcb73c3

2 files changed

Lines changed: 13 additions & 13 deletions

File tree

api_utils/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,8 @@ def prepare_combined_prompt(messages: List[Message], req_id: str) -> str:
250250
combined_parts = []
251251
system_prompt_content: Optional[str] = None
252252
processed_system_message_indices = set()
253-
253+
images_list = [] # 将 image_list 的初始化移到循环外部
254+
254255
# 处理系统消息
255256
for i, msg in enumerate(messages):
256257
if msg.role == 'system':
@@ -284,7 +285,6 @@ def prepare_combined_prompt(messages: List[Message], req_id: str) -> str:
284285
role = msg.role or 'unknown'
285286
role_prefix_ui = f"{role_map_ui.get(role, role.capitalize())}:\n"
286287
current_turn_parts = [role_prefix_ui]
287-
images_list = []
288288

289289
content = msg.content or ''
290290
content_str = ""

browser_utils/model_management.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ async def _verify_ui_state_settings(page: AsyncPage, req_id: str = "unknown") ->
5151
are_tools_open = prefs.get('areToolsOpen')
5252

5353
# 检查是否需要更新
54-
needs_update = (is_advanced_open is not True) or (are_tools_open is not False)
54+
needs_update = (is_advanced_open is not True) or (are_tools_open is not True)
5555

5656
result = {
5757
'exists': True,
@@ -61,7 +61,7 @@ async def _verify_ui_state_settings(page: AsyncPage, req_id: str = "unknown") ->
6161
'prefs': prefs
6262
}
6363

64-
logger.info(f"[{req_id}] UI状态验证结果: isAdvancedOpen={is_advanced_open}, areToolsOpen={are_tools_open}, needsUpdate={needs_update}")
64+
logger.info(f"[{req_id}] UI状态验证结果: isAdvancedOpen={is_advanced_open}, areToolsOpen={are_tools_open} (期望: True), needsUpdate={needs_update}")
6565
return result
6666

6767
except json.JSONDecodeError as e:
@@ -110,13 +110,13 @@ async def _force_ui_state_settings(page: AsyncPage, req_id: str = "unknown") ->
110110

111111
# 强制设置关键配置
112112
prefs['isAdvancedOpen'] = True
113-
prefs['areToolsOpen'] = False
113+
prefs['areToolsOpen'] = True
114114

115115
# 保存到localStorage
116116
prefs_str = json.dumps(prefs)
117117
await page.evaluate("(prefsStr) => localStorage.setItem('aiStudioUserPreference', prefsStr)", prefs_str)
118118

119-
logger.info(f"[{req_id}] 已强制设置: isAdvancedOpen=true, areToolsOpen=false")
119+
logger.info(f"[{req_id}] 已强制设置: isAdvancedOpen=true, areToolsOpen=true")
120120

121121
# 验证设置是否成功
122122
verify_state = await _verify_ui_state_settings(page, req_id)
@@ -231,7 +231,7 @@ async def switch_ai_studio_model(page: AsyncPage, model_id: str, req_id: str) ->
231231

232232
# 为了保持兼容性,也更新当前的prefs对象
233233
current_prefs_for_modification["isAdvancedOpen"] = True
234-
current_prefs_for_modification["areToolsOpen"] = False
234+
current_prefs_for_modification["areToolsOpen"] = True
235235
await page.evaluate("(prefsStr) => localStorage.setItem('aiStudioUserPreference', prefsStr)", json.dumps(current_prefs_for_modification))
236236

237237
logger.info(f"[{req_id}] localStorage 已更新,导航到 '{new_chat_url}' 应用新模型...")
@@ -362,7 +362,7 @@ async def switch_ai_studio_model(page: AsyncPage, model_id: str, req_id: str) ->
362362

363363
# 为了保持兼容性,也更新当前的prefs对象
364364
base_prefs_for_final_revert["isAdvancedOpen"] = True
365-
base_prefs_for_final_revert["areToolsOpen"] = False
365+
base_prefs_for_final_revert["areToolsOpen"] = True
366366
logger.info(f"[{req_id}] 恢复:准备将 localStorage.promptModel 设置回页面实际显示的模型的路径: '{path_to_revert_to}',并强制设置配置选项")
367367
await page.evaluate("(prefsStr) => localStorage.setItem('aiStudioUserPreference', prefsStr)", json.dumps(base_prefs_for_final_revert))
368368
logger.info(f"[{req_id}] 恢复:导航到 '{new_chat_url}' 以应用恢复到 '{model_id_to_revert_to}' 的 localStorage 设置...")
@@ -463,7 +463,7 @@ async def _handle_initial_model_state_and_storage(page: AsyncPage):
463463
ui_state = await _verify_ui_state_settings(page, "initial")
464464
if ui_state['needsUpdate']:
465465
needs_reload_and_storage_update = True
466-
reason_for_reload = f"UI状态需要更新: isAdvancedOpen={ui_state['isAdvancedOpen']}, areToolsOpen={ui_state['areToolsOpen']}"
466+
reason_for_reload = f"UI状态需要更新: isAdvancedOpen={ui_state['isAdvancedOpen']}, areToolsOpen={ui_state['areToolsOpen']} (期望: True)"
467467
logger.info(f" 判定需要刷新和存储更新: {reason_for_reload}")
468468
else:
469469
server.current_ai_studio_model_id = prompt_model_path.split('/')[-1]
@@ -577,12 +577,12 @@ async def _set_model_from_page_display(page: AsyncPage, set_storage: bool = Fals
577577
if not ui_state_success:
578578
logger.warning(f" UI状态设置失败,使用传统方法")
579579
prefs_to_set["isAdvancedOpen"] = True
580-
prefs_to_set["areToolsOpen"] = False
580+
prefs_to_set["areToolsOpen"] = True
581581
else:
582582
# 确保prefs_to_set也包含正确的设置
583583
prefs_to_set["isAdvancedOpen"] = True
584-
prefs_to_set["areToolsOpen"] = False
585-
logger.info(f" 强制 isAdvancedOpen: true, areToolsOpen: false")
584+
prefs_to_set["areToolsOpen"] = True
585+
logger.info(f" 强制 isAdvancedOpen: true, areToolsOpen: true")
586586

587587
if found_model_id_from_display:
588588
new_prompt_model_path = f"models/{found_model_id_from_display}"
@@ -609,6 +609,6 @@ async def _set_model_from_page_display(page: AsyncPage, set_storage: bool = Fals
609609
prefs_to_set[key] = val_default
610610

611611
await page.evaluate("(prefsStr) => localStorage.setItem('aiStudioUserPreference', prefsStr)", json.dumps(prefs_to_set))
612-
logger.info(f" ✅ localStorage.aiStudioUserPreference 已更新。isAdvancedOpen: {prefs_to_set.get('isAdvancedOpen')}, areToolsOpen: {prefs_to_set.get('areToolsOpen')}, promptModel: '{prefs_to_set.get('promptModel', '未设置/保留原样')}'。")
612+
logger.info(f" ✅ localStorage.aiStudioUserPreference 已更新。isAdvancedOpen: {prefs_to_set.get('isAdvancedOpen')}, areToolsOpen: {prefs_to_set.get('areToolsOpen')} (期望: True), promptModel: '{prefs_to_set.get('promptModel', '未设置/保留原样')}'。")
613613
except Exception as e_set_disp:
614614
logger.error(f" 尝试从页面显示设置模型时出错: {e_set_disp}", exc_info=True)

0 commit comments

Comments
 (0)