{% extends "base.html" %} {% from "_help.html" import info %} {% from "_job_status.html" import job_status %} {% block title %}Ask — Paperful{% endblock %} {% block body_attrs %}{% if poll_run %} data-poll-run="{{ poll_run }}"{% endif %}{% endblock %} {% block content %}
{{ message }} Scope follows the collection chip. Answers name the papers and pages they used.
{% if flags.remote_llm %}Remote LLM — excerpts from your PDFs leave this machine.
{% endif %} {% if flags.remote_embed %}Remote embedding model — passage text leaves this machine.
{% endif %} {% if flags.can_ingest and not flags.can_ask %}Ask reads the local index, not live Zotero. Index the current collection (or the whole mirror when no chip is set), then this page can answer.
{{ job_status(ingest_result, 'Ingest') }} {% if ingest_result.summary %}{% if ingest_result.dry_run %}Would index{% else %}Indexed{% endif %} {{ ingest_result.summary.pdf + ingest_result.summary.ocr }} PDFs ({{ ingest_result.summary.ocr }} after OCR) and {{ ingest_result.summary.abstract }} abstracts. Unchanged {{ ingest_result.summary.unchanged }}, failed {{ ingest_result.summary.failed }}.
{% endif %} {% if prefs.advanced %}Open Index for search, extract questions, and status.
{% endif %}Answer a question from indexed passages, with sources. Follow-up turns stay in a thread. Scope follows the collection chip unless you set item keys below.
{{ job_status(ask_result, 'Ask') }}Scope: {% if prefs.collection %}{{ prefs.collection }}{% else %}entire mirror{% endif %} · New thread
{% if threads %}{{ turn.role }}
{{ turn.content }}
{% if last_result.cited %}Sources{% else %}Retrieved, not cited{% endif %}
Turn on [llm] in config.toml for Ask. Settings does not toggle it.
{% endif %} {% if flags.llm_on and flags.rag_on and prefs.advanced %}Run many questions at once against the same scope. One question per line, or upload a text file. Results land under state/ask-batch/ and optionally as a Zotero collection note.
{{ job_status(batch_result, 'Batch Ask') }} {% if batch_result.stamp %}Last batch: {{ batch_result.answered }}/{{ batch_result.questions }} answers
{% endif %} {% if packs %}