mirror of
https://github.com/open-webui/open-webui.git
synced 2026-10-10 03:27:57 +00:00
Merge f7438588d7 into b859124f95
This commit is contained in:
commit
83c2440a81
3 changed files with 15 additions and 5 deletions
|
|
@ -2749,7 +2749,11 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
|||
if note_files:
|
||||
files = [*(files or []), *note_files]
|
||||
|
||||
if skill_ids or use_builtin_tools:
|
||||
use_skill_tools = use_builtin_tools and (model.get('info', {}).get('meta', {}).get('builtinTools') or {}).get(
|
||||
'skills', True
|
||||
)
|
||||
|
||||
if skill_ids or use_skill_tools:
|
||||
from open_webui.models.skills import Skills as SkillsModel
|
||||
from open_webui.utils.terminals import (
|
||||
format_terminal_skill_context,
|
||||
|
|
@ -2762,7 +2766,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
|||
db_skill_ids = [sid for sid in skill_ids if not sid.startswith(terminal_skill_prefix)]
|
||||
terminal_skill_ids = [sid for sid in skill_ids if sid.startswith(terminal_skill_prefix)]
|
||||
|
||||
if use_builtin_tools:
|
||||
if use_skill_tools:
|
||||
accessible_skills = {s.id: s for s in await SkillsModel.get_skills(user_id=user.id)}
|
||||
db_skill_ids = sorted(accessible_skills)
|
||||
else:
|
||||
|
|
@ -2775,7 +2779,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
|||
|
||||
skill_manifest = ''
|
||||
for skill in available_skills:
|
||||
if skill.id in mentioned_skill_ids or not use_builtin_tools:
|
||||
if skill.id in mentioned_skill_ids or not use_skill_tools:
|
||||
form_data['messages'] = add_or_update_system_message(
|
||||
f'<skill name="{skill.name}">\n{skill.content}\n</skill>',
|
||||
form_data['messages'],
|
||||
|
|
@ -2796,7 +2800,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
|||
|
||||
listed_terminal_skills = listed if isinstance(listed, list) else []
|
||||
|
||||
if terminal_id and use_builtin_tools:
|
||||
if terminal_id and use_skill_tools:
|
||||
terminal_skills = listed_terminal_skills
|
||||
elif terminal_skill_ids:
|
||||
terminal_skill_map = {skill['id']: skill for skill in listed_terminal_skills}
|
||||
|
|
@ -2804,7 +2808,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
|||
|
||||
for skill in terminal_skills:
|
||||
sid = skill['id']
|
||||
if sid in mentioned_skill_ids or not use_builtin_tools:
|
||||
if sid in mentioned_skill_ids or not use_skill_tools:
|
||||
skill_name = unquote(sid.removeprefix(terminal_skill_prefix))
|
||||
loaded = await get_terminal_skill(request, user.model_dump(), metadata, skill_name, extra_params)
|
||||
if loaded:
|
||||
|
|
|
|||
|
|
@ -73,6 +73,10 @@
|
|||
subagents: {
|
||||
label: $i18n.t('settings.admin.models.builtinTools.subagents.label'),
|
||||
description: $i18n.t('settings.admin.models.builtinTools.subagents.description')
|
||||
},
|
||||
skills: {
|
||||
label: $i18n.t('settings.admin.models.builtinTools.skills.label'),
|
||||
description: $i18n.t('settings.admin.models.builtinTools.skills.description')
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -2616,6 +2616,8 @@
|
|||
"settings.admin.models.builtinTools.notes.label": "Notes",
|
||||
"settings.admin.models.builtinTools.notifications.description": "Send notifications to configured webhook targets",
|
||||
"settings.admin.models.builtinTools.notifications.label": "Notifications",
|
||||
"settings.admin.models.builtinTools.skills.description": "Find and load skill instructions on demand",
|
||||
"settings.admin.models.builtinTools.skills.label": "Skills",
|
||||
"settings.admin.models.builtinTools.subagents.description": "Delegate focused work to parallel sub-agents",
|
||||
"settings.admin.models.builtinTools.subagents.label": "Sub-agents",
|
||||
"settings.admin.models.builtinTools.tasks.description": "Break down complex requests into trackable steps",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue