mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-27 01:40:33 -04:00
refac
This commit is contained in:
@@ -3063,15 +3063,11 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
||||
}
|
||||
|
||||
if terminal_id and terminal_capability:
|
||||
from open_webui.utils.terminals import get_terminal_agents_md
|
||||
from open_webui.utils.terminals import add_terminal_agents_md, get_terminal_agents_md
|
||||
|
||||
agents_md = await get_terminal_agents_md(request, user, metadata, extra_params)
|
||||
if agents_md:
|
||||
form_data['messages'] = add_or_update_system_message(
|
||||
agents_md,
|
||||
form_data['messages'],
|
||||
append=True,
|
||||
)
|
||||
form_data['messages'] = add_terminal_agents_md(form_data['messages'], agents_md)
|
||||
|
||||
if mcp_clients:
|
||||
metadata['mcp_clients'] = mcp_clients
|
||||
|
||||
@@ -230,12 +230,20 @@ async def get_terminal_agents_md(request, user, metadata: dict, extra_params: di
|
||||
if len(content.encode('utf-8')) > MAX_AGENTS_MD_BYTES:
|
||||
log.warning('Skipping terminal AGENTS.md: exceeds %s bytes', MAX_AGENTS_MD_BYTES)
|
||||
return None
|
||||
return f'# AGENTS.md instructions for {home}\n\n<INSTRUCTIONS>\n{content}\n</INSTRUCTIONS>'
|
||||
return f'# AGENTS.md\n\n{content}'
|
||||
except Exception as e:
|
||||
log.debug('Failed to load terminal AGENTS.md (%s)', type(e).__name__)
|
||||
return None
|
||||
|
||||
|
||||
def add_terminal_agents_md(messages: list[dict], agents_md: str) -> list[dict]:
|
||||
"""Place file instructions before user requests without changing their content."""
|
||||
for index, message in enumerate(messages):
|
||||
if message.get('role') == 'user':
|
||||
return [*messages[:index], {'role': 'user', 'content': agents_md}, *messages[index:]]
|
||||
return messages
|
||||
|
||||
|
||||
async def get_terminal_skill(
|
||||
request, user, metadata: dict, skill_name: str, extra_params: dict | None = None
|
||||
) -> dict | None:
|
||||
|
||||
Reference in New Issue
Block a user