github nicobailon/pi-web-access v0.42.0

11 hours ago

You can now search with DeepSeek, using DeepSeek's own Search API with your DeepSeek key. If you route models through a Pi virtual model, page answers and search summaries now work instead of failing or quietly falling back. Gemini signs in on Google Compute Engine with the machine's service account, and !command key sources behave on Windows the way they do in Pi. If you want the web tools out of your requests until they're needed, a new opt-in setting does that and lets Pi's tool_search find them.

Highlights

  • DeepSeek search. Pick provider: "deepseek" and set your DeepSeek API key. It's never chosen automatically, because DeepSeek bills each search.
  • Virtual models just work. Asking a question about a page, and summarizing search results, now go through your router like every other request.
  • Gemini on Compute Engine. geminiAuth: "adc" uses the VM's attached service account when there's no credentials file.
  • Windows !command keys. Commands run in Git Bash, so $HOME and other POSIX syntax work.
  • Deferred web tools (opt-in). "toolExposure": "deferred" keeps the four web tools off every request until web_enable or tool_search loads them.

Changelog

Highlights

  • Search with DeepSeek: a new provider for DeepSeek's own Search API, used when you pick it.
  • Page answers and search summaries now work when your selected model is a Pi virtual model, such as a router.
  • Gemini can sign in on Google Compute Engine with the machine's attached service account, with no credentials file.
  • !command API key sources work on Windows the way they do in Pi itself, so commands like $HOME/bin/secret-get run.
  • An opt-in setting keeps the web tools off every request until they're needed and lets Pi's tool_search find them.

Added

  • DeepSeek search provider, backed by DeepSeek's Search API. Select provider: "deepseek" or add it to searchRouting, and set deepseekApiKey or DEEPSEEK_API_KEY. DeepSeek bills each successful search, so auto and all never use it. Allowed and excluded domains become site: and -site: filters, and recencyFilter becomes an after: date. DeepSeek accepts queries up to 128 characters including those filters, so a longer one fails before anything is sent. Thanks to @syxb2 for issue #577 and @Lang646 for the API details on issue #119.
  • geminiAuth: "adc" now works on Google Compute Engine with no credentials file. When neither GOOGLE_APPLICATION_CREDENTIALS nor ~/.config/gcloud/application_default_credentials.json exists, it uses the token of the machine's attached service account. GCE_METADATA_HOST changes the metadata host, and METADATA_SERVER_DETECTION=none turns this off. Thanks to @sergiopadure for PR #572.
  • "toolExposure": "deferred" in web-search.json keeps web_search, source_check, fetch_content, and get_search_content off every request until web_enable or Pi's tool_search loads them. It always uses dynamic activation, so it can't be combined with "toolActivation": "eager". The default, "direct", works as before. Thanks to @hannonpi1228 for issue #575 and PR #576.

Fixed

  • fetch_content answer mode and search summaries work with Pi virtual models. Before, answer mode failed with Virtual model … must be routed before streaming, and summaries quietly fell back to the plain list of results. Thanks to @yansongda for issue #574.
  • On Windows, !command API key sources run in Git Bash (or bash.exe on PATH), as Pi's own !command settings do, so POSIX syntax like $HOME works. Without bash they still run in cmd.exe. Standard Windows variables such as USERPROFILE and SystemRoot now reach the command. Thanks to @estrizhok for issue #571.

Don't miss a new pi-web-access release

NewReleases is sending notifications on new releases.