Spaces:
Runtime error
Runtime error
Commit History
-
docs: add technical report for codex handoff (2026-06-13)
J.B-Lin348adcc
-
fix: remove --voxcpm2-base-lm/acoustic args (not valid for llama-server CLI)
J.B-Linllama-server does not have voxcpm2 CLI args. TTS model paths are passed via omni_init JSON body (model_dir/tts_bin_dir).6230c98 -
test_omni: add stderr capture on startup failure
J.B-Line770d07 -
fix: rewrite test_omni to use llama-server built-in omni endpoints
J.B-LinRemoved llama-omni-server dependency from test. test_omni now launches only llama-server (with --voxcpm2-base-lm etc.) and tests /v1/stream/omni_init directly on the built-in endpoint.d67ae6b -
refactor: deprecate llama-omni-server, use llama-server built-in omni endpoints
J.B-LinKey findings: - llama-server (server.cpp) natively provides /v1/stream/* omni endpoints - It reuses already-loaded LLM model+ctx, no need for separate omni server - llama-omni-server was an experimental standalone binary Changes: - Image recipe: build llama-server only (remove llama-omni-server target) - serve() lifespan: single llama-server process only (remove omni subprocess) - Omni endpoint proxy: point to llama-server port 8081 (remove OMNI_SERVER_PORT) - Clean up tmp_*.py test files Status: Image im-kINUqibAmbYIS6brxSIOIY deployed (4737s build)6451051 -
fix: set n_parallel=1, n_ctx=4096 before omni_init to prevent n_seq_max > 256
J.B-Line0c2f3a -
test_omni: add stderr capture for omni-server when init fails
J.B-Lin4429886 -
fix: params.model is common_params_model struct, use .path
J.B-Lina94fb90 -
tmp: health check / omni test scripts for debugging omni_init 500
J.B-Linc86f455 -
fix: set params.model/vpm/apm/tts in server-omni.cpp omni_init handler so model files are found
J.B-Lina850bb4
-
modal/omni: add llama-omni-server for full-duplex voice API
J.B-LinArchitecture: FastAPI (ASGI) → llama-server:8081 (chat/TTS/STT) → llama-omni-server:8082 (omni full-duplex endpoints) New endpoints: POST /v1/omni/init - Initialize omni context (delegates to /v1/stream/omni_init) POST /v1/omni/prefill - Send audio/image (base64 decoded to temp WAV file) POST /v1/omni/generate - SSE streaming generation (proxies /v1/stream/decode) POST /v1/omni/break - Reinit omni context (discard current generation) POST /v1/omni/stop - Stop omni session GET /v1/omni/tts_wav/{dir}/{file} - Serve TTS WAV files Build: added --target llama-omni-server to cmake build Lifespan: now manages two subprocesses (llama-server + llama-omni-server) No existing endpoints modifiedfedf97a -
Fix Gradio duplex audio playback clearing
J.B-Lin0598330 -
Stabilize Gradio duplex voice flow
J.B-Linffe2c9f -
modal/omni: PRODUCTION DEPLOY - text inference fully verified, llama-server running on T4
J.B-Lin- Chinese: 1.0s, '你好,我是MiniCPM系列模型...' (finish_reason=stop) - English: 1.8s, 'The capital of France is Paris.' (finish_reason=stop) - Cold start: 11s model load on T4 - --jinja flag confirmed working for correct chat template - Production URL: https://andrew-jiabin--prego-pal-minicpm-omni-serve.modal.run Next: add omni voice endpoints (prefill/generate/break) for full-duplex audiod7f81b5 -
modal/omni: text inference verified (Chinese OK, English needs fix)
J.B-Lin- Chinese reply correct: '你好,我是MiniCPM系列模型...' - English empty due to finish_reason=length (50 special tokens before valid text) - Added --jinja flag to fix chat template formatting - Improved test logging: show content, finish_reason, usage per test - Serve function already had --jinja (confirmed correct) - Updated docs with real test results2400b46 -
modal/omni: llama-server inference verified on T4
J.B-Lin- test_inference: non-blocking stderr reader (thread+queue) - test_inference: --mmproj only vision (no comma-sep, no audio) - test_inference: timeout 600s->900s - serve: --mmproj only vision (was comma-sep vision+audio) - docs: add test results (11s cold start, 1s inference on T4) - docs: fix mmproj documentation (only ONE file, audio via API)0e9e62e -
docs: add production script protect warnings to deploy guide
J.B-Lin10796de -
docs: comprehensive Modal deploy guide (both solutions + pitfalls)
J.B-Lin03e9a7c -
chore: add build_llama_server.sh (local cross-compile script, unused)
J.B-Lin12a8a38 -
deploy_omni: llFile llama.cpp-omni compile succeeds on Modal T4
J.B-Lin- CUDA Toolkit 12.4 + cuda-compiler + cuda-driver-dev from NVIDIA apt repo - GGML_CUDA_NO_VMM=ON to avoid libcuda.so.1 linking in build phase - CUDA arch 75 (T4) + 89 (L4) - LLAMA_CUDA_FORCE_MMQ=ON for faster compilation - Source from tc-mb/llama.cpp-omni fork, stored in modal_deploy/llamacpp_omni/ - Build time ~77 min on Modal infra Resolves: modal deploy build failures due to GitHub access and CUDA linking1a07461 -
清理临时文件
J.B-Lin2e7d8b3 -
[cleanup] 添加临时文件 gitignore + 删除 _fix_*.py 临时修复脚本
J.B-Lin- .gitignore 增加 _fix_*.py / _check_*.py / _setup_*.py 等通配规则 - 物理删除 15 个 _fix_*.py 和 5 个其他临时 _*.py 脚本 - api/temp/ 和 omni_output/ 已在 gitignore 中,不需要单独处理e7b9546 -
[PregoPal] 2026-06-11 全双工语音对话开发阶段完成
J.B-Lin## 核心改动 - API_BASE 修复: voice_helper 指向 PregoAPI(8090) 而非 llama-server(8081) - server_name 改为 0.0.0.0:7889 (Tailscale 远程访问支持) - 前端全双工 UI: CSS隐藏上传框 / JS自动触发录音 / 按钮状态切换 - docs/技术报告_2026-06-11.md: 完整技术文档 (含架构图/API/已知问题/下一步) ## 验证状态 - 后端链路验证通过: chat_voice(测试WAV) → AI中文回复 + TTS音频输出 - CDP前端交互验证: 按钮切换 / 自动录音 / 状态显示 均正常 - 三服务运行正常: PregoPal(7889) + PregoAPI(8090) + llama-server(8081)50a87dc
-
docs: 更新开发日志和本地部署经验,记录全双工实现细节
J.B-Lina911bdf -
Merge branch 'main' of https://huggingface.co/spaces/build-small-hackathon/PregoPal
J.B-Lin96ae0a2 -
Phase 6: 端到端测试通过 + go_server bugfix
J.B-Lin修复: - llm_text读取: 从单文件改为合并所有 chunk_X/llm_text.txt - TTS输出: 从只发第一个wav改为合并所有wav片段 - 新增 _read_llm_text() 和 _merge_wavs_to_base64() 辅助函数 已通过测试: 正弦波->omni_init->prefill->decode->中文文本->TTS WAV->base64 完整环路f54083c -
Merge branch 'main' of https://huggingface.co/spaces/build-small-hackathon/PregoPal
J.B-Lin3f78a89 -
用户手动备份
J.B-Lin0d9e374 -
Merge branch 'main' of https://huggingface.co/spaces/build-small-hackathon/PregoPal
J.B-Lin36bb211 -
用户手动备份
J.B-Lina3f130a -
用户手动备份
J.B-Lin2ce3e61 -
全双工语音对话实现
J.B-Lin核心改动: - api/ (新): FastAPI 后端 go_server.py + voice_helper.py API封装 - /v1/omni/voice_chat 全双工语音对话端点 - /v1/chat/completions 文本对话 - core/ (改): ModelLoader支持chat+voice_chat; ConversationManager结构化标记解析 - ui/ (改): app_builder.py - Gradio录音组件+Chatbot - _setup_rtm.py, rtm_task.json: RTM任务文件 - start_services.py: 一键启动 已验证: omni_init->prefill->decode->TTS wav 完整环路, 4060Ti 16GB稳定运行(~10.9GB)edca135 -
技术路径
J.B-Lin8eb4628 -
用户手动修改
J.B-Lin6efc08d -
用户手动整理文件,并备份deploy_backup.py文件
J.B-Lin68d23d2 -
merge: 解决合并冲突
J.B-Lin6cce707 -
refactor: 将三天总结从框架层面合并到营养报告,统一UI设计
J.B-Lina4f0e44 -
docs: 全面更新README,同步最新UI架构与部署状态
J.B-Lin50bb88b -
docs: 部署成功报告 + 清理神秘文件 c
J.B-Lin56b0dc2 -
core: 更新 ModelLoader 对接远端 Modal API + README 同步
J.B-Lin8193cd7 -
chore: 清理临时文档(tmp_*)文件
J.B-Lin269d57b -
modal: 降级 GPU A100 -> T4 节省成本
J.B-Lin2d207a7 -
Merge branch 'main' of https://huggingface.co/spaces/build-small-hackathon/PregoPal
J.B-Lincb94025 -
docs: 补充两种方案对比(wheel vs 源码编译),明确预编译wheel仍属llama.cpp
J.B-Lin2e5f272 -
docs: 技术日志-解释为什么预编译wheel部署这么快
J.B-Linb7e6626 -
deploy: 成功部署 MiniCPM-o-4_5 到 Modal (预编译llama-cpp-python A100)
J.B-Linc0f7bc8
-
docs: pre-refactor backup - before tech log integration
J.B-Lind14aeea -
fix: Key Nutrients营养素名双语 + Persistent Deficits紧凑标签式 + Food Suggestions扩大展示(1:2) + Summary结构化UI卡片
J.B-Line0a383e -
fix(deploy): 使用预编译CUDA wheel替代源码编译
J.B-Linaa40303 -
fix: 三天总结营养素名中英文双语显示 + CSS消除灰色填充和双重方框
J.B-Lin765f642