From 16e4aa73f74e75eaae5cbde8b7db8f72f4f9266a Mon Sep 17 00:00:00 2001 From: tth37 <xgpsthd0902@outlook.com> Date: Wed, 30 Apr 2025 01:13:31 +0800 Subject: [PATCH] Add tutorials for external web search --- docs/tutorials/web-search/external.md | 132 +++++++++++++++++++++ static/images/tutorial_external_search.png | Bin 0 -> 32697 bytes 2 files changed, 132 insertions(+) create mode 100644 docs/tutorials/web-search/external.md create mode 100644 static/images/tutorial_external_search.png diff --git a/docs/tutorials/web-search/external.md b/docs/tutorials/web-search/external.md new file mode 100644 index 0000000..7d450c3 --- /dev/null +++ b/docs/tutorials/web-search/external.md @@ -0,0 +1,132 @@ +--- +sidebar_position: 17 +title: "External" +--- + +:::warning +This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the contributing tutorial. +::: + +## External Web Search API + +This option allows you to connect Open WebUI to your own self-hosted web search API endpoint. This is useful if you want to: + +* Integrate a search engine not natively supported by Open WebUI. +* Implement custom search logic, filtering, or result processing. +* Use a private or internal search index. + +### Open WebUI Setup + +1. Navigate to the Open WebUI `Admin Panel`. +2. Go to the `Settings` tab and then select `Web Search`. +3. Toggle `Enable Web Search` to the on position. +4. Set `Web Search Engine` from the dropdown menu to `external`. +5. Fill `External Search URL` with the full URL of your custom search API endpoint (e.g., `http://localhost:8000/search` or `https://my-search-api.example.com/api/search`). +6. Fill `External Search API Key` with the secret API key required to authenticate with your custom search endpoint. Leave blank if your endpoint doesn't require authentication (not recommended for public endpoints). +7. Click `Save`. + + + +### API Specification + +Open WebUI will interact with your `External Search URL` as follows: + +* **Method:** `POST` +* **Headers:** + * `Content-Type: application/json` + * `Authorization: Bearer <YOUR_EXTERNAL_SEARCH_API_KEY>` +* **Request Body (JSON):** + ```json + { + "query": "The user's search query string", + "count": 5 // The maximum number of search results requested + } + ``` + * `query` (string): The search term entered by the user. + * `count` (integer): The suggested maximum number of results Open WebUI expects. Your API can return fewer results if necessary. + +* **Expected Response Body (JSON):** + Your API endpoint *must* return a JSON array of search result objects. Each object should have the following structure: + ```json + [ + { + "link": "URL of the search result", + "title": "Title of the search result page", + "snippet": "A brief description or snippet from the search result page" + }, + { + "link": "...", + "title": "...", + "snippet": "..." + } + // ... potentially more results up to the requested count + ] + ``` + * `link` (string): The direct URL to the search result. + * `title` (string): The title of the web page. + * `snippet` (string): A descriptive text snippet from the page content relevant to the query. + + If an error occurs or no results are found, your endpoint should ideally return an empty JSON array `[]`. + +### Example Implementation (Python/FastAPI) + +Here is a simple example of a self-hosted search API using Python with FastAPI and the `duckduckgo-search` library. + +```python +import uvicorn +from fastapi import FastAPI, Header, Body, HTTPException +from pydantic import BaseModel +from duckduckgo_search import DDGS + +EXPECTED_BEARER_TOKEN = "your_secret_token_here" + +app = FastAPI() + + +class SearchRequest(BaseModel): + query: str + count: int + + +class SearchResult(BaseModel): + link: str + title: str | None + snippet: str | None + + +@app.post("/search") +async def external_search( + search_request: SearchRequest = Body(...), + authorization: str | None = Header(None), +): + expected_auth_header = f"Bearer {EXPECTED_BEARER_TOKEN}" + if authorization != expected_auth_header: + raise HTTPException(status_code=401, detail="Unauthorized") + + query, count = search_request.query, search_request.count + + results = [] + try: + with DDGS() as ddgs: + search_results = ddgs.text( + query, safesearch="moderate", max_results=count, backend="lite" + ) + + results = [ + SearchResult( + link=result["href"], + title=result.get("title"), + snippet=result.get("body"), + ) + for result in search_results + ] + + except Exception as e: + print(f"Error during DuckDuckGo search: {e}") + + return results + + +if __name__ == "__main__": + uvicorn.run("main:app", host="0.0.0.0", port=8888) +``` \ No newline at end of file diff --git a/static/images/tutorial_external_search.png b/static/images/tutorial_external_search.png new file mode 100644 index 0000000000000000000000000000000000000000..e932b314db3b73d2462fe6c630d5cd49ef5a1bbf GIT binary patch literal 32697 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 a`*^%tk*nH$XRHQ)&9$|+Ic2qc+dlxW`?hre literal 0 HcmV?d00001