release: v6.1.0 - TUI 体验全面升级 + 背景自定义
TUI 界面改进: - 全面中文化: CommandPalette/HelpPanel/Footer/Chatbox 边框标题等所有用户可见英文汉化 - 辅助中心 (Ctrl+P/F9): 原"设置"重命名, 含 6 项可切换设置 - 独立帮助浮层 (? 键): 重写帮助页面逻辑, 全中文, 带滑入淡入动画 - 背景切换: 辅助中心 [5] 预设背景, [6] 自定义背景; 新增 /bg 命令支持图片提取主色调 - 换行修复: Ctrl+J 作为主推换行键 (Windows 终端不区分 Shift+Enter) - 引擎切换修复: 解决 call_from_thread 在主线程崩溃的 RuntimeError 技术改进: - 文本工具调用解析: 检测模型用 <tool_call> 标签返回的工具调用 - 网络工具优化: network_tools.py 和 ai_search.py 改进请求头/重试/编码 - 流式输出修复: append_chunk 的 refresh 改为 layout=True - 取消响应修复: 引擎层 _cancelled 标志 + TUI 层 worker 身份跟踪 融合 v6.0.0 工作: - 保留 terminal 模拟器/operit 桥接/深度思考/工作模式/记忆模式等 v6.0.0 全部功能 - 在此基础上叠加本会话的 TUI 改进
This commit is contained in:
1 parent
b5f638cffc
commit
de15b54b19
30 files changed
+3267
-934
No files matched your search
@@ -106,7 +106,7 @@ class ImageEngineManager:
|
||||
|
||||
for filename in os.listdir(engine_dir):
|
||||
if filename.endswith('_engine.py') and filename != '__init__.py':
|
||||
engine_name = filename[:-11] # 移除 _engine.py
|
||||
engine_name = filename[:-10] # 移除 _engine.py
|
||||
try:
|
||||
# 动态导入模块
|
||||
module_path = os.path.join(engine_dir, filename)
|
||||
|
||||
@@ -14,6 +14,14 @@ except ImportError:
|
||||
OLLAMA_AVAILABLE = False
|
||||
|
||||
|
||||
def _safe_get(obj, key, default=None):
|
||||
"""兼容 dict 和 pydantic 对象的安全取值"""
|
||||
try:
|
||||
return obj[key]
|
||||
except (KeyError, AttributeError, TypeError):
|
||||
return default
|
||||
|
||||
|
||||
class OllamaImageEngine(BaseImageEngine):
|
||||
"""Ollama 视觉引擎"""
|
||||
|
||||
@@ -69,7 +77,7 @@ class OllamaImageEngine(BaseImageEngine):
|
||||
|
||||
try:
|
||||
result = ollama.list()
|
||||
self.installed_models = [m['model'] for m in result.get('models', [])]
|
||||
self.installed_models = [m['model'] for m in _safe_get(result, 'models', [])]
|
||||
except:
|
||||
self.installed_models = []
|
||||
|
||||
@@ -137,7 +145,7 @@ class OllamaImageEngine(BaseImageEngine):
|
||||
'images': [image_path]
|
||||
}]
|
||||
)
|
||||
return response.get('message', {}).get('content', '')
|
||||
return _safe_get(_safe_get(response, 'message', {}), 'content', '')
|
||||
except Exception as e:
|
||||
raise Exception(f"Ollama识别失败: {str(e)}")
|
||||
|
||||
@@ -168,7 +176,7 @@ class OllamaImageEngine(BaseImageEngine):
|
||||
stream=False
|
||||
)
|
||||
|
||||
content = response.get('message', {}).get('content', '')
|
||||
content = _safe_get(_safe_get(response, 'message', {}), 'content', '')
|
||||
if content:
|
||||
yield content
|
||||
else:
|
||||
|
||||
Reference in new issue
Block a user