feat: add openviking-server init interactive setup wizard for local Ollama model deployment#1353
Open
t0saki wants to merge 7 commits intovolcengine:mainfrom
Open
feat: add openviking-server init interactive setup wizard for local Ollama model deployment#1353t0saki wants to merge 7 commits intovolcengine:mainfrom
openviking-server init interactive setup wizard for local Ollama model deployment#1353t0saki wants to merge 7 commits intovolcengine:mainfrom
Conversation
Add an interactive CLI wizard that guides users through configuring OpenViking with local Ollama models, especially targeting macOS/Apple Silicon beginners. The wizard auto-detects and installs Ollama, recommends models based on system RAM, pulls selected models, and generates a valid ov.conf. Supported models: - Embedding: qwen3-embedding (0.6b/4b/8b), embeddinggemma:300m - VLM: qwen3.5 (2b-122b), gemma4 (e2b/e4b/26b/31b) Also fixes `ov doctor` to recognize Ollama providers as valid without requiring an API key. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨No code suggestions found for the PR. |
There was a problem hiding this comment.
Pull request overview
Adds an ov init interactive wizard to help users generate an ov.conf for local Ollama or cloud providers, and updates related config/diagnostics so Ollama-based setups validate cleanly.
Changes:
- Introduces
openviking_cli/setup_wizard.pyimplementing the interactiveov initflow (Ollama install/start, model selection/pull, config generation, config write/backup). - Wires
ov initinto the Python wrapper CLI and updatesov doctorchecks to treat Ollama configurations as valid without “real” API keys. - Extends Ollama embedding model dimension mapping and adds unit tests covering wizard helpers.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| openviking_cli/setup_wizard.py | New interactive setup wizard and config writer for ov init. |
| openviking_cli/rust_cli.py | Routes ov init to the Python wizard (like ov doctor). |
| openviking_cli/doctor.py | Allows Ollama embedding + LiteLLM(Ollama) VLM configs without API key failures. |
| openviking_cli/utils/config/embedding_config.py | Adds dimension presets for qwen3-embedding and embeddinggemma Ollama models. |
| tests/cli/test_setup_wizard.py | New unit tests for wizard helper functions and config I/O. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…hecks
Extract Ollama utilities into shared module (openviking_cli/utils/ollama.py)
so both `ov init` and `openviking-server` can reuse them. Server now
auto-detects Ollama from config and ensures it's running at startup
("ensure running, never stop" pattern). Adds Ollama connectivity to
`/ready` health check and `ov doctor` diagnostics.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
These are server-side configuration commands (generate/validate ov.conf), not client operations. Having them under `ov` (the client CLI) was confusing. Now: openviking-server init # setup wizard openviking-server doctor # diagnostics ov <subcommand> # client operations only
ov init interactive setup wizard for local Ollama model deploymentopenviking-server init interactive setup wizard for local Ollama model deployment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add an
openviking-server initinteractive setup wizard that guides users (especially macOS/Apple Silicon beginners) through configuring local embedding and VLM models via Ollama. Additionally implements proper Ollama lifecycle management following an "ensure running, never stop" pattern — Ollama is a shared service, so OpenViking starts it if needed but never tears it down on exit.Also moves
initanddoctorfromov(client CLI) toopenviking-serversubcommands, since they are server-side configuration commands that operate onov.conf.Related Issue
#1334
#601
Type of Change
Changes Made
openviking_cli/setup_wizard.py: Interactive wizard with three paths — local Ollama, cloud API, custom config. Includes auto-install, auto-start, model pulling, RAM-based recommendations.openviking_cli/utils/ollama.py(new): Shared Ollama utilities extracted from setup_wizard. Addsdetect_ollama_in_config(),ensure_ollama_for_server(),parse_ollama_url(), improvedstart_ollama()with stderr capture.openviking_cli/server_bootstrap.py: Interceptinitanddoctorsubcommands before server startup (they don't need a running server).openviking_cli/rust_cli.py: Removeinitintercept (moved toopenviking-server).openviking/server/bootstrap.py: Server startup detects Ollama from config and ensures it's running before app creation. Never blocks startup.openviking/server/routers/system.py:/readyhealth check includes Ollama connectivity, returns 503 when configured but unreachable.openviking_cli/doctor.py: Adds Ollama connectivity check. Fixes Ollama provider recognition without API key.openviking_cli/utils/config/embedding_config.py: Add qwen3-embedding and embeddinggemma dimensions.Testing
Checklist
Screenshots (if applicable)
Additional Notes
Command structure:
initanddoctorare server-side configuration commands (they operate onov.conf, notovcli.conf), so they live underopenviking-serverrather thanov(the client CLI).Ollama Lifecycle Design:
openviking-server initopenviking-serverstartupopenviking-serverruntime/readyreports Ollama statusopenviking-serverexitopenviking-server doctor38 tests total (18 setup wizard + 20 shared Ollama module), all passing.