Ubiquité
Set endpoint under [searx] in Ubiquité's settings to the SpecStream search address, and its web search and image search run on SpecStream's Search API. There is no SearX instance to run, and no restart.
What you need
- Ubiquité, running with Docker Compose as its README shows, or from source.
- A SpecStream key. Get your key on the Search API screen of your SpecStream workspace. New accounts start with $10 of credit, no card.
- 1
1. Open the settings
In Ubiquité, click the gear at the bottom of the left sidebar. The settings page is an editor that holds the whole
config.toml. - 2
2. Set endpoint under [searx]
Find the
[searx]section and setendpointto the whole search address, with your key in place ofYOUR_SPECSTREAM_KEY. Ubiquité sends its searches to this address as it is, so keep/searchat the end.The key is
endpoint. Ubiquité's README showsurlin this section, but the code readssearx.endpoint, and so doesconfig.sample.toml.config.toml - 3
3. Save
The editor saves on its own a moment after you stop typing, or press Ctrl+S (Cmd+S on a Mac). The status reads Saved. A file that is not valid TOML is refused and not saved.
You can edit
config.tomlon disk instead. With Docker it is the file next todocker-compose.yml, mounted into the backend at/app/config.toml. - 4
4. Ask a question
Ubiquité reads
config.tomlagain for every request, so the next question already searches with SpecStream. Ask something recent and check that the answer cites the pages it found:In Ubiquité
What changes and what stays
Ubiquité's search_searx tool is unchanged. It sends GET to endpoint with q, language and format=json, and reads title, content and url from each result. SpecStream answers in SearXNG's JSON shape, so the model gets the same fields, from a search run at that moment.
Image search uses the same endpoint with categories=images. SpecStream answers with image results in SearXNG's shape, img_src included, and Ubiquité's reranker orders them as before.
A focus adds its conditions to the query, like site:reddit.com in the sample Reddit focus. SpecStream applies site: to each result it returns.
The map tool is separate: it still looks up places with the geocoder in [nominatim].
Why not a public SearX instance
Ubiquité's README points to searx.space (opens in a new tab) for a public instance. Ubiquité asks for format=json, and SearXNG's search API docs (opens in a new tab) say that requesting a format the instance has not turned on returns 403 Forbidden, and that many public instances have these formats turned off. Running your own means a container, a settings.yml with JSON turned on, and public engines that can answer its traffic with CAPTCHAs.
With SpecStream there is no instance: the search runs on SpecStream's servers and answers in the JSON Ubiquité reads.
What it costs
Each time the model calls search_searx, that is one Search API call of up to 10 results. The SearX address runs the Search API's fast tier, at $1 per 1,000 searches of up to 10 results.
Images load when you open them on an answer, and Ubiquité keeps them with the message. An image search returns SearXNG's full page of up to 100 images and is charged like a fast search of that many results. The pricing page has the rate.
Searches come out of your balance with no quote and no approval, and every call, charged or not, is in your account's request log.
Limits and errors
- If answers come back with no sources, check the key in
endpoint. A reply that refuses the key holds noresults, so Ubiquité has nothing to cite. - Your model keys already sit in
config.tomlin plain text, and the settings page shows the file to anyone who can open Ubiquité. The SpecStream key sits beside them, so keep the app on a network you trust.
Go back to SearX
Set endpoint back to your instance, for example http://host.docker.internal:6001 from the sample file. Questions: [email protected].
More
SpecStream for Ubiquité covers what it does in Ubiquité on one page. Every other tool has its guide in Connect your tools. You see the most a request can cost before it starts, and the matches are paid from your balance. Billing has the details. For help, email [email protected].