kiapi 0.5.2__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kiapi-0.5.2 → kiapi-0.6.0}/CHANGELOG.md +12 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/PKG-INFO +21 -83
- {kiapi-0.5.2 → kiapi-0.6.0}/README.md +19 -78
- {kiapi-0.5.2 → kiapi-0.6.0}/pyproject.toml +1 -8
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/__init__.py +0 -3
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/app.py +1 -23
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/health/_views/health_response.py +0 -8
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/health/router.py +4 -8
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/README.md +1 -3
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/README.md +0 -2
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/template/cli.py +0 -4
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/run/cli.py +0 -15
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/_services/service_manager.py +1 -1
- kiapi-0.5.2/README.ja.md +0 -144
- kiapi-0.5.2/src/kiapi/api/_helpers/get_relay_runner.py +0 -7
- kiapi-0.5.2/src/kiapi/capabilities/acestep/README.ja.md +0 -174
- kiapi-0.5.2/src/kiapi/capabilities/audiogen/README.ja.md +0 -49
- kiapi-0.5.2/src/kiapi/capabilities/chat/README.ja.md +0 -822
- kiapi-0.5.2/src/kiapi/capabilities/depthpro/README.ja.md +0 -131
- kiapi-0.5.2/src/kiapi/capabilities/embedding/README.ja.md +0 -137
- kiapi-0.5.2/src/kiapi/capabilities/ernie/README.ja.md +0 -242
- kiapi-0.5.2/src/kiapi/capabilities/flux2/README.ja.md +0 -260
- kiapi-0.5.2/src/kiapi/capabilities/ideogram4/README.ja.md +0 -230
- kiapi-0.5.2/src/kiapi/capabilities/ltx2/README.ja.md +0 -287
- kiapi-0.5.2/src/kiapi/capabilities/qwen/README.ja.md +0 -251
- kiapi-0.5.2/src/kiapi/capabilities/seedvr2/README.ja.md +0 -234
- kiapi-0.5.2/src/kiapi/capabilities/web/README.ja.md +0 -187
- kiapi-0.5.2/src/kiapi/capabilities/zimage/README.ja.md +0 -249
- {kiapi-0.5.2 → kiapi-0.6.0}/.gitignore +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/.mise/tasks/package/current +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/.vscode/settings.json +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/LICENSE +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/Makefile +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/__main__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_constants/require_auth.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/build_job_responses.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/build_openapi.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/build_train_responses.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/get_accept.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/get_ctx.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/get_worker.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/register_capability_endpoints.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/submit_and_maybe_wait.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_views/async_job_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_views/capability_model_spec.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/acestep/_views/extract_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/acestep/_views/track_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/acestep/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/audiogen/_views/audio_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/audiogen/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/chat/_views/chat_completion_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/chat/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/embedding/_views/embedding_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/embedding/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_operations/get_file.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_operations/get_file_id.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_views/file_delete_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_views/file_list_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/depthpro/_views/estimate_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/depthpro/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ernie/_views/image_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ernie/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/flux2/_views/image_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/flux2/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ideogram4/_views/image_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ideogram4/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/qwen/_views/image_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/qwen/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/seedvr2/_views/image_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/seedvr2/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/zimage/_views/image_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/zimage/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/_operations/get_job_id.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/_views/job_delete_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/_views/job_list_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/models/_schemas/openai_model_spec.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/models/_views/model_list_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/models/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/video/ltx2/_views/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/video/ltx2/_views/video_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/video/ltx2/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/_views/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/_views/fetch_api_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/_views/fetch_error_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/router.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_exceptions/CapabilityError.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_exceptions/ValidationError.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_helpers/attach_mflux_progress.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_helpers/get_file_path.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_helpers/resolve_file_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_exceptions/ace_step_engine_error.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_models/acestep.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_cover.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_extract.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_repaint.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_ace_step_paths.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_cover_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_engine.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_extract_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_repaint_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_schemas/ace_step_paths.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_services/ace_step_engine.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/ace_step_base.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/cover_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/cover_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/extract_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/extract_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/repaint_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/repaint_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/track_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/worker_subprocess.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_helpers/attach_audiogen_progress.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_helpers/validate_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_models/audiogen.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_models/qwen3_5.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_models/qwen3_omni.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/apply_template.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/completed_hermes_tool_call_text.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/emit_streaming_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/ensure_streaming_detokenizer_compat.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/format_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/handle_chat.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/parse_hermes_tool_calls.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/parse_json_tool_calls.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/parse_messages.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/resolve_chat_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/stream_text_from_tokens.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/strip_tool_calls.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/apply_parallel_tool_call_policy.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/apply_seed.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/load_audio_mono.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/load_mlx_vlm.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/warmup_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_views/chat_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_views/chat_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_helpers/validate_estimate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_models/depthpro.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_operations/handle_estimate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_operations/is_quantize_override.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_operations/resolve_estimate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_views/estimate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_views/estimate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_models/qwen3_text.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_models/qwen3_vl.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/format_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/handle_embed.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/parse_inputs.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/resolve_embed_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_utils/to_vector.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_views/embed_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_views/embed_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_helpers/validate_edit.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_helpers/validate_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_models/ernie.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/handle_edit.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/handle_train.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/is_quantize_override.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_edit_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_lora_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_train_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/validate_common.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_schemas/lora_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/edit_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/edit_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/train_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/train_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_helpers/validate_edit.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_helpers/validate_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_models/flux2.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/handle_edit.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/handle_train.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/is_quantize_override.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_edit_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_lora_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_train_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/role_spec.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/split_repo.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/validate_common.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_schemas/lora_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/edit_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/edit_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/train_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/train_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_helpers/validate_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_models/ideogram4.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_operations/is_quantize_override.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_helpers/validate_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_models/ltx2.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_operations/detect_mode.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_helpers/validate_edit.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_helpers/validate_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_models/qwen.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/handle_edit.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/is_quantize_override.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/resolve_edit_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/resolve_lora_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/validate_common.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_schemas/lora_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/edit_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/edit_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_helpers/validate_upscale.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_models/seedvr2.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_operations/handle_upscale.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_operations/is_quantize_override.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_operations/resolve_upscale_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_views/upscale_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_views/upscale_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_exceptions/FetchError.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_exceptions/SearchBackendError.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_models/crawl4ai.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_models/searxng.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/handle_fetch.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/handle_search.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/resolve_fetch_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/resolve_search_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/resolve_searxng_config_dir.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_services/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_services/web_backend_process.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/fetch_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/fetch_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/fetch_result.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/search_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/search_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/search_response.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/resources/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/resources/searxng/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/resources/searxng/settings.yml +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_constants/description.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_helpers/register.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_helpers/validate_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_models/zimage.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/handle_generate.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/handle_train.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/is_quantize_override.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/resolve_generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/resolve_lora_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/resolve_train_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_schemas/lora_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/generate_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/generate_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/train_params.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/train_request.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/dedupe_resources.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/register_all_capabilities.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/run_resources.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/select_specs.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/activate/_operations/preflight_hf_access.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/activate/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_audio_acestep_turbo.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_audio_acestep_xl_base.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_audio_audiogen_medium.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_6_27b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_omni.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_embedding_8b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_vl_embedding_2b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_depthpro_base.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_ernie_base.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_ernie_turbo.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_9b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_base_4b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_base_9b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_ideogram4_fp8.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_qwen_edit_2509.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_qwen_image.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_seedvr2_3b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_seedvr2_7b.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_zimage_base.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_zimage_turbo.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_video_ltx2_distilled.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_web_web_fetch.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_web_web_search.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_operations/build_check_result.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_operations/check_context.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_operations/create_sample_image.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_schemas/check_result.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/edit/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/init/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/show/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/deactivate/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/run/asgi.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/install/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/show/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/show/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/start/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/status/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/stop/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/uninstall/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/status/cli.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/app/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/app/_schemas/app_context.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/capability/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/capability/_schemas/capability_spec.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/capability/_services/capability_spec_registry.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/_exceptions/user_config_error.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/_helpers/get_user_settings_path.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/_helpers/load_user_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_helpers/create_file_store.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_helpers/resolve_file_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_data_url_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_id_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_record.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_url_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_services/file_store.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_types/file_id.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_types/file_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_views/resolved_file_ref.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_enums/job_status.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_helpers/creep_progress.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_models/job.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_services/job_store.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_services/progress_reporter.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_types/job_id.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_types/job_result.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_types/job_type.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_helpers/get_log_level.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_helpers/setup_logger.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_types/log_level.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_exceptions/memory_budget_error.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_helpers/create_memory_manager.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_operations/log_memory_limit.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_operations/resolve_effective_memory_limit_gb.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_operations/resolve_framework_strategy.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/framework_strategy.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/memory_stats.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/resident_model.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/resident_model_stats.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_services/memory_manager.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_types/framework_name.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_types/resident_key.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_exceptions/unknown_model_error.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_schemas/model_spec.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_services/model_registry.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_alias.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_domain.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_family.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_key.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_name.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_repo.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/_exceptions/unsafe_url_error.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/_helpers/verify_public_url.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_exceptions/setup_required_error.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/docker_image_resource.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/hf_snapshot_resource.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/local_path_resource.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/python_package_resource.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/python_venv_resource.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/setup_status.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/url_file_resource.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_services/setup_manager.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_types/setup_resource.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_types/setup_target.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/workdir/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/workdir/_helpers/create_work_dir.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/workdir/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/__init__.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_helpers/create_worker.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_services/worker.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_settings.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_types/job_thunk.py +0 -0
- {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/py.typed +0 -0
|
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.6.0] - 2026-09-01
|
|
10
|
+
|
|
11
|
+
### Removed
|
|
12
|
+
|
|
13
|
+
- **BREAKING**: Removed the relay transport. `kiapi run --relay`, the `relay-gcp` extra, the `relay` field of `/health`, and the `KIAPI_RELAY_*` settings are gone, and kiapi no longer depends on `kiapi-relay`. To reach kiapi from other machines, expose it over your own private network layer instead — for example, run `tailscale serve --bg --https=8500 8500` on the kiapi machine and point clients at `https://<machine>.<tailnet>.ts.net:8500`. Remove any `kiapi_relay*` and relay-related `kiarina.lib.google` sections from your `settings.yaml`.
|
|
14
|
+
|
|
15
|
+
## [0.5.3] - 2026-07-30
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- `kiapi service install` now preserves `PATH` in the launchd property list so background capabilities can find external tools such as Homebrew FFmpeg.
|
|
20
|
+
|
|
9
21
|
## [0.5.2] - 2026-07-29
|
|
10
22
|
|
|
11
23
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: kiapi
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: Unified local inference API server for LLM agents on Apple Silicon (MLX): chat, embedding, image, music, sound-effect, and video — one process, one global memory budget, one single-flight queue, unified jobs and files.
|
|
5
5
|
Project-URL: Homepage, https://github.com/kiarina/kiapi
|
|
6
6
|
Project-URL: Repository, https://github.com/kiarina/kiapi
|
|
@@ -25,7 +25,6 @@ Requires-Python: <3.13,>=3.12
|
|
|
25
25
|
Requires-Dist: click
|
|
26
26
|
Requires-Dist: fastapi<0.137
|
|
27
27
|
Requires-Dist: httpx
|
|
28
|
-
Requires-Dist: kiapi-relay
|
|
29
28
|
Requires-Dist: kiarina-utils-app>=2.3.0
|
|
30
29
|
Requires-Dist: kiarina-utils-common>=2.2.0
|
|
31
30
|
Requires-Dist: mflux>=0.18.0
|
|
@@ -45,8 +44,6 @@ Requires-Dist: torch
|
|
|
45
44
|
Requires-Dist: torchaudio
|
|
46
45
|
Requires-Dist: torchvision
|
|
47
46
|
Requires-Dist: uvicorn[standard]
|
|
48
|
-
Provides-Extra: relay-gcp
|
|
49
|
-
Requires-Dist: kiapi-relay[gcp]; extra == 'relay-gcp'
|
|
50
47
|
Description-Content-Type: text/markdown
|
|
51
48
|
|
|
52
49
|
# kiapi
|
|
@@ -56,8 +53,6 @@ Description-Content-Type: text/markdown
|
|
|
56
53
|

|
|
57
54
|
[](https://kiarina.github.io/kiapi/)
|
|
58
55
|
|
|
59
|
-
**English** | [日本語](README.ja.md)
|
|
60
|
-
|
|
61
56
|
## Summary
|
|
62
57
|
|
|
63
58
|
kiapi is a local API server that uses Apple Silicon and MLX to provide generative AI capabilities for LLM agents.
|
|
@@ -66,19 +61,19 @@ kiapi is a local API server that uses Apple Silicon and MLX to provide generativ
|
|
|
66
61
|
|
|
67
62
|
| Domain | Family | Endpoint | Description |
|
|
68
63
|
|---|---|---|---|
|
|
69
|
-
| chat | | `POST /v1/chat` | [Chat API details](./kiapi/capabilities/chat/README.md) |
|
|
70
|
-
| embedding | | `POST /v1/embedding` | [Embedding API details](./kiapi/capabilities/embedding/README.md) |
|
|
71
|
-
| image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./kiapi/capabilities/zimage/README.md) |
|
|
72
|
-
| | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./kiapi/capabilities/flux2/README.md) |
|
|
73
|
-
| | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./kiapi/capabilities/qwen/README.md) |
|
|
74
|
-
| | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./kiapi/capabilities/ideogram4/README.md) |
|
|
75
|
-
| | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./kiapi/capabilities/ernie/README.md) |
|
|
76
|
-
| | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./kiapi/capabilities/seedvr2/README.md) |
|
|
77
|
-
| | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./kiapi/capabilities/depthpro/README.md) |
|
|
78
|
-
| audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./kiapi/capabilities/acestep/README.md) |
|
|
79
|
-
| | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./kiapi/capabilities/audiogen/README.md) |
|
|
80
|
-
| video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./kiapi/capabilities/ltx2/README.md) |
|
|
81
|
-
| web | | `POST /v1/web` | [Web API details](./kiapi/capabilities/web/README.md) |
|
|
64
|
+
| chat | | `POST /v1/chat` | [Chat API details](./src/kiapi/capabilities/chat/README.md) |
|
|
65
|
+
| embedding | | `POST /v1/embedding` | [Embedding API details](./src/kiapi/capabilities/embedding/README.md) |
|
|
66
|
+
| image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./src/kiapi/capabilities/zimage/README.md) |
|
|
67
|
+
| | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./src/kiapi/capabilities/flux2/README.md) |
|
|
68
|
+
| | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./src/kiapi/capabilities/qwen/README.md) |
|
|
69
|
+
| | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./src/kiapi/capabilities/ideogram4/README.md) |
|
|
70
|
+
| | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./src/kiapi/capabilities/ernie/README.md) |
|
|
71
|
+
| | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./src/kiapi/capabilities/seedvr2/README.md) |
|
|
72
|
+
| | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./src/kiapi/capabilities/depthpro/README.md) |
|
|
73
|
+
| audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./src/kiapi/capabilities/acestep/README.md) |
|
|
74
|
+
| | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./src/kiapi/capabilities/audiogen/README.md) |
|
|
75
|
+
| video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./src/kiapi/capabilities/ltx2/README.md) |
|
|
76
|
+
| web | | `POST /v1/web` | [Web API details](./src/kiapi/capabilities/web/README.md) |
|
|
82
77
|
| core | files | `POST /v1/files` | Upload input files, LoRA adapters, and other files, then issue a `file_id`. |
|
|
83
78
|
| | | `GET /v1/files` | Return a list of stored files. |
|
|
84
79
|
| | | `GET /v1/files/{file_id}` | Return file metadata. |
|
|
@@ -115,69 +110,12 @@ return 503 as an insufficient memory budget error.
|
|
|
115
110
|
model weights and Docker images. At first, it is recommended to use `kiapi activate`
|
|
116
111
|
to set up only the capabilities you need.
|
|
117
112
|
|
|
118
|
-
## Remote
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```sh
|
|
126
|
-
python3.12 -m pip install --upgrade "kiapi[relay-gcp]"
|
|
127
|
-
uv tool install --python 3.12 "kiapi[relay-gcp]"
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
```sh
|
|
131
|
-
export KIAPI_RELAY_GCP_DATABASE_URL="https://PROJECT.firebaseio.com"
|
|
132
|
-
export KIAPI_RELAY_GCP_BUCKET="PRIVATE_RELAY_BUCKET"
|
|
133
|
-
|
|
134
|
-
# Uses Application Default Credentials by default.
|
|
135
|
-
kiapi run --relay gcp
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Each node generates its own `node_id` on first start, persists it in the user
|
|
139
|
-
data directory, and publishes a liveness heartbeat under `liveness`.
|
|
140
|
-
A requester picks the most recently seen node and writes
|
|
141
|
-
`sessions/{session_id}/request.json` in GCS, then writes a notification
|
|
142
|
-
to `nodes/{node_id}/requests/{session_id}` in RTDB. The relay reports
|
|
143
|
-
`queued`, `running`, and the terminal result below the requester node's
|
|
144
|
-
`responses` path.
|
|
145
|
-
|
|
146
|
-
- Requests are dispatched directly to the in-process FastAPI app and handled
|
|
147
|
-
one at a time by the relay.
|
|
148
|
-
- JSON responses use `response.json`. Binary responses write `response.body`
|
|
149
|
-
before `response.json`.
|
|
150
|
-
- `response.json` uses a GCS create-only generation precondition. A completed
|
|
151
|
-
response found after restart is reported without executing the API again.
|
|
152
|
-
- The terminal RTDB response and request deletion use one atomic multi-location
|
|
153
|
-
update.
|
|
154
|
-
- Startup installs a session-scoped lifecycle rule that deletes session objects
|
|
155
|
-
after one day. Set `KIAPI_RELAY_GCP_MANAGE_BUCKET_LIFECYCLE=false` when
|
|
156
|
-
infrastructure manages this rule.
|
|
157
|
-
|
|
158
|
-
Use a dedicated bucket and narrowly scoped RTDB/GCS permissions. Google
|
|
159
|
-
credentials are configured through
|
|
160
|
-
[`kiarina-lib-google`](https://github.com/kiarina/kiarina-python/tree/main/packages/kiarina-lib-google).
|
|
161
|
-
|
|
162
|
-
See [GCP Relay setup](../kiapi-relay/src/kiapi_relay/impl/gcp/README.md) for resource
|
|
163
|
-
creation, IAM, authentication, configuration, and verification steps.
|
|
164
|
-
|
|
165
|
-
For local relay verification without GCP, use `local`. It uses the same
|
|
166
|
-
in-process dispatch path but stores notifications and payloads under a local
|
|
167
|
-
directory:
|
|
168
|
-
|
|
169
|
-
```sh
|
|
170
|
-
export KIAPI_RELAY_LOCAL_ROOT="/tmp/kiapi/relay"
|
|
171
|
-
export KIAPI_RELAY_LOCAL_PREFIX="private/kiapi"
|
|
172
|
-
|
|
173
|
-
kiapi run --relay local
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
The requester writes `{root}/{prefix}/sessions/{session_id}/request.json`, then
|
|
177
|
-
writes `{root}/{prefix}/nodes/{node_id}/requests/{session_id}.json` with
|
|
178
|
-
`{"session_id":"...","source_node_id":"..."}`. The relay writes bridge status
|
|
179
|
-
to `{root}/{prefix}/nodes/{source_node_id}/responses/{session_id}.json` and
|
|
180
|
-
stores the committed response in the session directory.
|
|
113
|
+
## Remote Access
|
|
114
|
+
|
|
115
|
+
kiapi binds to `127.0.0.1` by default and does not expose an inbound socket.
|
|
116
|
+
For access from other machines, put it behind your own private network layer —
|
|
117
|
+
for example `tailscale serve` for a TLS endpoint reachable only inside your
|
|
118
|
+
tailnet.
|
|
181
119
|
|
|
182
120
|
## Local Storage
|
|
183
121
|
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|

|
|
6
6
|
[](https://kiarina.github.io/kiapi/)
|
|
7
7
|
|
|
8
|
-
**English** | [日本語](README.ja.md)
|
|
9
|
-
|
|
10
8
|
## Summary
|
|
11
9
|
|
|
12
10
|
kiapi is a local API server that uses Apple Silicon and MLX to provide generative AI capabilities for LLM agents.
|
|
@@ -15,19 +13,19 @@ kiapi is a local API server that uses Apple Silicon and MLX to provide generativ
|
|
|
15
13
|
|
|
16
14
|
| Domain | Family | Endpoint | Description |
|
|
17
15
|
|---|---|---|---|
|
|
18
|
-
| chat | | `POST /v1/chat` | [Chat API details](./kiapi/capabilities/chat/README.md) |
|
|
19
|
-
| embedding | | `POST /v1/embedding` | [Embedding API details](./kiapi/capabilities/embedding/README.md) |
|
|
20
|
-
| image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./kiapi/capabilities/zimage/README.md) |
|
|
21
|
-
| | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./kiapi/capabilities/flux2/README.md) |
|
|
22
|
-
| | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./kiapi/capabilities/qwen/README.md) |
|
|
23
|
-
| | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./kiapi/capabilities/ideogram4/README.md) |
|
|
24
|
-
| | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./kiapi/capabilities/ernie/README.md) |
|
|
25
|
-
| | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./kiapi/capabilities/seedvr2/README.md) |
|
|
26
|
-
| | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./kiapi/capabilities/depthpro/README.md) |
|
|
27
|
-
| audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./kiapi/capabilities/acestep/README.md) |
|
|
28
|
-
| | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./kiapi/capabilities/audiogen/README.md) |
|
|
29
|
-
| video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./kiapi/capabilities/ltx2/README.md) |
|
|
30
|
-
| web | | `POST /v1/web` | [Web API details](./kiapi/capabilities/web/README.md) |
|
|
16
|
+
| chat | | `POST /v1/chat` | [Chat API details](./src/kiapi/capabilities/chat/README.md) |
|
|
17
|
+
| embedding | | `POST /v1/embedding` | [Embedding API details](./src/kiapi/capabilities/embedding/README.md) |
|
|
18
|
+
| image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./src/kiapi/capabilities/zimage/README.md) |
|
|
19
|
+
| | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./src/kiapi/capabilities/flux2/README.md) |
|
|
20
|
+
| | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./src/kiapi/capabilities/qwen/README.md) |
|
|
21
|
+
| | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./src/kiapi/capabilities/ideogram4/README.md) |
|
|
22
|
+
| | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./src/kiapi/capabilities/ernie/README.md) |
|
|
23
|
+
| | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./src/kiapi/capabilities/seedvr2/README.md) |
|
|
24
|
+
| | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./src/kiapi/capabilities/depthpro/README.md) |
|
|
25
|
+
| audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./src/kiapi/capabilities/acestep/README.md) |
|
|
26
|
+
| | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./src/kiapi/capabilities/audiogen/README.md) |
|
|
27
|
+
| video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./src/kiapi/capabilities/ltx2/README.md) |
|
|
28
|
+
| web | | `POST /v1/web` | [Web API details](./src/kiapi/capabilities/web/README.md) |
|
|
31
29
|
| core | files | `POST /v1/files` | Upload input files, LoRA adapters, and other files, then issue a `file_id`. |
|
|
32
30
|
| | | `GET /v1/files` | Return a list of stored files. |
|
|
33
31
|
| | | `GET /v1/files/{file_id}` | Return file metadata. |
|
|
@@ -64,69 +62,12 @@ return 503 as an insufficient memory budget error.
|
|
|
64
62
|
model weights and Docker images. At first, it is recommended to use `kiapi activate`
|
|
65
63
|
to set up only the capabilities you need.
|
|
66
64
|
|
|
67
|
-
## Remote
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
```sh
|
|
75
|
-
python3.12 -m pip install --upgrade "kiapi[relay-gcp]"
|
|
76
|
-
uv tool install --python 3.12 "kiapi[relay-gcp]"
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
```sh
|
|
80
|
-
export KIAPI_RELAY_GCP_DATABASE_URL="https://PROJECT.firebaseio.com"
|
|
81
|
-
export KIAPI_RELAY_GCP_BUCKET="PRIVATE_RELAY_BUCKET"
|
|
82
|
-
|
|
83
|
-
# Uses Application Default Credentials by default.
|
|
84
|
-
kiapi run --relay gcp
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Each node generates its own `node_id` on first start, persists it in the user
|
|
88
|
-
data directory, and publishes a liveness heartbeat under `liveness`.
|
|
89
|
-
A requester picks the most recently seen node and writes
|
|
90
|
-
`sessions/{session_id}/request.json` in GCS, then writes a notification
|
|
91
|
-
to `nodes/{node_id}/requests/{session_id}` in RTDB. The relay reports
|
|
92
|
-
`queued`, `running`, and the terminal result below the requester node's
|
|
93
|
-
`responses` path.
|
|
94
|
-
|
|
95
|
-
- Requests are dispatched directly to the in-process FastAPI app and handled
|
|
96
|
-
one at a time by the relay.
|
|
97
|
-
- JSON responses use `response.json`. Binary responses write `response.body`
|
|
98
|
-
before `response.json`.
|
|
99
|
-
- `response.json` uses a GCS create-only generation precondition. A completed
|
|
100
|
-
response found after restart is reported without executing the API again.
|
|
101
|
-
- The terminal RTDB response and request deletion use one atomic multi-location
|
|
102
|
-
update.
|
|
103
|
-
- Startup installs a session-scoped lifecycle rule that deletes session objects
|
|
104
|
-
after one day. Set `KIAPI_RELAY_GCP_MANAGE_BUCKET_LIFECYCLE=false` when
|
|
105
|
-
infrastructure manages this rule.
|
|
106
|
-
|
|
107
|
-
Use a dedicated bucket and narrowly scoped RTDB/GCS permissions. Google
|
|
108
|
-
credentials are configured through
|
|
109
|
-
[`kiarina-lib-google`](https://github.com/kiarina/kiarina-python/tree/main/packages/kiarina-lib-google).
|
|
110
|
-
|
|
111
|
-
See [GCP Relay setup](../kiapi-relay/src/kiapi_relay/impl/gcp/README.md) for resource
|
|
112
|
-
creation, IAM, authentication, configuration, and verification steps.
|
|
113
|
-
|
|
114
|
-
For local relay verification without GCP, use `local`. It uses the same
|
|
115
|
-
in-process dispatch path but stores notifications and payloads under a local
|
|
116
|
-
directory:
|
|
117
|
-
|
|
118
|
-
```sh
|
|
119
|
-
export KIAPI_RELAY_LOCAL_ROOT="/tmp/kiapi/relay"
|
|
120
|
-
export KIAPI_RELAY_LOCAL_PREFIX="private/kiapi"
|
|
121
|
-
|
|
122
|
-
kiapi run --relay local
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
The requester writes `{root}/{prefix}/sessions/{session_id}/request.json`, then
|
|
126
|
-
writes `{root}/{prefix}/nodes/{node_id}/requests/{session_id}.json` with
|
|
127
|
-
`{"session_id":"...","source_node_id":"..."}`. The relay writes bridge status
|
|
128
|
-
to `{root}/{prefix}/nodes/{source_node_id}/responses/{session_id}.json` and
|
|
129
|
-
stores the committed response in the session directory.
|
|
65
|
+
## Remote Access
|
|
66
|
+
|
|
67
|
+
kiapi binds to `127.0.0.1` by default and does not expose an inbound socket.
|
|
68
|
+
For access from other machines, put it behind your own private network layer —
|
|
69
|
+
for example `tailscale serve` for a TLS endpoint reachable only inside your
|
|
70
|
+
tailnet.
|
|
130
71
|
|
|
131
72
|
## Local Storage
|
|
132
73
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "kiapi"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.6.0"
|
|
4
4
|
description = "Unified local inference API server for LLM agents on Apple Silicon (MLX): chat, embedding, image, music, sound-effect, and video — one process, one global memory budget, one single-flight queue, unified jobs and files."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12,<3.13"
|
|
@@ -47,8 +47,6 @@ dependencies = [
|
|
|
47
47
|
"httpx", # web search capability: async HTTP client for the SearXNG backend
|
|
48
48
|
"kiarina-utils-common>=2.2.0",
|
|
49
49
|
"kiarina-utils-app>=2.3.0", # user directory resolution (replaces core/app internals)
|
|
50
|
-
# --- relay (shared request/response transport, split into its own package) ---
|
|
51
|
-
"kiapi-relay",
|
|
52
50
|
# --- embedding capability (mlx-embeddings) ---
|
|
53
51
|
"mlx-embeddings>=0.1.0",
|
|
54
52
|
# --- sound-effect capability (mlx-audiocraft / AudioGen) ---
|
|
@@ -72,11 +70,6 @@ dependencies = [
|
|
|
72
70
|
"pydantic-settings-manager>=3.8.0",
|
|
73
71
|
]
|
|
74
72
|
|
|
75
|
-
[project.optional-dependencies]
|
|
76
|
-
relay-gcp = [
|
|
77
|
-
"kiapi-relay[gcp]",
|
|
78
|
-
]
|
|
79
|
-
|
|
80
73
|
[project.scripts]
|
|
81
74
|
kiapi = "kiapi.cli.cli:main"
|
|
82
75
|
|
|
@@ -8,7 +8,6 @@ if TYPE_CHECKING:
|
|
|
8
8
|
from ._helpers.build_train_responses import build_train_responses
|
|
9
9
|
from ._helpers.get_accept import get_accept
|
|
10
10
|
from ._helpers.get_ctx import get_ctx
|
|
11
|
-
from ._helpers.get_relay_runner import get_relay_runner
|
|
12
11
|
from ._helpers.get_worker import get_worker
|
|
13
12
|
from ._helpers.register_capability_endpoints import register_capability_endpoints
|
|
14
13
|
from ._helpers.submit_and_maybe_wait import submit_and_maybe_wait
|
|
@@ -21,7 +20,6 @@ __all__ = [
|
|
|
21
20
|
"build_train_responses",
|
|
22
21
|
"get_accept",
|
|
23
22
|
"get_ctx",
|
|
24
|
-
"get_relay_runner",
|
|
25
23
|
"get_worker",
|
|
26
24
|
"register_capability_endpoints",
|
|
27
25
|
"settings_manager",
|
|
@@ -40,7 +38,6 @@ def __getattr__(name: str) -> object:
|
|
|
40
38
|
"build_train_responses": "._helpers.build_train_responses",
|
|
41
39
|
"get_accept": "._helpers.get_accept",
|
|
42
40
|
"get_ctx": "._helpers.get_ctx",
|
|
43
|
-
"get_relay_runner": "._helpers.get_relay_runner",
|
|
44
41
|
"get_worker": "._helpers.get_worker",
|
|
45
42
|
"register_capability_endpoints": "._helpers.register_capability_endpoints",
|
|
46
43
|
"settings_manager": "._settings",
|
|
@@ -5,7 +5,7 @@ from contextlib import asynccontextmanager
|
|
|
5
5
|
from fastapi import FastAPI
|
|
6
6
|
from fastapi.openapi.docs import get_redoc_html, get_swagger_ui_html
|
|
7
7
|
from fastapi.responses import HTMLResponse
|
|
8
|
-
from kiarina.utils.app import single_instance
|
|
8
|
+
from kiarina.utils.app import single_instance
|
|
9
9
|
|
|
10
10
|
from kiapi.api import build_openapi
|
|
11
11
|
from kiapi.core.app import AppContext
|
|
@@ -13,12 +13,6 @@ from kiapi.core.capability import capability_spec_registry
|
|
|
13
13
|
from kiapi.core.logging import setup_logger
|
|
14
14
|
from kiapi.core.model import model_registry
|
|
15
15
|
from kiapi.core.worker import create_worker
|
|
16
|
-
from kiapi_relay import (
|
|
17
|
-
RelayRunner,
|
|
18
|
-
get_or_create_node_id,
|
|
19
|
-
relay_registry,
|
|
20
|
-
)
|
|
21
|
-
from kiapi_relay import settings_manager as relay_settings_manager
|
|
22
16
|
|
|
23
17
|
from .audio.acestep.router import router as acestep_router
|
|
24
18
|
from .audio.audiogen.router import router as audiogen_router
|
|
@@ -65,11 +59,7 @@ async def lifespan(app: FastAPI): # type: ignore
|
|
|
65
59
|
"Start the server with `kiapi run` instead of importing the ASGI app directly."
|
|
66
60
|
)
|
|
67
61
|
|
|
68
|
-
# Prevent a second kiapi from sharing this node identity and double-consuming
|
|
69
|
-
# relay requests, then resolve the persistent node ID for this data dir.
|
|
70
62
|
single_instance.acquire()
|
|
71
|
-
data_dir = user_directory.get_user_data_dir()
|
|
72
|
-
node_id = get_or_create_node_id(data_dir)
|
|
73
63
|
|
|
74
64
|
ctx = AppContext.create()
|
|
75
65
|
worker = create_worker(ctx)
|
|
@@ -80,20 +70,8 @@ async def lifespan(app: FastAPI): # type: ignore
|
|
|
80
70
|
worker.start()
|
|
81
71
|
asyncio.create_task(worker.warmup()) # noqa: RUF006
|
|
82
72
|
|
|
83
|
-
relay_runner: RelayRunner | None = None
|
|
84
|
-
|
|
85
|
-
if relay_settings_manager.get_settings().default is not None:
|
|
86
|
-
relay = relay_registry.resolve()
|
|
87
|
-
relay.node_id = node_id
|
|
88
|
-
relay_runner = RelayRunner(relay, app)
|
|
89
|
-
relay_runner.start()
|
|
90
|
-
app.state.relay_runner = relay_runner
|
|
91
|
-
|
|
92
73
|
yield
|
|
93
74
|
|
|
94
|
-
if relay_runner is not None:
|
|
95
|
-
await relay_runner.stop()
|
|
96
|
-
|
|
97
75
|
await worker.stop()
|
|
98
76
|
single_instance.release()
|
|
99
77
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from pydantic import BaseModel, Field
|
|
2
2
|
|
|
3
3
|
from kiapi.core.memory import MemoryStats
|
|
4
|
-
from kiapi_relay import RelayHealth
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
class HealthResponse(BaseModel):
|
|
@@ -25,10 +24,3 @@ class HealthResponse(BaseModel):
|
|
|
25
24
|
...,
|
|
26
25
|
description="Resident model memory budget and loaded model snapshot.",
|
|
27
26
|
)
|
|
28
|
-
relay: RelayHealth | None = Field(
|
|
29
|
-
default=None,
|
|
30
|
-
description=(
|
|
31
|
-
"Status of the relay started with the API server. "
|
|
32
|
-
"Null when no relay is configured."
|
|
33
|
-
),
|
|
34
|
-
)
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
from fastapi import APIRouter, Depends
|
|
2
2
|
|
|
3
|
-
from kiapi.api import get_ctx,
|
|
3
|
+
from kiapi.api import get_ctx, get_worker
|
|
4
4
|
from kiapi.core.app import AppContext
|
|
5
5
|
from kiapi.core.worker import Worker
|
|
6
|
-
from kiapi_relay import RelayRunner
|
|
7
6
|
|
|
8
7
|
from ._views.health_response import HealthResponse
|
|
9
8
|
|
|
@@ -14,19 +13,16 @@ router = APIRouter()
|
|
|
14
13
|
async def health(
|
|
15
14
|
ctx: AppContext = Depends(get_ctx),
|
|
16
15
|
worker: Worker = Depends(get_worker),
|
|
17
|
-
relay_runner: RelayRunner | None = Depends(get_relay_runner),
|
|
18
16
|
) -> dict:
|
|
19
|
-
"""Inspect server readiness, queue depth, resident model memory
|
|
17
|
+
"""Inspect server readiness, queue depth, and resident model memory.
|
|
20
18
|
|
|
21
19
|
Use this endpoint to see whether warmup has finished, how many jobs are
|
|
22
|
-
queued behind the single-flight worker, which resident models currently
|
|
23
|
-
count against the global memory budget
|
|
24
|
-
the server is running.
|
|
20
|
+
queued behind the single-flight worker, and which resident models currently
|
|
21
|
+
count against the global memory budget.
|
|
25
22
|
"""
|
|
26
23
|
return {
|
|
27
24
|
"status": "ok",
|
|
28
25
|
"warm": worker.warm,
|
|
29
26
|
"queue_len": worker.queue.qsize(),
|
|
30
27
|
"memory": ctx.memory_manager.stats(),
|
|
31
|
-
"relay": relay_runner.status() if relay_runner is not None else None,
|
|
32
28
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# acestep
|
|
2
2
|
|
|
3
|
-
**English** | [日本語](README.ja.md)
|
|
4
|
-
|
|
5
3
|
[ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5) provides the following functions.
|
|
6
4
|
- Music generation
|
|
7
5
|
- Style conversion of existing songs
|
|
@@ -159,7 +157,7 @@ curl -sS -X POST http://localhost:${PORT:-8000}/v1/audio/acestep/extract \
|
|
|
159
157
|
--data-binary @-
|
|
160
158
|
)
|
|
161
159
|
|
|
162
|
-
#
|
|
160
|
+
# Download each stem (stems[] carries the target name)
|
|
163
161
|
echo "$RESP" | jq -c '.result.stems[]' | while read -r s; do
|
|
164
162
|
TARGET=$(echo "$s" | jq -r .target); FID=$(echo "$s" | jq -r .file_id)
|
|
165
163
|
curl -o "${TARGET}.wav" http://localhost:${PORT:-8000}/v1/files/$FID/download
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# ernie
|
|
2
2
|
|
|
3
|
-
**English** | [日本語](README.ja.md)
|
|
4
|
-
|
|
5
3
|
[mflux ERNIE-Image](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/ernie_image/README.md) provides image generation, image editing, and LoRA fine tuning functions.
|
|
6
4
|
|
|
7
5
|
- **generate**: Generate image from text
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# ideogram4
|
|
2
2
|
|
|
3
|
-
**English** | [日本語](README.ja.md)
|
|
4
|
-
|
|
5
3
|
[mflux Ideogram 4 FP8](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/ideogram4/README.md) provides typography-friendly text image generation functionality.
|
|
6
4
|
Ideogram 4 is a model suitable for situations where you want to handle text, signs, labels, logo-like text, etc. in images.
|
|
7
5
|
kiapi only exposes txt2img and saves the generated results as Files API artifacts.
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# qwen
|
|
2
2
|
|
|
3
|
-
**English** | [日本語](README.ja.md)
|
|
4
|
-
|
|
5
3
|
[mflux Qwen Image](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/qwen/README.md) provides image generation and image editing functions.
|
|
6
4
|
Qwen Image is a strong model for multilingual prompts and text in images.
|
|
7
5
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# seedvr2
|
|
2
2
|
|
|
3
|
-
**English** | [日本語](README.ja.md)
|
|
4
|
-
|
|
5
3
|
[mflux SeedVR2](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/seedvr2/README.md) provides single-image diffusion-based super-resolution/upscaling functionality.
|
|
6
4
|
SeedVR2 is an image-to-image super-resolution model that reconstructs details based on input images rather than prompt-driven image generation.
|
|
7
5
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# zimage
|
|
2
2
|
|
|
3
|
-
**English** | [日本語](README.ja.md)
|
|
4
|
-
|
|
5
3
|
[mflux Z-Image](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/z_image/README.md) provides image generation and LoRA fine-tuning functionality.
|
|
6
4
|
|
|
7
5
|
Z-Image is a relatively lightweight image generation model.
|
|
@@ -10,10 +10,6 @@ _SETTINGS_IMPORT_PATHS = [
|
|
|
10
10
|
"kiapi.core.memory",
|
|
11
11
|
"kiapi.core.worker",
|
|
12
12
|
"kiapi.core.net",
|
|
13
|
-
"kiapi_relay",
|
|
14
|
-
"kiapi_relay.impl.gcp",
|
|
15
|
-
"kiapi_relay.impl.local",
|
|
16
|
-
"kiarina.lib.google",
|
|
17
13
|
"kiapi.capabilities.chat",
|
|
18
14
|
"kiapi.capabilities.embedding",
|
|
19
15
|
"kiapi.capabilities.depthpro",
|
|
@@ -7,22 +7,15 @@ from kiapi.api import settings_manager as api_settings_manager
|
|
|
7
7
|
from kiapi.cli import register_all_capabilities
|
|
8
8
|
from kiapi.core.logging import get_log_level
|
|
9
9
|
from kiapi.core.logging import settings_manager as logging_settings_manager
|
|
10
|
-
from kiapi_relay import settings_manager as relay_settings_manager
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
@click.command()
|
|
14
13
|
@click.option("--host", type=str, help="Bind socket to this host")
|
|
15
14
|
@click.option("--port", type=int, help="Bind socket to this port")
|
|
16
|
-
@click.option(
|
|
17
|
-
"--relay",
|
|
18
|
-
type=str,
|
|
19
|
-
help="Start a relay, for example: gcp. Pass 'none' to disable the relay.",
|
|
20
|
-
)
|
|
21
15
|
@click.option("--debug", is_flag=True, help="Enable debug logging and hot reload")
|
|
22
16
|
def run(
|
|
23
17
|
host: str | None,
|
|
24
18
|
port: int | None,
|
|
25
|
-
relay: str | None,
|
|
26
19
|
debug: bool,
|
|
27
20
|
) -> None:
|
|
28
21
|
"""Run the kiapi API server."""
|
|
@@ -36,11 +29,6 @@ def run(
|
|
|
36
29
|
if api_cli_args:
|
|
37
30
|
api_settings_manager.cli_args = api_cli_args
|
|
38
31
|
|
|
39
|
-
if relay is not None:
|
|
40
|
-
relay_settings_manager.cli_args = {
|
|
41
|
-
"default": None if relay == "none" else relay
|
|
42
|
-
}
|
|
43
|
-
|
|
44
32
|
settings = api_settings_manager.get_settings()
|
|
45
33
|
|
|
46
34
|
if debug:
|
|
@@ -49,9 +37,6 @@ def run(
|
|
|
49
37
|
# in-process cli_args, so propagate the log level via the environment.
|
|
50
38
|
os.environ["KIAPI_LOG_LEVEL"] = "DEBUG"
|
|
51
39
|
|
|
52
|
-
if relay is not None:
|
|
53
|
-
os.environ["KIAPI_RELAY_DEFAULT"] = relay
|
|
54
|
-
|
|
55
40
|
# Hot reload requires an import string (the worker subprocess
|
|
56
41
|
# re-imports the app), so use the ASGI factory that registers
|
|
57
42
|
# capabilities on import.
|
|
@@ -62,7 +62,7 @@ def install() -> None:
|
|
|
62
62
|
def _build_environment_variables() -> dict[str, str]:
|
|
63
63
|
env = {"PYTHONUNBUFFERED": "1"}
|
|
64
64
|
|
|
65
|
-
for name in ("XDG_CACHE_HOME", "XDG_CONFIG_HOME", "XDG_DATA_HOME"):
|
|
65
|
+
for name in ("PATH", "XDG_CACHE_HOME", "XDG_CONFIG_HOME", "XDG_DATA_HOME"):
|
|
66
66
|
value = os.environ.get(name)
|
|
67
67
|
if value:
|
|
68
68
|
env[name] = value
|