From 68703951e8abbdbed469953ad9beaa22806b5da2 Mon Sep 17 00:00:00 2001 From: "M.Abdulrahman Alnaseer" <20760062+abdalrohman@users.noreply.github.com> Date: Wed, 5 Feb 2025 19:14:40 +0300 Subject: [PATCH] feat(ui): implement domain filter list for web search settings --- backend/open_webui/routers/retrieval.py | 6 +++++ .../admin/Settings/WebSearch.svelte | 24 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index 35cea6237..434f392c3 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -392,6 +392,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "exa_api_key": request.app.state.config.EXA_API_KEY, "result_count": request.app.state.config.RAG_WEB_SEARCH_RESULT_COUNT, "concurrent_requests": request.app.state.config.RAG_WEB_SEARCH_CONCURRENT_REQUESTS, + "domain_filter_list": request.app.state.config.RAG_WEB_SEARCH_DOMAIN_FILTER_LIST, }, }, } @@ -441,6 +442,7 @@ class WebSearchConfig(BaseModel): exa_api_key: Optional[str] = None result_count: Optional[int] = None concurrent_requests: Optional[int] = None + domain_filter_list: Optional[List[str]] = [] class WebConfig(BaseModel): @@ -553,6 +555,9 @@ async def update_rag_config( request.app.state.config.RAG_WEB_SEARCH_CONCURRENT_REQUESTS = ( form_data.web.search.concurrent_requests ) + request.app.state.config.RAG_WEB_SEARCH_DOMAIN_FILTER_LIST = ( + form_data.web.search.domain_filter_list + ) return { "status": True, @@ -599,6 +604,7 @@ async def update_rag_config( "exa_api_key": request.app.state.config.EXA_API_KEY, "result_count": request.app.state.config.RAG_WEB_SEARCH_RESULT_COUNT, "concurrent_requests": request.app.state.config.RAG_WEB_SEARCH_CONCURRENT_REQUESTS, + "domain_filter_list": request.app.state.config.RAG_WEB_SEARCH_DOMAIN_FILTER_LIST, }, }, } diff --git a/src/lib/components/admin/Settings/WebSearch.svelte b/src/lib/components/admin/Settings/WebSearch.svelte index b2accbf1d..927086d5d 100644 --- a/src/lib/components/admin/Settings/WebSearch.svelte +++ b/src/lib/components/admin/Settings/WebSearch.svelte @@ -34,6 +34,14 @@ let youtubeProxyUrl = ''; const submitHandler = async () => { + // Convert domain filter string to array before sending + if (webConfig?.search?.domain_filter_list) { + webConfig.search.domain_filter_list = webConfig.search.domain_filter_list + .split(',') + .map(domain => domain.trim()) + .filter(domain => domain.length > 0); + } + const res = await updateRAGConfig(localStorage.token, { web: webConfig, youtube: { @@ -49,6 +57,10 @@ if (res) { webConfig = res.web; + // Convert array back to comma-separated string for display + if (webConfig?.search?.domain_filter_list) { + webConfig.search.domain_filter_list = webConfig.search.domain_filter_list.join(', '); + } youtubeLanguage = res.youtube.language.join(','); youtubeTranslation = res.youtube.translation; @@ -334,6 +346,18 @@ /> + +