Lexiverse
Lexiverse - 영어 학습자를 위한 AI 기반 문맥 독해 엔진
HackGT 2025 Google Gemini 상 1위, 맞춤형 AI 기반 훈련 시뮬레이션으로 기술 인재를 차세대 임원으로 성장시킵니다
🌟 🌟 First-Place Winner of Google Gemini Prize at HackGT 2025! 🌟 🌟Transforming today’s technical talent into tomorrow’s executives using personalized AI-native training simulations and advanced coa
교육TypeScript · JavaScriptGitHub @m3ru온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기🌟 🌟 First-Place Winner of Google Gemini Prize at HackGT 2025! 🌟 🌟Transforming today’s technical talent into tomorrow’s executives using personalized AI-native training simulations and advanced coaching analytics.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗🏆 First-Place Winner — Best use of Google Gemini (MLH) at HackGT 2025
Ming is an AI-native, multi-agent L&D platform that transform current and aspiring engineer to managers via practicing real-world workplace scenarios (performance reviews, conflict resolution, even layoffs) through LLM-driven role-play with detailed analysis and actionable feedback.
Prereqs: Node 24 LTS and npm
npm ci
npm ci --prefix src/backend
cp .env.example .env
# Add GEMINI_API_KEY and OPENAI_API_KEY for the default providers.
npm run dev
Open http://127.0.0.1:3000 (or http://localhost:3000). There is no login,
access password, or session-secret setup. npm run dev loads the root .env,
creates a temporary internal gateway token, and starts both services with the
same token. It does not change .env or print the token. Stop with Ctrl+C;
restart after changing .env.
Provider selection is independent:
| Setting | Default | Alternative |
|---|---|---|
MING_TEXT_PROVIDER | gemini — GEMINI_API_KEY | openai — OPENAI_API_KEY |
MING_VOICE_PROVIDER | openai — OPENAI_API_KEY | deepgram — DEEPGRAM_API_KEY |
The defaults need both Gemini and OpenAI keys. To use Gemini + Deepgram, set
MING_VOICE_PROVIDER=deepgram and configure Gemini and Deepgram keys; an OpenAI
key is not needed. Restart npm run dev after changing providers. Missing keys
produce recoverable errors; the app never silently switches vendors.
GEMINI_MODEL and OPENAI_TEXT_MODEL override the text model. Gemini also accepts
GOOGLE_GENERATIVE_AI_API_KEY, then GOOGLE_API_KEY, when preceding keys are
unset or blank. The Veo helpers use the same server-side key precedence. The optional
MING_BACKEND_URL defaults to http://127.0.0.1:4111.
Leave MING_APP_ORIGIN unset for normal localhost use. A fixed
MING_BACKEND_TOKEN is only needed when running the services separately or
using the optional container setup.
The browser calls /api/backend; provider keys and the internal gateway token
stay on the server. NEXT_PUBLIC_URL is no longer used. This demo uses one
shared local identity and local conversation data. See run details and remaining
dependency advisories.
All backend text agents use the shared model in src/backend/src/mastra/models.ts.
Debriefs generate the summary and transcript annotations concurrently. The report
opens when its summary and scores are ready; transcript notes finish afterward
and can be retried independently. Annotations reference the original conversation
instead of asking the model to rewrite it. Successful stages and in-flight work
are reused for the same owner, session, transcript, context, provider, model, and
prompt version. Each stage cache holds at most 64 entries with a 15-minute TTL;
reuse is process-local and clears on backend restart. Bump REPORT_PROMPT_VERSION
when changing either report prompt or its generation settings. Backend
debrief_generation logs contain stage duration, success, and token counts, without
conversation text.
By default, voice conversations use OpenAI GPT-Live (gpt-live-1) over WebRTC. The root
OPENAI_API_KEY must belong to a project with GPT-Live access. Run on localhost
or HTTPS and allow microphone access when the chat opens. The voice connection
starts automatically with the microphone muted. Hold Space (outside the text
editor) or hold the microphone button to stream speech immediately; release only
mutes the microphone. Sending does not wait for release. The connection stays
open between presses. Use the phone button to end it.
End Scenario finishes voice transcription before generating the report.
The browser receives no OpenAI API key. Mastra supplies scenario facts and saves
the spoken transcript; typed chat, analysis, reports and delegated reasoning use
the selected text model.
With MING_VOICE_PROVIDER=deepgram, hold the microphone or Space to record one
utterance, then release to submit it. Deepgram transcribes the recording; the
selected text model generates Bart's reply; Deepgram speaks it. Unlike the Live
path, this mode waits for release before processing. It caps a recording at 30
seconds and preserves transcript text when speech playback fails. End Scenario
waits for the pending turn and saved transcript before generating feedback.
DEEPGRAM_STT_MODEL defaults to nova-3; DEEPGRAM_TTS_MODEL defaults to
aura-2-orion-en. Audio and provider keys go through the server.
Set MING_STT_PROVIDER=openai to transcribe your turns with OpenAI instead
(OPENAI_API_KEY, OPENAI_STT_MODEL, default gpt-transcribe). If OpenAI fails
or times out, Deepgram transcribes that same turn; Firefox's ogg recordings always
go to Deepgram, which stays required.
Set MING_TTS_PROVIDER=gemini to speak Bart's replies with Gemini text-to-speech
instead (any other value keeps Deepgram, the default). It uses the same Gemini
key as text, GEMINI_TTS_MODEL (default gemini-3.8-flash-lite-tts) and
GEMINI_TTS_VOICE (default Puck), and streams raw 24 kHz PCM to the browser.
If Gemini fails before any audio (quota, network, no key, empty output), that
same reply is spoken by Deepgram instead; Deepgram STT and its key stay required.
MING_TTS_PROVIDER=openai does the same with OpenAI text-to-speech, using
OPENAI_API_KEY, OPENAI_TTS_MODEL (default gpt-4o-mini-tts) and
OPENAI_TTS_VOICE (default cedar, the voice Bart uses in OpenAI Live mode).
OpenAI shuts down this endpoint on 2027-01-06; after that, Deepgram answers.
The Google Veo video-generation helpers remain in src/lib/videoUtil.ts and
src/backend/src/lib/videoUtil.ts. Their existing scenario-to-video behavior is
preserved; they now read the Gemini key server-side rather than a NEXT_PUBLIC_
key. They are not invoked automatically during the conversation demo.
Run npm run typecheck, npm run typecheck --prefix src/backend, npm run lint,
npm run test:voice, npm run test:providers, npm run test:deepgram,
npm run test:demo, and the security tests in the CI workflow.
Builds enforce types and lint. Runtime smoke checks are documented in
the local run guide.
We want to help people learn and build skills that endure. Technical orgs need more managers who combine deep engineering instincts with excellent people leadership. Traditional trainings are generic and forgettable; Ming aims to be hands-on, adaptive, and effective.