在 DeepSeek Harness 终端运行:
dsh plugin --profile web add wsqstar/seminar-copilotLocal-first seminar recorder and question tracker. It records microphone PCM,
transcribes rolling audio with MLX Whisper, links timestamped evidence to a
prepared question list, and optionally asks DeepSeek Harness for structured
answer-coverage judgments.
Read HANDOFF.md before changing the project.
ffmpeguvdsh --profile headless configured for DeepSeek analysiscd backend
uv sync --extra dev
cd ../frontend
npm install
For the normal local workflow, create .env.local from .env.example, then:
./scripts/dev.sh
Open http://127.0.0.1:5173. The launcher still runs the frontend and backend
as separate processes and stops both with Ctrl+C.
Manual startup remains available for debugging.
Terminal 1:
cd backend
uv run uvicorn app.main:app --host 127.0.0.1 --port 8765
Terminal 2:
cd frontend
npm run dev -- --host 127.0.0.1 --port 5173
Open http://127.0.0.1:5173. The Vite server proxies /api and /ws to the
loopback backend.
The setup screen stays read-only until Whisper finishes its one-time warmup.
For a room lecture, select the laptop microphone. For an online meeting, select
a legal system-audio loopback input such as a preconfigured BlackHole device;
the browser cannot capture speaker output through the microphone API alone.
Open 新建 Seminar from the setup screen and paste the full announcement
email or webpage text. The intake pipeline then:
backend/config/research_profile.md (a template is created on first run;The review screen lets you correct parsed fields and edit, delete, or add
questions. 保存并录入 writes a preset JSON under backend/config/seminars/,
persists an auditable dossier (raw text, parse, relevance, sources) underdata/dossiers/<preset-id>/, and hot-reloads presets so the new seminar is
immediately selectable for recording. Nothing is written before you confirm.
Without dsh, the flow degrades to local parsing plus keyword relevance and
manually entered questions.
Open 历史项目 from the setup screen to revisit each complete seminar. A
project groups every recording phase for the same seminar preset and presents:
继续录音 creates a new phase in the selected project and restores the earlier
transcript and question state into the live workbench. It never overwrites an
earlier audio file. The microphone must be detected and explicitly selected
again before continuation, which prevents silently falling back to the wrong
input device.
SEMINAR_ASR_BACKEND=mlx,SEMINAR_ASR_BACKEND=bailian, short audio windowsdata/sessions/ by default anddata/projects/<project-id>/ andSEMINAR_DATA_DIR=/absolute/path/to/session-data
SEMINAR_WHISPER_MODEL=mlx-community/whisper-large-v3-turbo
SEMINAR_PREWARM_WHISPER=1
# ASR backend: mlx (local MLX Whisper, default) or bailian (Aliyun Bailian API)
SEMINAR_ASR_BACKEND=bailian
# Required when SEMINAR_ASR_BACKEND=bailian (uv sync --extra bailian)
DASHSCOPE_API_KEY=sk-your-dashscope-key
SEMINAR_BAILIAN_MODEL=paraformer-v2
SEMINAR_ASR_LANGUAGE=auto
SEMINAR_DSH_BIN=/opt/homebrew/bin/dsh
SEMINAR_OBSIDIAN_EXPORT_DIR=/absolute/path/to/obsidian/folder
SEMINAR_ENABLE_DEMO=1
SEMINAR_CREDENTIAL_ENV=/absolute/path/to/private-credentials.env
``.env.localis ignored by Git so local paths and service configuration remain on the machine. Since v0.3.0 of the DSH plugin,scripts/dev.sh` loads it as
defaults only: variables already present in the process environment win,
so the DSH plugin can inject settings per process without being overwritten.
Recommended: manage ASR settings from the DSH plugin UI instead of editing
env files. Install seminar-copilot-dsh-plugin (see dsh-plugin/README.md),
open the 会议录音 tab → 识别设置, and pick the backend, DashScope API key,
model and language there. The plugin persists them under~/.dsh/seminar-copilot/config.json (0600) and injects them as
process-level environment variables only when it launches the stack — nothing
is exported globally or written to shell profiles.
During recording, use 临时问题 to save a rough question or ask the assistant
to identify a missing question. The request is persisted before enrichment,
then processed asynchronously:
The live card separates timestamped lecture evidence from external literature
candidates. No result is preferable to showing a weak bibliographic match.
Question lifecycle events and sourced results are written totemporary_questions.jsonl in the session directory. Markdown export includes
the bilingual wording, creation timestamp, search status, sources, and later
answer evidence. Google Scholar is not scraped.
cd backend && uv run pytest
cd frontend && npm run build
The optional e2e/smoke.cjs test expects both services to be running with demo
mode enabled and a locally installed Playwright package.
登录后即可为该插件评分和评价。
还没有人评价这个插件,来抢个沙发吧!