summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-10-20 02:03:54 +0900
committertanaka takashi <isazaka@gmail.com>2026-10-20 02:03:54 +0900
commit4e9c66ee25ed77858985765382f41d0cf22ea588 (patch)
treefcde86704f98035e8dbae8814c07b0cb07d19bdb /README.md
parentfbda00608e52eef6a0e7b01ce831b1e6c3666909 (diff)
Improve web search region selection and normalize provider resultsHEADmain
Update ddgs to 9.16.0 and keep backend="auto" while preserving the LLM-facing query/max_results inputs and title/href/body result schema. Implementation: - Add OLLAMA_WEB_SEARCH_REGION with auto/us-en/jp-jp values, normalized configuration input, and a clear startup error for unsupported values. - In auto mode, detect kana after NFKC normalization and exclusion of URLs and site:/filetype: tokens. Select jp-jp for kana and us-en otherwise, without modifying the original query or sharing per-call region state. - Preserve href/url and body/snippet fallbacks and normalize None values. - Reject malformed HTTP(S) URLs without DNS lookups or extra requests. - Unwrap known Yahoo redirect URLs before excluding Bing aclick ads. - Represent missing and URL-only titles as empty strings rather than inventing titles from snippets. Preserve remaining provider order and allow fewer results after filtering, without additional searches. - Preserve provider exception propagation and identify ddgs in error logs. Coverage and documentation: - Add 72 regression cases for configuration, region routing, concurrency, public schemas, title/URL/ad boundaries, limits, and search_and_fetch continuation. Update existing provider mocks and log assertions. - Document the region environment setting and result semantics in both READMEs and tools-schema.md; update the changelog. - Keep only a short backend availability caveat in tools-schema.md and remove the temporary backend comparison, design, and validation docs. Validation: - pytest: 222 passed; ruff check . and mypy src/ passed. - uv lock --check and git diff --check passed. - Initial live acceptance: 56 searches plus 3 registry smoke checks; default-region auto succeeded 8/18 times and real ad filtering removed two ads. Stable relevance/title quality targets remain unmet because provider acquisition is unreliable. - Follow-up backend study: 234 comparative searches plus 3 Yahoo response diagnostics. Yahoo led individual backends at 9/18; restricted multi- backend combinations did not outperform the contemporaneous auto control. Authentication, access restrictions, temporary upstream failures, and Yahoo HTML/parser mismatches were observed. Do not claim search reliability is fixed or add backend configuration, custom retries, ranking changes, or challenge bypasses. Running app processes were not restarted; restart is needed to load the changes.
Diffstat (limited to 'README.md')
-rw-r--r--README.md13
1 files changed, 13 insertions, 0 deletions
diff --git a/README.md b/README.md
index cb7a62b..7f39b27 100644
--- a/README.md
+++ b/README.md
@@ -79,6 +79,19 @@ ollama-web
| `OLLAMA_WEB_MCP_STDIO_ALLOWLIST` | Not set | Comma-separated absolute paths of executable files allowed for stdio MCP |
| `OLLAMA_WEB_MCP_HTTPS_ALLOWLIST` | Not set | Comma-separated hostnames allowed for remote HTTPS MCP connections |
| `OLLAMA_WEB_LANGUAGE` | `ja` | Display language for the UI and LLM prompts (`ja` or `en`) |
+| `OLLAMA_WEB_SEARCH_REGION` | `auto` | Search region: `auto`, `us-en`, or `jp-jp`. Auto selects Japan for queries containing kana, otherwise the US. |
+
+Search uses ddgs with `backend="auto"`. Region is selected internally; the LLM tool
+still accepts only `query` and `max_results`. Detection normalizes half-width kana
+and ignores URLs and `site:`/`filetype:` tokens, without rewriting the search query.
+Kanji-only queries use `us-en`; set `jp-jp` to prefer Japan for every query. This
+setting is independent of the UI language and takes effect after restarting the app.
+Invalid values stop startup with a configuration error.
+
+Search summaries omit malformed URLs and known Bing ad links, and represent missing
+or URL-only titles as an empty string while keeping the URL and snippet. Filtering
+can reduce the result count; it does not trigger extra requests. Provider failures
+remain tool errors.
### Multilingual Support