Use this file to discover all available pages before exploring further.
This assistant searches the live web with Opper’s built-in web tool, then uses the JSON API to write a grounded answer that cites its sources. Two steps: search, then one structured call.
python app.py
You › What is Mistral’s largest open-weight model?
Tool › web_search(“Mistral largest open-weight model”) → 5 results from the web
Bot › Mistral’s largest open-weight model is Mistral Medium 3.5, a 128B-parameter model for reasoning, coding, and instruction-following.
Search.web_search calls Opper’s hosted web tool (POST /v3/tools/web/search) and returns a list of {title, url, snippet} results. No separate search API key to manage.
Answer. The JSON API call gets the question plus those results and returns a typed Answer. Because the output is schema-constrained, answer and sources come back clean, with no parsing.
Grounding. The model only sees the results you pass in, so it answers from the search rather than from memory. If a fact isn’t in the results, it can say so.
Pass more or fewer results to trade cost for coverage, and add an Observe rule that checks every answer actually cites a source.