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
!commandkeys. Commands run in Git Bash, so$HOMEand other POSIX syntax work. - Deferred web tools (opt-in).
"toolExposure": "deferred"keeps the four web tools off every request untilweb_enableortool_searchloads 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.
!commandAPI key sources work on Windows the way they do in Pi itself, so commands like$HOME/bin/secret-getrun.- An opt-in setting keeps the web tools off every request until they're needed and lets Pi's
tool_searchfind them.
Added
- DeepSeek search provider, backed by DeepSeek's Search API. Select
provider: "deepseek"or add it tosearchRouting, and setdeepseekApiKeyorDEEPSEEK_API_KEY. DeepSeek bills each successful search, soautoandallnever use it. Allowed and excluded domains becomesite:and-site:filters, andrecencyFilterbecomes anafter: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 neitherGOOGLE_APPLICATION_CREDENTIALSnor~/.config/gcloud/application_default_credentials.jsonexists, it uses the token of the machine's attached service account.GCE_METADATA_HOSTchanges the metadata host, andMETADATA_SERVER_DETECTION=noneturns this off. Thanks to @sergiopadure for PR #572."toolExposure": "deferred"inweb-search.jsonkeepsweb_search,source_check,fetch_content, andget_search_contentoff every request untilweb_enableor Pi'stool_searchloads 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_contentanswer mode and search summaries work with Pi virtual models. Before, answer mode failed withVirtual 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,
!commandAPI key sources run in Git Bash (orbash.exeonPATH), as Pi's own!commandsettings do, so POSIX syntax like$HOMEworks. Without bash they still run incmd.exe. Standard Windows variables such asUSERPROFILEandSystemRootnow reach the command. Thanks to @estrizhok for issue #571.