// agent

Semantic Search

by ozzo · Jul 10, 2026 Public

Choose how to run this agent

Local runs on your GPU. For usable speed it needs a WebGPU-capable browser — Chrome or Edge on a machine with a graphics card, or an Apple Silicon Mac. Without a supported GPU, pick OpenAI or Anthropic above instead.
Try it now

Requires an API key and an AgentOp account.

0 downloads
0 forks
0.0 rating

Description

Search your own notes or documents by meaning, not keywords — instant results with no LLM download.

Source Code

agent.py
# How many passages to return per search.
SEARCH_TOP_K = [[[SEARCH_TOP_K|5]]]


async def _ingest(source, text):
    """(JS-callable) Index text as individual passages, one per non-empty line.

    Per-line indexing keeps each note / FAQ entry / list item its own searchable
    unit (rather than merging a short blob into one chunk), so ranking is
    meaningful. Underscore-prefixed so it is never exposed to the LLM as a tool.
    Returns the number of passages stored, as a string (for the UI).
    """
    passages = [line.strip() for line in text.splitlines() if line.strip()]
    total = 0
    for passage in passages:
        total += await agentop_rag.add_document(source, passage)
    return str(total)


async def process_user_query(query):
    """Return the most semantically similar passages — no LLM generation.

    Retrieval is deterministic and runs entirely on the embedding model, so this
    template never loads a chat model.
    """
    hits = await agentop_rag.search(query, SEARCH_TOP_K)
    if not hits:
        return "No matches yet — index some text first, then search."
    lines = []
    for i, h in enumerate(hits):
        score = round(float(h["score"]) * 100)
        lines.append(f"[{i + 1}] {score}% match · {h['source']}\n{h['text']}")
    return "\n\n".join(lines)

More by ozzo

Meeting Minutes

Turn a meeting recording into a summary, key decisions, and action items, then ask follow-up questi…

Voice Transcriber

Upload a voice note or audio file and get an instant transcript, then ask questions about it — all …

Document Q&A

Upload a PDF or text file and ask questions answered only from that document — fully in your browse…

Freelancer Tax Q&A Helper

Freelancer Tax Q&A Helper is a browser-executable AI agent template built on AgentOp. It runs entir…

ATS Resume Optimizer Agent

The ATS Resume Optimizer Agent helps you tailor your resume to specific job postings and stand out …

Contract Plain-Language Explainer Agent

Contracts are written by lawyers, for lawyers — but you’re the one signing them. The Contract Plain…