This commit is contained in:
Timothy Jaeryang Baek
2026-03-23 16:46:54 -05:00
parent eca51269bb
commit 5d7766e1b6
3 changed files with 312 additions and 18 deletions
+3 -2
View File
@@ -227,7 +227,7 @@ def get_citation_source_from_tool_result(
Returns a list of sources (usually one, but query_knowledge_files may return multiple).
"""
_EXPECTS_LIST = {'search_web', 'query_knowledge_files'}
_EXPECTS_DICT = {'view_knowledge_file'}
_EXPECTS_DICT = {'view_knowledge_file', 'view_file'}
try:
try:
@@ -271,7 +271,7 @@ def get_citation_source_from_tool_result(
}
]
elif tool_name == 'view_knowledge_file':
elif tool_name in ('view_knowledge_file', 'view_file'):
file_data = tool_result
filename = file_data.get('filename', 'Unknown File')
file_id = file_data.get('id', '')
@@ -4143,6 +4143,7 @@ async def streaming_chat_response_handler(response, ctx):
in [
'search_web',
'fetch_url',
'view_file',
'view_knowledge_file',
'query_knowledge_files',
]
+6 -1
View File
@@ -79,6 +79,8 @@ from open_webui.tools.builtin import (
query_knowledge_bases,
search_knowledge_files,
query_knowledge_files,
list_attached_knowledge,
search_attached_files,
view_file,
view_knowledge_file,
view_skill,
@@ -405,12 +407,15 @@ def get_builtin_tools(
model_knowledge = list(model_knowledge or []) + list(folder_knowledge)
if is_builtin_tool_enabled('knowledge'):
if model_knowledge:
# Model has attached knowledge - only allow semantic search within it
# Model has attached knowledge - provide discovery, search and semantic tools
builtin_functions.append(list_attached_knowledge)
builtin_functions.append(search_attached_files)
builtin_functions.append(query_knowledge_files)
knowledge_types = {item.get('type') for item in model_knowledge}
if 'file' in knowledge_types or 'collection' in knowledge_types:
builtin_functions.append(view_file)
builtin_functions.append(view_knowledge_file)
if 'note' in knowledge_types:
builtin_functions.append(view_note)
else: