惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
D
Docker
J
Java Code Geeks
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
腾讯CDC
罗磊的独立博客
U
Unit 42
爱范儿
爱范儿
Vercel News
Vercel News
MyScale Blog
MyScale Blog

Hacker News - Newest: "AI"

AI can't read an investor deck AI as an attorney? Student uses ChatGPT, Gemini to sue UW over alleged racial discrimination Hacking MCP Servers in AI Systems – The Rug Pull: Tool Changes After Approval GitHub - MeepCastana/KubeezCut: Free Web based video editor Can AI judge journalism? A Thiel-backed startup says yes, even if it risks chilling whistleblowers Coming soon: 10 Things That Matter in AI Right Now DARPA built an AI to fact-check enemy weapons claims What explains heterogeneity in AI adoption? When AI Meets Muscle: Context-Aware Electrical Stimulation Promises a New Way to Guide Human Movements - Department of Computer Science AI Changed How We Build. It Did Not Change What Matters. Linux rules on using AI-generated code - Copilot is OK, but humans must take 'full responsibility for the… Meta spins up AI version of Mark Zuckerberg to engage with employees Code Mode: Let Your AI Write Programs, Not Just Call Tools | TanStack Blog GitHub - Delavalom/graft: Go framework for building AI agents. Type-safe tools, multi-provider (OpenAI, Anthropic, Gemini, Bedrock), zero vendor SDKs. India's TCS tops estimates, says new AI models did not dent services demand Gen Z's fading AI hype Strong feeling: we are in a folded AI reality GitHub - machinarii/total-recall-catalog: A reference catalog of latest knowledge retrieval, memory & RAG systems GitHub - mensfeld/code-on-incus: Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.. Quantization, LoRA, and the 8% Problem: Benchmarking Local LLMs for Production AI Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda Powell, Bessent discussed Anthropic's Mythos AI cyber threat with major U.S. banks GitHub - immartian/bellamem: Persistent belief-graph memory for AI agents. Retrieves decisive context by importance — not recency, not RAG, not /compact. recursive-mode: The Repo-Native Operating System for AI Engineering After the attack on Sam Altman's home, will AI CEO's go on the offensive? The biggest advance in AI since the LLM Opus 4.6 vs GPT 5.4 One Prompt Unity World Generation Test “AI polls” are fake polls Client Challenge Can AI be a 'child of God'? Inside Anthropic's meeting with Christian leaders
GitHub - GrillKit/grillkit: Self-hosted AI technical inte...
vitchenkokir · 2026-05-25 · via Hacker News - Newest: "AI"

Python 3.12+ License: Apache 2.0 Version

Open-source AI technical interview trainer. Practice from curated YAML question banks, get structured scoring and follow-ups, and optionally use voice — with your own LLM (cloud or local).

Why GrillKit · Quick start · Changelog · Architecture

Why GrillKit (not just ChatGPT)

A general chat assistant is flexible, but it does not run an interview for you.

What you need ChatGPT-style chat GrillKit
Curated technical questions You prompt each time Built-in tracks (Python, Kafka, System Design, …), levels, and topics
Interview flow Free-form thread Fixed session: N questions, up to 2 AI follow-ups per question, 1–5 scoring, session summary
Practice history Scattered chats Dashboard with past sessions stored locally
Time pressure None Optional per-round timer (expired round → 0, move on)
Voice practice Depends on product Offline Whisper dictation; optional Piper question audio; audio answers when your model supports it
Where data lives Vendor cloud Self-hosted: SQLite + data/ on your machine; use Ollama, vLLM, or any OpenAI-compatible API

Structured practice — You pick tracks, difficulty, and topics; GrillKit builds a question plan and keeps score across the whole session, not a single ad-hoc prompt.

Privacy and control — Run via Docker on your laptop or server. API keys and interview history stay under ./data (gitignored). No account or subscription required beyond your LLM provider (if you use a cloud model).

Screenshots & demo

Demo video — full flow from setup to scored feedback

Demo video

Dashboard — recent sessions and quick start

GrillKit dashboard

Interview setup — question-bank tracks, levels, topics, and session options

Interview setup

Interview session — real-time Q&A with AI scoring and final evaluation

Completed interview with evaluation

Features

  • Interviews — multi-track setup, several topics per session, WebSocket Q&A, AI scoring 1–5, up to 2 follow-ups per question
  • Question banks — Python, Database/SQL, System Design, Kafka, RabbitMQ, Docker, Kubernetes, Observability, Airflow, and more under data/questions/{track}/ (junior / middle / senior where applicable)
  • Timer — optional per-round time limit; expired rounds score 0 and the session moves on
  • Voice — offline Whisper dictation for typed answers; optional Piper TTS to read questions aloud
  • Audio answers — when the configured model supports audio input and Whisper is ready, record and send a WAV answer from the interview page
  • Setup — model catalog on /config, interview locale (AI feedback language), Whisper/Piper downloads from the UI
  • Dashboard — recent interview history on the home page
  • Deployment — Docker Compose on port 8000 with ./data volume for config, DB, and models

Quick start

Prerequisites

  • Docker and Docker Compose
  • API key for a cloud provider, or a local OpenAI-compatible server (Ollama, vLLM, …)

Run with Docker

git clone https://github.com/yourusername/grillkit.git
cd grillkit
docker compose up --build

Open http://localhost:8000.

Optional question voice (Piper TTS, same app container):

  1. Run docker compose up (or uv run uvicorn app.main:app for development).
  2. Open /config, enable Read questions aloud, save.
  3. On the Configuration page, use Download question voice when prompted (~60 MB per locale voice from Hugging Face).
  4. Start an interview — questions can play aloud; WAV cache lives under data/tts-cache/v2/{locale}/.

./data on the host holds SQLite, config.json, llm_models.json, Whisper/Piper models, and TTS cache. Question banks, templates, and static files ship in the image.

If bind-mounted data/ is not writable (Linux UID mismatch):

PUID=$(id -u) PGID=$(id -g) docker compose up --build

First-time flow

  1. Configuration (/config) — add one or more OpenAI-compatible models to the catalog, select an interview model, set interview locale; test connection, then save.
  2. New interview (/setup) — enable one or more question-bank tracks (level per track), select multiple topics, set total question count (at least one per selected topic; interview locale is read-only from config).
  3. Interview (/interview/{id}) — page loads history; text answers and completion go over WebSocket.

Without saved provider config, /setup redirects to /config.

Local development

For contributors: see CONTRIBUTING.md. Quick run:

uv sync --extra dev
uv run uvicorn app.main:app --reload

Same first-time flow at http://127.0.0.1:8000.

Configuration (essentials)

Any OpenAI-compatible HTTP API works:

Provider Example base URL
OpenAI https://api.openai.com/v1
Ollama http://localhost:11434/v1
vLLM / others your endpoint + /v1

On /config:

  • Add model to catalog — base URL, model name, optional API key; enable Accepts audio input only if the model supports multimodal audio (and download Whisper for transcription).
  • Interview model — pick from the catalog, Test Connection, save.
  • Locale — language for AI feedback and speech (stored in data/config.json, gitignored).
  • Whisper — choose size (small, medium, large), download from the UI for dictation and audio answers.
  • Read questions aloud — enable Piper, download a voice (~60 MB).

Do not commit data/config.json, data/llm_models.json, or API keys.

Optional environment variables (full list in ARCHITECTURE.md):

Variable Purpose
DATABASE_URL SQLAlchemy URL (default: SQLite under data/db/)
HF_TOKEN Hugging Face token for faster Whisper/Piper downloads
WHISPER_DEVICE cpu or cuda
WHISPER_COMPUTE_TYPE int8 or float16

Roadmap

Planned

  • Session-wide time limit (total interview duration)
  • More question banks and categories
  • Code editor in the interview UI
  • Custom question banks, PWA / standalone frontend

For developers

Document Contents
ARCHITECTURE.md Layers, HTTP/WebSocket routes, data flows, persistence, question banks
CONTRIBUTING.md Dev setup, tests, ruff/mypy/pytest, contribution workflow
CHANGELOG.md Release history

Security

Report vulnerabilities as described in SECURITY.md. Do not open public issues for security problems.

License

Apache License 2.0 (see also NOTICE)