-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path1.0.0.json
1 lines (1 loc) · 52.4 KB
/
1.0.0.json
1
{"authors": "dev-team@jina.ai", "description": "Jina is the cloud-native neural search solution powered by state-of-the-art AI and deep learning technology", "docs": "https://docs.jina.ai", "license": "Apache 2.0", "methods": [{"name": "hello-world", "options": [{"choices": null, "default": "1473c0d0-3c04-4202-9dfe-33d930fa6bfa", "default_factory": "random_identity", "default_random": true, "help": "The workdir for hello-world demoall data, indices, shards and outputs will be saved there", "name": "workdir", "option_strings": ["--workdir"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The proxy when downloading sample data", "name": "download_proxy", "option_strings": ["--download-proxy"], "required": false, "type": "str"}, {"choices": null, "default": 2, "default_random": false, "help": "The number of shards when index and query", "name": "shards", "option_strings": ["--shards"], "required": false, "type": "int"}, {"choices": null, "default": 2, "default_random": false, "help": "The number of parallel when index and query", "name": "parallel", "option_strings": ["--parallel"], "required": false, "type": "int"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/helloworld.flow.index.yml", "default_random": false, "help": "The yaml path of the index flow", "name": "uses_index", "option_strings": ["--uses-index"], "required": false, "type": "str"}, {"choices": null, "default": "http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz", "default_random": false, "help": "The url of index data (should be in idx3-ubyte.gz format)", "name": "index_data_url", "option_strings": ["--index-data-url"], "required": false, "type": "str"}, {"choices": null, "default": "http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz", "default_random": false, "help": "The url of index labels data (should be in idx3-ubyte.gz format)", "name": "index_labels_url", "option_strings": ["--index-labels-url"], "required": false, "type": "str"}, {"choices": null, "default": 1024, "default_random": false, "help": "The request size in indexing (the maximum number of documents that will be included in a Request before sending it)", "name": "index_request_size", "option_strings": ["--index-request-size"], "required": false, "type": "int"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/helloworld.flow.query.yml", "default_random": false, "help": "The yaml path of the query flow", "name": "uses_query", "option_strings": ["--uses-query"], "required": false, "type": "str"}, {"choices": null, "default": "http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz", "default_random": false, "help": "The url of query data (should be in idx3-ubyte.gz format)", "name": "query_data_url", "option_strings": ["--query-data-url"], "required": false, "type": "str"}, {"choices": null, "default": "http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz", "default_random": false, "help": "The url of query labels data (should be in idx3-ubyte.gz format)", "name": "query_labels_url", "option_strings": ["--query-labels-url"], "required": false, "type": "str"}, {"choices": null, "default": 32, "default_random": false, "help": "The request size in searching (the maximum number of documents that will be included in a Request before sending it)", "name": "query_request_size", "option_strings": ["--query-request-size"], "required": false, "type": "int"}, {"choices": null, "default": 128, "default_random": false, "help": "The number of queries to visualize", "name": "num_query", "option_strings": ["--num-query"], "required": false, "type": "int"}, {"choices": null, "default": 50, "default_random": false, "help": "Top-k results to retrieve and visualize", "name": "top_k", "option_strings": ["--top-k"], "required": false, "type": "int"}]}, {"name": "pod", "options": [{"choices": null, "default": null, "default_random": false, "help": "\nThe name of this object.\n\nThis will be used in the following places:\n- how you refer to this object in Python/YAML/CLI\n- log message\n- ...\n\nWhen not given, then the default naming strategy will apply.\n ", "name": "name", "option_strings": ["--name"], "required": false, "type": "str"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/logging.default.yml", "default_random": false, "help": "The YAML config of the logger used in this object.", "name": "log_config", "option_strings": ["--log-config"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "If set, then exception stack information to be added to the logging message, useful in debugging", "name": "hide_exc_info", "option_strings": ["--hide-exc-info"], "required": false, "type": "bool"}, {"choices": null, "default": 43521, "default_factory": "random_port", "default_random": true, "help": "The port for controlling the runtime, default a random port between [49152, 65535]", "name": "port_ctrl", "option_strings": ["--port-ctrl"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, use ipc protocol for control socket", "name": "ctrl_with_ipc", "option_strings": ["--ctrl-with-ipc"], "required": false, "type": "bool"}, {"choices": null, "default": 5000, "default_random": false, "help": "The timeout in milliseconds of the control request, -1 for waiting forever", "name": "timeout_ctrl", "option_strings": ["--timeout-ctrl"], "required": false, "type": "int"}, {"choices": null, "default": null, "default_random": false, "help": "The SSH server through which the tunnel will be created, can actually be a fully specified `user@server:port` ssh url.", "name": "ssh_server", "option_strings": ["--ssh-server"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "This specifies a key to be used in ssh login, default None. regular default ssh keys will be used without specifying this argument.", "name": "ssh_keyfile", "option_strings": ["--ssh-keyfile"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The ssh password to the ssh server.", "name": "ssh_password", "option_strings": ["--ssh-password"], "required": false, "type": "str"}, {"choices": null, "default": "_pass", "default_random": false, "help": "\nThe config of the executor, it could be one of the followings: \n- an Executor-level YAML file path (*.yml/yaml) \n- a name of a class inherited from `jina.Executor`\n- a docker image (must start with `docker://`)\n- builtin executors, e.g. `_pass`, `_logforward`, `_merge` \n- the string literal of a YAML config (must start with `!`)\n- the string literal of a JSON config\n- the string literal of a YAML driver config (must start with `- !!`)\n\nWhen use it under Python, one can use the following values additionally:\n- a Python dict that represents the config\n- a text file stream has `.read()` interface\n", "name": "uses", "option_strings": ["--uses"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "\nThe customized python modules need to be imported before loading the executor\n\nNote, when importing multiple files and there is a dependency between them, then one has to write the dependencies in \nreverse order. That is, if `__init__.py` depends on `A.py`, which again depends on `B.py`, then you need to write: \n\n--py-modules __init__.py --py-modules B.py --py-modules A.py\n\n", "name": "py_modules", "option_strings": ["--py-modules"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": 57791, "default_factory": "random_port", "default_random": true, "help": "The port for input data, default a random port between [49152, 65535]", "name": "port_in", "option_strings": ["--port-in"], "required": false, "type": "int"}, {"choices": null, "default": 38097, "default_factory": "random_port", "default_random": true, "help": "The port for output data, default a random port between [49152, 65535]", "name": "port_out", "option_strings": ["--port-out"], "required": false, "type": "int"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address for input, by default it is 0.0.0.0", "name": "host_in", "option_strings": ["--host-in"], "required": false, "type": "str"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address for output, by default it is 0.0.0.0", "name": "host_out", "option_strings": ["--host-out"], "required": false, "type": "str"}, {"choices": ["PULL_BIND", "PULL_CONNECT", "PUSH_BIND", "PUSH_CONNECT", "SUB_BIND", "SUB_CONNECT", "PUB_BIND", "PUB_CONNECT", "PAIR_BIND", "PAIR_CONNECT", "ROUTER_BIND", "DEALER_CONNECT"], "default": "PULL_BIND", "default_random": false, "help": "The socket type for input port", "name": "socket_in", "option_strings": ["--socket-in"], "required": false, "type": "str"}, {"choices": ["PULL_BIND", "PULL_CONNECT", "PUSH_BIND", "PUSH_CONNECT", "SUB_BIND", "SUB_CONNECT", "PUB_BIND", "PUB_CONNECT", "PAIR_BIND", "PAIR_CONNECT", "ROUTER_BIND", "DEALER_CONNECT"], "default": "PUSH_BIND", "default_random": false, "help": "The socket type for output port", "name": "socket_out", "option_strings": ["--socket-out"], "required": false, "type": "str"}, {"choices": null, "default": 240, "default_random": false, "help": "Serialize the model in the pod every n seconds if model changes. -1 means --read-only. ", "name": "dump_interval", "option_strings": ["--dump-interval"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, do not allow the pod to modify the model, dump_interval will be ignored", "name": "read_only", "option_strings": ["--read-only"], "required": false, "type": "bool"}, {"choices": null, "default": -1, "default_random": false, "help": "The memory high watermark of this pod in Gigabytes, pod will restart when this is reached. -1 means no restriction", "name": "memory_hwm", "option_strings": ["--memory-hwm"], "required": false, "type": "int"}, {"choices": ["IGNORE", "SKIP_EXECUTOR", "SKIP_HANDLE", "THROW_EARLY"], "default": "IGNORE", "default_random": false, "help": "\nThe skip strategy on exceptions.\n\n- IGNORE: Ignore it, keep running all Drivers & Executors logics in the sequel flow\n- SKIP_EXECUTOR: Skip all Executors in the sequel, but drivers are still called\n- SKIP_HANDLE: Skip all Drivers & Executors in the sequel, only `pre_hook` and `post_hook` are called\n- THROW_EARLY: Immediately throw the exception, the sequel flow will not be running at all \n \nNote, `IGNORE`, `SKIP_EXECUTOR` and `SKIP_HANDLE` do not guarantee the success execution in the sequel flow. If something \nis wrong in the upstream, it is hard to carry this exception and moving forward without any side-effect.\n", "name": "on_error_strategy", "option_strings": ["--on-error-strategy"], "required": false, "type": "str"}, {"choices": null, "default": "BaseExecutor", "default_random": false, "help": "\nThe config runs inside the Docker container. \n\nSyntax and function are the same as `--uses`. This is designed when `--uses=\"docker://...\"` this config is passed to \nthe Docker container.\n", "name": "uses_internal", "option_strings": ["--uses-internal"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The entrypoint command overrides the ENTRYPOINT in Docker image. when not set then the Docker image ENTRYPOINT takes effective.", "name": "entrypoint", "option_strings": ["--entrypoint"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "Pull the latest image before running", "name": "pull_latest", "option_strings": ["--pull-latest"], "required": false, "type": "bool"}, {"choices": null, "default": null, "default_random": false, "help": "\nThe path on the host to be mounted inside the container. \n\nNote, \n- If separated by `:`, then the first part will be considered as the local host path and the second part is the path in the container system. \n- If no split provided, then the basename of that directory will be mounted into container's root path, e.g. `--volumes=\"/user/test/my-workspace\"` will be mounted into `/my-workspace` inside the container. \n- All volumes are mounted with read-write mode.\n", "name": "volumes", "option_strings": ["--volumes"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address of the runtime, by default it is 0.0.0.0.", "name": "host", "option_strings": ["--host"], "required": false, "type": "str"}, {"choices": null, "default": 52669, "default_factory": "random_port", "default_random": true, "help": "The port of the host exposed to the public", "name": "port_expose", "option_strings": ["--port-expose"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "Do not display the streaming of remote logs on local console", "name": "silent_remote_logs", "option_strings": ["--silent-remote-logs"], "required": false, "type": "bool"}, {"choices": null, "default": null, "default_random": false, "help": "\nThe files on the host to be uploaded to the remote\nworkspace. This can be useful when your Pod has more\nfile dependencies beyond a single YAML file, e.g.\nPython files, data files.\n\nNote,\n- currently only flatten structure is supported, which means if you upload `[./foo/a.py, ./foo/b.pp, ./bar/c.yml]`, then they will be put under the _same_ workspace on the remote, losing all hierarchies.\n- by default, `--uses` YAML file is always uploaded.\n- uploaded files are by default isolated across the runs. To ensure files are submitted to the same workspace across different runs, use `--workspace-id` to specify the workspace.\n", "name": "upload_files", "option_strings": ["--upload-files"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": "46bffcfb-7b25-4cbf-a013-53c23a684a4d", "default_factory": "random_identity", "default_random": true, "help": "the UUID for identifying the workspace. When not given a random id will be assigned.Multiple Pea/Pod/Flow will work under the same workspace if they share the same `workspace-id`.", "name": "workspace_id", "option_strings": ["--workspace-id"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "The Pea attempts to terminate all of its Runtime child processes/threads on existing. setting it to true basically tell the Pea do not wait on the Runtime when closing", "name": "daemon", "option_strings": ["--daemon"], "required": false, "type": "bool"}, {"choices": ["THREAD", "PROCESS"], "default": "PROCESS", "default_random": false, "help": "The parallel backend of the runtime inside the Pea", "name": "runtime_backend", "option_strings": ["--runtime-backend", "--runtime"], "required": false, "type": "str"}, {"choices": ["GRPCRuntime", "RESTRuntime", "ContainerRuntime", "JinadRuntime", "SSHRuntime", "ZEDRuntime"], "default": "ZEDRuntime", "default_random": false, "help": "The runtime class to run inside the Pea", "name": "runtime_cls", "option_strings": ["--runtime-cls"], "required": false, "type": "str"}, {"choices": null, "default": 60000, "default_random": false, "help": "The timeout in milliseconds of a Pea waits for the runtime to be ready, -1 for waiting forever", "name": "timeout_ready", "option_strings": ["--timeout-ready"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, expose the public IP address to remote when necessary, by default it exposesprivate IP address, which only allows accessing under the same network/subnet. Important to set this to true when the Pea will receive input connections from remote Peas", "name": "expose_public", "option_strings": ["--expose-public"], "required": false, "type": "bool"}, {"choices": null, "default": null, "default_random": false, "help": "The executor attached after the Peas described by --uses, typically before sending to all parallels, accepted type follows `--uses`", "name": "uses_before", "option_strings": ["--uses-before"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The executor attached after the Peas described by --uses, typically used for receiving from all parallels, accepted type follows `--uses`", "name": "uses_after", "option_strings": ["--uses-after"], "required": false, "type": "str"}, {"choices": null, "default": 1, "default_random": false, "help": "The number of parallel peas in the pod running at the same time, `port_in` and `port_out` will be set to random, and routers will be added automatically when necessary", "name": "parallel", "option_strings": ["--parallel", "--shards"], "required": false, "type": "int"}, {"choices": ["ANY", "ALL", "ALL_ASYNC"], "default": "ANY", "default_random": false, "help": "\nThe polling strategy of the Pod (when `parallel>1`) \n- ANY: only one (whoever is idle) Pea polls the message\n- ALL: all Peas poll the message (like a broadcast)\n", "name": "polling", "option_strings": ["--polling"], "required": false, "type": "str"}, {"choices": ["LOAD_BALANCE", "ROUND_ROBIN"], "default": "LOAD_BALANCE", "default_random": false, "help": "The strategy of scheduling workload among Peas", "name": "scheduling", "option_strings": ["--scheduling"], "required": false, "type": "str"}]}, {"name": "flow", "options": [{"choices": null, "default": null, "default_random": false, "help": "\nThe name of this object.\n\nThis will be used in the following places:\n- how you refer to this object in Python/YAML/CLI\n- log message\n- ...\n\nWhen not given, then the default naming strategy will apply.\n ", "name": "name", "option_strings": ["--name"], "required": false, "type": "str"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/logging.default.yml", "default_random": false, "help": "The YAML config of the logger used in this object.", "name": "log_config", "option_strings": ["--log-config"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "If set, then exception stack information to be added to the logging message, useful in debugging", "name": "hide_exc_info", "option_strings": ["--hide-exc-info"], "required": false, "type": "bool"}, {"choices": null, "default": null, "default_random": false, "help": "The YAML file represents a flow", "name": "uses", "option_strings": ["--uses"], "required": false, "type": "str"}, {"choices": ["HANG", "REMOVE", "COLLECT"], "default": "COLLECT", "default_random": false, "help": "\nThe strategy on those inspect pods in the flow.\n\nIf `REMOVE` is given then all inspect pods are removed when building the flow.\n", "name": "inspect", "option_strings": ["--inspect"], "required": false, "type": "str"}]}, {"name": "optimizer", "options": [{"choices": null, "default": null, "default_random": false, "help": "\nThe name of this object.\n\nThis will be used in the following places:\n- how you refer to this object in Python/YAML/CLI\n- log message\n- ...\n\nWhen not given, then the default naming strategy will apply.\n ", "name": "name", "option_strings": ["--name"], "required": false, "type": "str"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/logging.default.yml", "default_random": false, "help": "The YAML config of the logger used in this object.", "name": "log_config", "option_strings": ["--log-config"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "If set, then exception stack information to be added to the logging message, useful in debugging", "name": "hide_exc_info", "option_strings": ["--hide-exc-info"], "required": false, "type": "bool"}, {"choices": null, "default": null, "default_random": false, "help": "The path to a YAML file which defines a FlowOptimizer.", "name": "uses", "option_strings": ["--uses"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The path to a YAML file to store the output.", "name": "output_dir", "option_strings": ["--output-dir"], "required": false, "type": "str"}]}, {"name": "gateway", "options": [{"choices": null, "default": "gateway", "default_random": false, "help": "\nThe name of this object.\n\nThis will be used in the following places:\n- how you refer to this object in Python/YAML/CLI\n- log message\n- ...\n\nWhen not given, then the default naming strategy will apply.\n ", "name": "name", "option_strings": ["--name"], "required": false, "type": "str"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/logging.default.yml", "default_random": false, "help": "The YAML config of the logger used in this object.", "name": "log_config", "option_strings": ["--log-config"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "If set, then exception stack information to be added to the logging message, useful in debugging", "name": "hide_exc_info", "option_strings": ["--hide-exc-info"], "required": false, "type": "bool"}, {"choices": null, "default": 60351, "default_factory": "random_port", "default_random": true, "help": "The port for controlling the runtime, default a random port between [49152, 65535]", "name": "port_ctrl", "option_strings": ["--port-ctrl"], "required": false, "type": "int"}, {"choices": null, "default": true, "default_random": false, "help": "If set, use ipc protocol for control socket", "name": "ctrl_with_ipc", "option_strings": ["--ctrl-with-ipc"], "required": false, "type": "bool"}, {"choices": null, "default": 5000, "default_random": false, "help": "The timeout in milliseconds of the control request, -1 for waiting forever", "name": "timeout_ctrl", "option_strings": ["--timeout-ctrl"], "required": false, "type": "int"}, {"choices": null, "default": null, "default_random": false, "help": "The SSH server through which the tunnel will be created, can actually be a fully specified `user@server:port` ssh url.", "name": "ssh_server", "option_strings": ["--ssh-server"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "This specifies a key to be used in ssh login, default None. regular default ssh keys will be used without specifying this argument.", "name": "ssh_keyfile", "option_strings": ["--ssh-keyfile"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The ssh password to the ssh server.", "name": "ssh_password", "option_strings": ["--ssh-password"], "required": false, "type": "str"}, {"choices": null, "default": "_pass", "default_random": false, "help": "\nThe config of the executor, it could be one of the followings: \n- an Executor-level YAML file path (*.yml/yaml) \n- a name of a class inherited from `jina.Executor`\n- a docker image (must start with `docker://`)\n- builtin executors, e.g. `_pass`, `_logforward`, `_merge` \n- the string literal of a YAML config (must start with `!`)\n- the string literal of a JSON config\n- the string literal of a YAML driver config (must start with `- !!`)\n\nWhen use it under Python, one can use the following values additionally:\n- a Python dict that represents the config\n- a text file stream has `.read()` interface\n", "name": "uses", "option_strings": ["--uses"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "\nThe customized python modules need to be imported before loading the executor\n\nNote, when importing multiple files and there is a dependency between them, then one has to write the dependencies in \nreverse order. That is, if `__init__.py` depends on `A.py`, which again depends on `B.py`, then you need to write: \n\n--py-modules __init__.py --py-modules B.py --py-modules A.py\n\n", "name": "py_modules", "option_strings": ["--py-modules"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": 57951, "default_factory": "random_port", "default_random": true, "help": "The port for input data, default a random port between [49152, 65535]", "name": "port_in", "option_strings": ["--port-in"], "required": false, "type": "int"}, {"choices": null, "default": 34931, "default_factory": "random_port", "default_random": true, "help": "The port for output data, default a random port between [49152, 65535]", "name": "port_out", "option_strings": ["--port-out"], "required": false, "type": "int"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address for input, by default it is 0.0.0.0", "name": "host_in", "option_strings": ["--host-in"], "required": false, "type": "str"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address for output, by default it is 0.0.0.0", "name": "host_out", "option_strings": ["--host-out"], "required": false, "type": "str"}, {"choices": ["PULL_BIND", "PULL_CONNECT", "PUSH_BIND", "PUSH_CONNECT", "SUB_BIND", "SUB_CONNECT", "PUB_BIND", "PUB_CONNECT", "PAIR_BIND", "PAIR_CONNECT", "ROUTER_BIND", "DEALER_CONNECT"], "default": "PULL_CONNECT", "default_random": false, "help": "The socket type for input port", "name": "socket_in", "option_strings": ["--socket-in"], "required": false, "type": "str"}, {"choices": ["PULL_BIND", "PULL_CONNECT", "PUSH_BIND", "PUSH_CONNECT", "SUB_BIND", "SUB_CONNECT", "PUB_BIND", "PUB_CONNECT", "PAIR_BIND", "PAIR_CONNECT", "ROUTER_BIND", "DEALER_CONNECT"], "default": "PUSH_CONNECT", "default_random": false, "help": "The socket type for output port", "name": "socket_out", "option_strings": ["--socket-out"], "required": false, "type": "str"}, {"choices": null, "default": 240, "default_random": false, "help": "Serialize the model in the pod every n seconds if model changes. -1 means --read-only. ", "name": "dump_interval", "option_strings": ["--dump-interval"], "required": false, "type": "int"}, {"choices": null, "default": true, "default_random": false, "help": "If set, do not allow the pod to modify the model, dump_interval will be ignored", "name": "read_only", "option_strings": ["--read-only"], "required": false, "type": "bool"}, {"choices": null, "default": -1, "default_random": false, "help": "The memory high watermark of this pod in Gigabytes, pod will restart when this is reached. -1 means no restriction", "name": "memory_hwm", "option_strings": ["--memory-hwm"], "required": false, "type": "int"}, {"choices": ["IGNORE", "SKIP_EXECUTOR", "SKIP_HANDLE", "THROW_EARLY"], "default": "IGNORE", "default_random": false, "help": "\nThe skip strategy on exceptions.\n\n- IGNORE: Ignore it, keep running all Drivers & Executors logics in the sequel flow\n- SKIP_EXECUTOR: Skip all Executors in the sequel, but drivers are still called\n- SKIP_HANDLE: Skip all Drivers & Executors in the sequel, only `pre_hook` and `post_hook` are called\n- THROW_EARLY: Immediately throw the exception, the sequel flow will not be running at all \n \nNote, `IGNORE`, `SKIP_EXECUTOR` and `SKIP_HANDLE` do not guarantee the success execution in the sequel flow. If something \nis wrong in the upstream, it is hard to carry this exception and moving forward without any side-effect.\n", "name": "on_error_strategy", "option_strings": ["--on-error-strategy"], "required": false, "type": "str"}, {"choices": null, "default": -1, "default_random": false, "help": "The maximum send and receive size for gRPC server in bytes, -1 means unlimited", "name": "max_message_size", "option_strings": ["--max-message-size"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, respect the http_proxy and https_proxy environment variables. otherwise, it will unset these proxy variables before start. gRPC seems to prefer no proxy", "name": "proxy", "option_strings": ["--proxy"], "required": false, "type": "bool"}, {"choices": null, "default": 50, "default_random": false, "help": "The number of pre-fetched requests from the client", "name": "prefetch", "option_strings": ["--prefetch"], "required": false, "type": "int"}, {"choices": null, "default": 1, "default_random": false, "help": "The number of additional requests to fetch on every receive", "name": "prefetch_on_recv", "option_strings": ["--prefetch-on-recv"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, use RESTful interface instead of gRPC as the main interface", "name": "restful", "option_strings": ["--restful", "--rest-api"], "required": false, "type": "bool"}, {"choices": ["NONE", "LZ4", "ZLIB", "GZIP", "BZ2", "LZMA"], "default": "LZ4", "default_random": false, "help": "\nThe compress algorithm used over the entire Flow. \n\nNote that this is not necessarily effective, it depends on the settings of `--compress-lwm` and `compress-hwm`", "name": "compress", "option_strings": ["--compress"], "required": false, "type": "str"}, {"choices": null, "default": 1024, "default_random": false, "help": "The original message size must be larger than this number to trigger the compress algorithm, -1 means disable compression.", "name": "compress_min_bytes", "option_strings": ["--compress-min-bytes"], "required": false, "type": "int"}, {"choices": null, "default": 1.1, "default_random": false, "help": "The compression ratio (uncompressed_size/compressed_size) must be higher than this number to trigger the compress algorithm.", "name": "compress_min_ratio", "option_strings": ["--compress-min-ratio"], "required": false, "type": "float"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address of the runtime, by default it is 0.0.0.0.", "name": "host", "option_strings": ["--host"], "required": false, "type": "str"}, {"choices": null, "default": 53689, "default_factory": "random_port", "default_random": true, "help": "The port of the host exposed to the public", "name": "port_expose", "option_strings": ["--port-expose"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "The Pea attempts to terminate all of its Runtime child processes/threads on existing. setting it to true basically tell the Pea do not wait on the Runtime when closing", "name": "daemon", "option_strings": ["--daemon"], "required": false, "type": "bool"}, {"choices": ["THREAD", "PROCESS"], "default": "PROCESS", "default_random": false, "help": "The parallel backend of the runtime inside the Pea", "name": "runtime_backend", "option_strings": ["--runtime-backend", "--runtime"], "required": false, "type": "str"}, {"choices": ["GRPCRuntime", "RESTRuntime", "ContainerRuntime", "JinadRuntime", "SSHRuntime", "ZEDRuntime"], "default": "GRPCRuntime", "default_random": false, "help": "The runtime class to run inside the Pea", "name": "runtime_cls", "option_strings": ["--runtime-cls"], "required": false, "type": "str"}, {"choices": null, "default": 60000, "default_random": false, "help": "The timeout in milliseconds of a Pea waits for the runtime to be ready, -1 for waiting forever", "name": "timeout_ready", "option_strings": ["--timeout-ready"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, expose the public IP address to remote when necessary, by default it exposesprivate IP address, which only allows accessing under the same network/subnet. Important to set this to true when the Pea will receive input connections from remote Peas", "name": "expose_public", "option_strings": ["--expose-public"], "required": false, "type": "bool"}]}, {"name": "ping", "options": [{"choices": null, "default": null, "default_random": false, "help": "The host address of the target Pea, e.g. 0.0.0.0", "name": "host", "option_strings": [], "required": true, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The control port of the target pod/pea", "name": "port", "option_strings": [], "required": true, "type": "int"}, {"choices": null, "default": 3000, "default_random": false, "help": "\nTimeout in millisecond of one check\n-1 for waiting forever\n", "name": "timeout", "option_strings": ["--timeout"], "required": false, "type": "int"}, {"choices": null, "default": 3, "default_random": false, "help": "The max number of tried health checks before exit with exit code 1", "name": "retries", "option_strings": ["--retries"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, print the response when received", "name": "print_response", "option_strings": ["--print-response"], "required": false, "type": "bool"}]}, {"name": "check", "options": [{"choices": null, "default": null, "default_random": false, "help": "The markdown file path for all executors summary", "name": "summary_exec", "option_strings": ["--summary-exec"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The markdown file path for all drivers summary", "name": "summary_driver", "option_strings": ["--summary-driver"], "required": false, "type": "str"}]}, {"name": "hub", "options": []}, {"name": "pea", "options": [{"choices": null, "default": null, "default_random": false, "help": "\nThe name of this object.\n\nThis will be used in the following places:\n- how you refer to this object in Python/YAML/CLI\n- log message\n- ...\n\nWhen not given, then the default naming strategy will apply.\n ", "name": "name", "option_strings": ["--name"], "required": false, "type": "str"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/logging.default.yml", "default_random": false, "help": "The YAML config of the logger used in this object.", "name": "log_config", "option_strings": ["--log-config"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "If set, then exception stack information to be added to the logging message, useful in debugging", "name": "hide_exc_info", "option_strings": ["--hide-exc-info"], "required": false, "type": "bool"}, {"choices": null, "default": 35511, "default_factory": "random_port", "default_random": true, "help": "The port for controlling the runtime, default a random port between [49152, 65535]", "name": "port_ctrl", "option_strings": ["--port-ctrl"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, use ipc protocol for control socket", "name": "ctrl_with_ipc", "option_strings": ["--ctrl-with-ipc"], "required": false, "type": "bool"}, {"choices": null, "default": 5000, "default_random": false, "help": "The timeout in milliseconds of the control request, -1 for waiting forever", "name": "timeout_ctrl", "option_strings": ["--timeout-ctrl"], "required": false, "type": "int"}, {"choices": null, "default": null, "default_random": false, "help": "The SSH server through which the tunnel will be created, can actually be a fully specified `user@server:port` ssh url.", "name": "ssh_server", "option_strings": ["--ssh-server"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "This specifies a key to be used in ssh login, default None. regular default ssh keys will be used without specifying this argument.", "name": "ssh_keyfile", "option_strings": ["--ssh-keyfile"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The ssh password to the ssh server.", "name": "ssh_password", "option_strings": ["--ssh-password"], "required": false, "type": "str"}, {"choices": null, "default": "_pass", "default_random": false, "help": "\nThe config of the executor, it could be one of the followings: \n- an Executor-level YAML file path (*.yml/yaml) \n- a name of a class inherited from `jina.Executor`\n- a docker image (must start with `docker://`)\n- builtin executors, e.g. `_pass`, `_logforward`, `_merge` \n- the string literal of a YAML config (must start with `!`)\n- the string literal of a JSON config\n- the string literal of a YAML driver config (must start with `- !!`)\n\nWhen use it under Python, one can use the following values additionally:\n- a Python dict that represents the config\n- a text file stream has `.read()` interface\n", "name": "uses", "option_strings": ["--uses"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "\nThe customized python modules need to be imported before loading the executor\n\nNote, when importing multiple files and there is a dependency between them, then one has to write the dependencies in \nreverse order. That is, if `__init__.py` depends on `A.py`, which again depends on `B.py`, then you need to write: \n\n--py-modules __init__.py --py-modules B.py --py-modules A.py\n\n", "name": "py_modules", "option_strings": ["--py-modules"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": 37407, "default_factory": "random_port", "default_random": true, "help": "The port for input data, default a random port between [49152, 65535]", "name": "port_in", "option_strings": ["--port-in"], "required": false, "type": "int"}, {"choices": null, "default": 47217, "default_factory": "random_port", "default_random": true, "help": "The port for output data, default a random port between [49152, 65535]", "name": "port_out", "option_strings": ["--port-out"], "required": false, "type": "int"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address for input, by default it is 0.0.0.0", "name": "host_in", "option_strings": ["--host-in"], "required": false, "type": "str"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address for output, by default it is 0.0.0.0", "name": "host_out", "option_strings": ["--host-out"], "required": false, "type": "str"}, {"choices": ["PULL_BIND", "PULL_CONNECT", "PUSH_BIND", "PUSH_CONNECT", "SUB_BIND", "SUB_CONNECT", "PUB_BIND", "PUB_CONNECT", "PAIR_BIND", "PAIR_CONNECT", "ROUTER_BIND", "DEALER_CONNECT"], "default": "PULL_BIND", "default_random": false, "help": "The socket type for input port", "name": "socket_in", "option_strings": ["--socket-in"], "required": false, "type": "str"}, {"choices": ["PULL_BIND", "PULL_CONNECT", "PUSH_BIND", "PUSH_CONNECT", "SUB_BIND", "SUB_CONNECT", "PUB_BIND", "PUB_CONNECT", "PAIR_BIND", "PAIR_CONNECT", "ROUTER_BIND", "DEALER_CONNECT"], "default": "PUSH_BIND", "default_random": false, "help": "The socket type for output port", "name": "socket_out", "option_strings": ["--socket-out"], "required": false, "type": "str"}, {"choices": null, "default": 240, "default_random": false, "help": "Serialize the model in the pod every n seconds if model changes. -1 means --read-only. ", "name": "dump_interval", "option_strings": ["--dump-interval"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, do not allow the pod to modify the model, dump_interval will be ignored", "name": "read_only", "option_strings": ["--read-only"], "required": false, "type": "bool"}, {"choices": null, "default": -1, "default_random": false, "help": "The memory high watermark of this pod in Gigabytes, pod will restart when this is reached. -1 means no restriction", "name": "memory_hwm", "option_strings": ["--memory-hwm"], "required": false, "type": "int"}, {"choices": ["IGNORE", "SKIP_EXECUTOR", "SKIP_HANDLE", "THROW_EARLY"], "default": "IGNORE", "default_random": false, "help": "\nThe skip strategy on exceptions.\n\n- IGNORE: Ignore it, keep running all Drivers & Executors logics in the sequel flow\n- SKIP_EXECUTOR: Skip all Executors in the sequel, but drivers are still called\n- SKIP_HANDLE: Skip all Drivers & Executors in the sequel, only `pre_hook` and `post_hook` are called\n- THROW_EARLY: Immediately throw the exception, the sequel flow will not be running at all \n \nNote, `IGNORE`, `SKIP_EXECUTOR` and `SKIP_HANDLE` do not guarantee the success execution in the sequel flow. If something \nis wrong in the upstream, it is hard to carry this exception and moving forward without any side-effect.\n", "name": "on_error_strategy", "option_strings": ["--on-error-strategy"], "required": false, "type": "str"}, {"choices": null, "default": "BaseExecutor", "default_random": false, "help": "\nThe config runs inside the Docker container. \n\nSyntax and function are the same as `--uses`. This is designed when `--uses=\"docker://...\"` this config is passed to \nthe Docker container.\n", "name": "uses_internal", "option_strings": ["--uses-internal"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The entrypoint command overrides the ENTRYPOINT in Docker image. when not set then the Docker image ENTRYPOINT takes effective.", "name": "entrypoint", "option_strings": ["--entrypoint"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "Pull the latest image before running", "name": "pull_latest", "option_strings": ["--pull-latest"], "required": false, "type": "bool"}, {"choices": null, "default": null, "default_random": false, "help": "\nThe path on the host to be mounted inside the container. \n\nNote, \n- If separated by `:`, then the first part will be considered as the local host path and the second part is the path in the container system. \n- If no split provided, then the basename of that directory will be mounted into container's root path, e.g. `--volumes=\"/user/test/my-workspace\"` will be mounted into `/my-workspace` inside the container. \n- All volumes are mounted with read-write mode.\n", "name": "volumes", "option_strings": ["--volumes"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address of the runtime, by default it is 0.0.0.0.", "name": "host", "option_strings": ["--host"], "required": false, "type": "str"}, {"choices": null, "default": 33203, "default_factory": "random_port", "default_random": true, "help": "The port of the host exposed to the public", "name": "port_expose", "option_strings": ["--port-expose"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "Do not display the streaming of remote logs on local console", "name": "silent_remote_logs", "option_strings": ["--silent-remote-logs"], "required": false, "type": "bool"}, {"choices": null, "default": null, "default_random": false, "help": "\nThe files on the host to be uploaded to the remote\nworkspace. This can be useful when your Pod has more\nfile dependencies beyond a single YAML file, e.g.\nPython files, data files.\n\nNote,\n- currently only flatten structure is supported, which means if you upload `[./foo/a.py, ./foo/b.pp, ./bar/c.yml]`, then they will be put under the _same_ workspace on the remote, losing all hierarchies.\n- by default, `--uses` YAML file is always uploaded.\n- uploaded files are by default isolated across the runs. To ensure files are submitted to the same workspace across different runs, use `--workspace-id` to specify the workspace.\n", "name": "upload_files", "option_strings": ["--upload-files"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": "9fdc1b8a-c831-43ba-a138-bd4f02171509", "default_factory": "random_identity", "default_random": true, "help": "the UUID for identifying the workspace. When not given a random id will be assigned.Multiple Pea/Pod/Flow will work under the same workspace if they share the same `workspace-id`.", "name": "workspace_id", "option_strings": ["--workspace-id"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "The Pea attempts to terminate all of its Runtime child processes/threads on existing. setting it to true basically tell the Pea do not wait on the Runtime when closing", "name": "daemon", "option_strings": ["--daemon"], "required": false, "type": "bool"}, {"choices": ["THREAD", "PROCESS"], "default": "PROCESS", "default_random": false, "help": "The parallel backend of the runtime inside the Pea", "name": "runtime_backend", "option_strings": ["--runtime-backend", "--runtime"], "required": false, "type": "str"}, {"choices": ["GRPCRuntime", "RESTRuntime", "ContainerRuntime", "JinadRuntime", "SSHRuntime", "ZEDRuntime"], "default": "ZEDRuntime", "default_random": false, "help": "The runtime class to run inside the Pea", "name": "runtime_cls", "option_strings": ["--runtime-cls"], "required": false, "type": "str"}, {"choices": null, "default": 60000, "default_random": false, "help": "The timeout in milliseconds of a Pea waits for the runtime to be ready, -1 for waiting forever", "name": "timeout_ready", "option_strings": ["--timeout-ready"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, expose the public IP address to remote when necessary, by default it exposesprivate IP address, which only allows accessing under the same network/subnet. Important to set this to true when the Pea will receive input connections from remote Peas", "name": "expose_public", "option_strings": ["--expose-public"], "required": false, "type": "bool"}]}, {"name": "log", "options": [{"choices": null, "default": "(.*@\\d+)\\[", "default_random": false, "help": "The regular expression for grouping logs", "name": "groupby_regex", "option_strings": ["--groupby-regex"], "required": false, "type": "str"}, {"choices": null, "default": 5, "default_random": false, "help": "The refresh time interval in seconds, set to -1 to persist all grouped logs", "name": "refresh_time", "option_strings": ["--refresh-time"], "required": false, "type": "int"}]}, {"name": "client", "options": [{"choices": null, "default": 100, "default_random": false, "help": "The number of Documents in each Request.", "name": "request_size", "option_strings": ["--request-size"], "required": false, "type": "int"}, {"choices": ["INDEX", "SEARCH", "DELETE", "UPDATE", "CONTROL", "TRAIN"], "default": null, "default_random": false, "help": "\nThe Request mode. This applies to all Requests sent from this client.\n\n- INDEX: store new Documents into the system\n- SEARCH: query Documents from an indexed system\n- UPDATE: update existing Documents in an indexed system\n- DELETE: delete existing Documents from an indexed system\n- CONTROL: (advance) control Pea/Pod such as shutdown, status\n- TRAIN: (experimental) train the system\n ", "name": "mode", "option_strings": ["--mode"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The number of results will be returned. Sorted by their scores descendingly.", "name": "top_k", "option_strings": ["--top-k"], "required": false, "type": "int"}, {"choices": null, "default": null, "default_random": false, "help": "MIME type of the input Documents.", "name": "mime_type", "option_strings": ["--mime-type"], "required": false, "type": "str"}, {"choices": null, "default": false, "default_random": false, "help": "If set, a Request that causes error will be logged only without blocking the further requests.", "name": "continue_on_error", "option_strings": ["--continue-on-error"], "required": false, "type": "bool"}, {"choices": null, "default": false, "default_random": false, "help": "\nThis feature is only used for AsyncClient.\n\nIf set, the results of all Requests will be returned as a list. This is useful when one wants \nprocess Responses in bulk instead of using callback. \n ", "name": "return_results", "option_strings": ["--return-results"], "required": false, "type": "bool"}, {"choices": null, "default": -1, "default_random": false, "help": "The maximum send and receive size for gRPC server in bytes, -1 means unlimited", "name": "max_message_size", "option_strings": ["--max-message-size"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, respect the http_proxy and https_proxy environment variables. otherwise, it will unset these proxy variables before start. gRPC seems to prefer no proxy", "name": "proxy", "option_strings": ["--proxy"], "required": false, "type": "bool"}, {"choices": null, "default": 50, "default_random": false, "help": "The number of pre-fetched requests from the client", "name": "prefetch", "option_strings": ["--prefetch"], "required": false, "type": "int"}, {"choices": null, "default": 1, "default_random": false, "help": "The number of additional requests to fetch on every receive", "name": "prefetch_on_recv", "option_strings": ["--prefetch-on-recv"], "required": false, "type": "int"}, {"choices": null, "default": false, "default_random": false, "help": "If set, use RESTful interface instead of gRPC as the main interface", "name": "restful", "option_strings": ["--restful", "--rest-api"], "required": false, "type": "bool"}, {"choices": ["NONE", "LZ4", "ZLIB", "GZIP", "BZ2", "LZMA"], "default": "LZ4", "default_random": false, "help": "\nThe compress algorithm used over the entire Flow. \n\nNote that this is not necessarily effective, it depends on the settings of `--compress-lwm` and `compress-hwm`", "name": "compress", "option_strings": ["--compress"], "required": false, "type": "str"}, {"choices": null, "default": 1024, "default_random": false, "help": "The original message size must be larger than this number to trigger the compress algorithm, -1 means disable compression.", "name": "compress_min_bytes", "option_strings": ["--compress-min-bytes"], "required": false, "type": "int"}, {"choices": null, "default": 1.1, "default_random": false, "help": "The compression ratio (uncompressed_size/compressed_size) must be higher than this number to trigger the compress algorithm.", "name": "compress_min_ratio", "option_strings": ["--compress-min-ratio"], "required": false, "type": "float"}, {"choices": null, "default": "0.0.0.0", "default_random": false, "help": "The host address of the runtime, by default it is 0.0.0.0.", "name": "host", "option_strings": ["--host"], "required": false, "type": "str"}, {"choices": null, "default": 35121, "default_factory": "random_port", "default_random": true, "help": "The port of the host exposed to the public", "name": "port_expose", "option_strings": ["--port-expose"], "required": false, "type": "int"}]}, {"name": "export-api", "options": [{"choices": null, "default": null, "default_random": false, "help": "The YAML file path for storing the exported API", "name": "yaml_path", "option_strings": ["--yaml-path"], "required": false, "type": "typing.List[str]"}, {"choices": null, "default": null, "default_random": false, "help": "The JSON file path for storing the exported API", "name": "json_path", "option_strings": ["--json-path"], "required": false, "type": "typing.List[str]"}]}, {"name": "hello-world-chatbot", "options": [{"choices": null, "default": "46114aa2-cac8-4ec0-b9e9-f40c811a2163", "default_factory": "random_identity", "default_random": true, "help": "The workdir for hello-world demoall data, indices, shards and outputs will be saved there", "name": "workdir", "option_strings": ["--workdir"], "required": false, "type": "str"}, {"choices": null, "default": null, "default_random": false, "help": "The proxy when downloading sample data", "name": "download_proxy", "option_strings": ["--download-proxy"], "required": false, "type": "str"}, {"choices": null, "default": "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/jina/resources/helloworld.flow.index.yml", "default_random": false, "help": "The yaml path of the index flow", "name": "uses", "option_strings": ["--uses"], "required": false, "type": "str"}, {"choices": null, "default": "https://api.jina.ai/demo/chatbot/dataset.csv", "default_random": false, "help": "The url of index csv data", "name": "index_data_url", "option_strings": ["--index-data-url"], "required": false, "type": "str"}, {"choices": null, "default": "https://api.jina.ai/demo/chatbot/", "default_random": false, "help": "The url of chatbot demo page", "name": "demo_url", "option_strings": ["--demo-url"], "required": false, "type": "str"}, {"choices": null, "default": 8080, "default_random": false, "help": "The port of the host exposed to the public", "name": "port_expose", "option_strings": ["--port-expose"], "required": false, "type": "int"}, {"choices": null, "default": 2, "default_random": false, "help": "The number of parallel when index and query", "name": "parallel", "option_strings": ["--parallel"], "required": false, "type": "int"}]}], "name": "Jina", "revision": null, "source": "https://github.com/jina-ai/jina/tree/master", "url": "https://jina.ai", "vendor": "Jina AI Limited", "version": "1.0.0"}