brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
interactive-searchGuides Semantra local web search, query arithmetic, preference tags, result interpretation, and Flask API troubleshooting.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill after documents have been indexed and the task is to operate, explain, automate, or troubleshoot Semantra's local browser search experience.
+, -, or weighted query phrases.0.50 can be meaningful, or why exact-word matches are not guaranteed.localhost:8080, needs another port, or needs
careful LAN exposure.Route document preprocessing, cache inspection, PDF extraction, and --windows
to document-indexing. Route model choice,
OpenAI/Hugging Face/CUDA, and SVM dependency planning to
models-and-embeddings.
After choosing documents and a model, run Semantra without --no-server:
semantra --semantra-dir ./semantra-cache <files>
By default the Flask server binds to 127.0.0.1:8080. If port 8080 is busy,
choose another port:
semantra --port 8081 <files>
Use --host 0.0.0.0 only when the user intentionally wants other machines to
connect. Semantra serves the user's documents through the local app routes, so
LAN exposure is a privacy decision.
Semantra's browser search bar accepts query terms joined by + and - signs:
economic growth - unchecked capitalism + war
The UI parses this into weighted query phrases, embeds each phrase, and combines the embeddings. Positive search-result tags add embeddings to the positive side; negative tags add embeddings to the negative side. Use the bundled parser helper to explain the query shape without running a server:
python path/to/parse_semantra_query.py "economic growth - unchecked capitalism + war"
Semantra ranks windows, not whole documents, then groups or sorts the returned windows in the UI. Exact exhaustive search uses cosine similarity. The default Annoy path queries an angular index and converts Annoy distances back to a cosine-like score. The optional SVM path trains a small linear SVM against the combined query/preference vector and document window embeddings.
/api/pdfpositions, /api/pdfpage, and /api/pdfchars in
addition to the token stream from /api/text.A good answer for an interactive-search problem should include: