From dc2cd6622c20c5d376cb3343187617d3be04c310 Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 11:43:27 -0400 Subject: [PATCH 1/9] Fix conflict --- docs/data-ai/_index.md | 8 ++++---- docs/data-ai/ai/_index.md | 4 ++-- docs/data-ai/ai/deploy.md | 2 +- docs/data-ai/ai/train-tflite.md | 2 +- docs/data-ai/ai/train.md | 2 +- .../ai/{advanced => }/upload-external-data.md | 2 +- docs/data-ai/capture-data/advanced/_index.md | 8 -------- docs/data-ai/capture-data/capture-other-sources.md | 12 ------------ docs/data-ai/capture-data/capture-sync.md | 8 ++++---- docs/data-ai/capture-data/conditional-sync.md | 4 ++-- docs/data-ai/capture-data/filter-before-sync.md | 2 +- .../capture-data/{advanced => }/how-sync-works.md | 6 +++--- docs/data-ai/data/advanced/_index.md | 8 -------- docs/data-ai/data/{advanced => }/alert-data.md | 2 +- docs/data-ai/data/export.md | 4 ++-- docs/data-ai/data/query.md | 2 +- docs/data-ai/data/visualize.md | 2 +- docs/data-ai/inference/_index.md | 10 ++++++++++ docs/data-ai/{ai => inference}/act.md | 2 +- docs/data-ai/{ai => inference}/alert.md | 2 +- docs/data-ai/{ai => inference}/run-inference.md | 2 +- docs/data-ai/quickstart/_index.md | 10 ++++++++++ docs/data-ai/quickstart/capture.md | 9 +++++++++ docs/data-ai/quickstart/infer.md | 9 +++++++++ docs/data-ai/quickstart/setup.md | 9 +++++++++ .../advanced-data-capture-sync.md | 8 ++++---- .../data-ai/{ai/advanced => reference/api}/_index.md | 6 +++--- docs/data-ai/reference/{ => api}/data-client.md | 0 .../reference/{ => api}/data-management-client.md | 0 docs/data-ai/reference/{ => api}/ml-model-client.md | 0 .../reference/{ => api}/ml-training-client.md | 0 docs/data-ai/reference/{ => api}/vision-client.md | 0 docs/data-ai/reference/triggers-configuration.md | 4 ++-- docs/dev/reference/changelog.md | 4 ++-- .../troubleshoot/teleoperate/default-interface.md | 2 +- docs/operate/mobility/use-input-to-act.md | 4 ++-- docs/operate/reference/components/camera/webcam.md | 2 +- docs/operate/reference/services/vision/_index.md | 2 +- docs/tutorials/projects/helmet.md | 2 +- 39 files changed, 92 insertions(+), 73 deletions(-) rename docs/data-ai/ai/{advanced => }/upload-external-data.md (99%) delete mode 100644 docs/data-ai/capture-data/advanced/_index.md delete mode 100644 docs/data-ai/capture-data/capture-other-sources.md rename docs/data-ai/capture-data/{advanced => }/how-sync-works.md (97%) delete mode 100644 docs/data-ai/data/advanced/_index.md rename docs/data-ai/data/{advanced => }/alert-data.md (99%) create mode 100644 docs/data-ai/inference/_index.md rename docs/data-ai/{ai => inference}/act.md (99%) rename docs/data-ai/{ai => inference}/alert.md (98%) rename docs/data-ai/{ai => inference}/run-inference.md (99%) create mode 100644 docs/data-ai/quickstart/_index.md create mode 100644 docs/data-ai/quickstart/capture.md create mode 100644 docs/data-ai/quickstart/infer.md create mode 100644 docs/data-ai/quickstart/setup.md rename docs/data-ai/{capture-data/advanced => reference}/advanced-data-capture-sync.md (98%) rename docs/data-ai/{ai/advanced => reference/api}/_index.md (50%) rename docs/data-ai/reference/{ => api}/data-client.md (100%) rename docs/data-ai/reference/{ => api}/data-management-client.md (100%) rename docs/data-ai/reference/{ => api}/ml-model-client.md (100%) rename docs/data-ai/reference/{ => api}/ml-training-client.md (100%) rename docs/data-ai/reference/{ => api}/vision-client.md (100%) diff --git a/docs/data-ai/_index.md b/docs/data-ai/_index.md index 9554e6f352..6d5d541d2f 100644 --- a/docs/data-ai/_index.md +++ b/docs/data-ai/_index.md @@ -37,7 +37,7 @@ You can also monitor your machines through teleop, power your application logic, {{< cards >}} {{% card link="/data-ai/data/query/" noimage="true" %}} {{% card link="/data-ai/data/visualize/" noimage="true" %}} -{{% card link="/data-ai/data/advanced/alert-data/" noimage="true" %}} +{{% card link="/data-ai/data/alert-data/" noimage="true" %}} {{% card link="/data-ai/data/export/" noimage="true" %}} {{< /cards >}} {{< /how-to-expand >}} @@ -48,9 +48,9 @@ You can also monitor your machines through teleop, power your application logic, {{% card link="/data-ai/ai/train-tflite/" noimage="true" %}} {{% card link="/data-ai/ai/train/" noimage="true" %}} {{% card link="/data-ai/ai/deploy/" noimage="true" %}} -{{% card link="/data-ai/ai/run-inference/" noimage="true" %}} -{{% card link="/data-ai/ai/alert/" noimage="true" %}} -{{% card link="/data-ai/ai/act/" noimage="true" %}} +{{% card link="/data-ai/inference/run-inference/" noimage="true" %}} +{{% card link="/data-ai/inference/alert/" noimage="true" %}} +{{% card link="/data-ai/inference/act/" noimage="true" %}} {{< /cards >}} {{< /how-to-expand >}} diff --git a/docs/data-ai/ai/_index.md b/docs/data-ai/ai/_index.md index a7a53e72e5..9060101b00 100644 --- a/docs/data-ai/ai/_index.md +++ b/docs/data-ai/ai/_index.md @@ -1,6 +1,6 @@ --- -linkTitle: "Leverage AI" -title: "Leverage AI" +linkTitle: "Train an ML model" +title: "Train an ML model" weight: 300 layout: "empty" type: "docs" diff --git a/docs/data-ai/ai/deploy.md b/docs/data-ai/ai/deploy.md index be88f3fa72..811b9bd284 100644 --- a/docs/data-ai/ai/deploy.md +++ b/docs/data-ai/ai/deploy.md @@ -83,7 +83,7 @@ The service works with models trained inside and outside the Viam app: On its own the ML model service only runs the model. After deploying your model, you need to configure an additional service to use the deployed model. For example, you can configure an [`mlmodel` vision service](/operate/reference/services/vision/) to visualize the inferences your model makes. -Follow our docs to [run inference](/data-ai/ai/run-inference/) to add an `mlmodel` vision service and see inferences. +Follow our docs to [run inference](/data-ai/inference/run-inference/) to add an `mlmodel` vision service and see inferences. For other use cases, consider [creating custom functionality with a module](/operate/get-started/other-hardware/). diff --git a/docs/data-ai/ai/train-tflite.md b/docs/data-ai/ai/train-tflite.md index 2bc624e051..848243b350 100644 --- a/docs/data-ai/ai/train-tflite.md +++ b/docs/data-ai/ai/train-tflite.md @@ -154,7 +154,7 @@ To capture images of edge cases and re-train your model using those images, comp ## Next steps Now your machine can make inferences about its environment. -The next step is to [deploy](/data-ai/ai/deploy/) the ML model and then [act](/data-ai/ai/act/) or [alert](/data-ai/ai/alert/) based on these inferences. +The next step is to [deploy](/data-ai/ai/deploy/) the ML model and then [act](/data-ai/inference/act/) or [alert](/data-ai/inference/alert/) based on these inferences. See the following tutorials for examples of using machine learning models to make your machine do things based on its inferences about its environment: diff --git a/docs/data-ai/ai/train.md b/docs/data-ai/ai/train.md index 9d7bddf16e..50eb7359b9 100644 --- a/docs/data-ai/ai/train.md +++ b/docs/data-ai/ai/train.md @@ -846,4 +846,4 @@ You can also view your training jobs' logs with the [`viam train logs`](/dev/too {{< /table >}} To use your new model with machines, you must [deploy it](/data-ai/ai/deploy/) with the appropriate ML model service. -Then you can use another service, such as the vision service, to [run inference](/data-ai/ai/run-inference/). +Then you can use another service, such as the vision service, to [run inference](/data-ai/inference/run-inference/). diff --git a/docs/data-ai/ai/advanced/upload-external-data.md b/docs/data-ai/ai/upload-external-data.md similarity index 99% rename from docs/data-ai/ai/advanced/upload-external-data.md rename to docs/data-ai/ai/upload-external-data.md index 5368ebd947..000ac02a5a 100644 --- a/docs/data-ai/ai/advanced/upload-external-data.md +++ b/docs/data-ai/ai/upload-external-data.md @@ -13,7 +13,7 @@ aliases: - /how-tos/upload-data/ date: "2024-12-04" description: "Upload data to the Viam app from your local computer or mobile device using the data client API, Viam CLI, or Viam mobile app." -prev: "/data-ai/ai/act/" +prev: "/data-ai/inference/act/" --- When you configure the data management service, Viam automatically uploads data from the default directory `~/.viam/capture` and any directory you configured. diff --git a/docs/data-ai/capture-data/advanced/_index.md b/docs/data-ai/capture-data/advanced/_index.md deleted file mode 100644 index f004c032cf..0000000000 --- a/docs/data-ai/capture-data/advanced/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -linkTitle: "Advanced" -title: "Advanced" -weight: 200 -layout: "empty" -type: "docs" -empty_node: true ---- diff --git a/docs/data-ai/capture-data/capture-other-sources.md b/docs/data-ai/capture-data/capture-other-sources.md deleted file mode 100644 index 3f8ef32e65..0000000000 --- a/docs/data-ai/capture-data/capture-other-sources.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -linkTitle: "Capture other data sources" -title: "Capture and sync other data sources" -tags: ["data management", "data", "services"] -weight: 12 -layout: "docs" -type: "docs" -platformarea: ["data"] -description: "TODO" -date: "2024-12-17" -draft: true ---- diff --git a/docs/data-ai/capture-data/capture-sync.md b/docs/data-ai/capture-data/capture-sync.md index 18a8bb4331..71ff93e4be 100644 --- a/docs/data-ai/capture-data/capture-sync.md +++ b/docs/data-ai/capture-data/capture-sync.md @@ -80,7 +80,7 @@ Some models do not support all options, for example webcams do not capture point {{< /expand >}} -For instructions on configuring data capture and sync with JSON, go to [Advanced data capture and sync configurations](/data-ai/capture-data/advanced/advanced-data-capture-sync/) and follow the instructions for JSON examples. +For instructions on configuring data capture and sync with JSON, go to [Advanced data capture and sync configurations](/data-ai/reference/advanced-data-capture-sync/) and follow the instructions for JSON examples. ## View captured data @@ -121,12 +121,12 @@ For instructions on configuring data capture and sync with JSON, go to [Advanced For other ways to control data synchronization, see: - [Conditional sync](/data-ai/capture-data/conditional-sync/) -- [Retention policies](/data-ai/capture-data/advanced/advanced-data-capture-sync/#cloud-data-retention) -- [Sync optimization](/data-ai/capture-data/advanced/advanced-data-capture-sync/#sync-optimization) +- [Retention policies](/data-ai/reference/advanced-data-capture-sync/#cloud-data-retention) +- [Sync optimization](/data-ai/reference/advanced-data-capture-sync/#sync-optimization) {{< /alert >}} ## Next steps -For more information on available configuration attributes and options like capturing directly to MongoDB or conditional sync, see [Advanced data capture and sync configurations](/data-ai/capture-data/advanced/advanced-data-capture-sync/). +For more information on available configuration attributes and options like capturing directly to MongoDB or conditional sync, see [Advanced data capture and sync configurations](/data-ai/reference/advanced-data-capture-sync/). To leverage AI, you can now [create a dataset](/data-ai/ai/create-dataset/) with the data you've captured. diff --git a/docs/data-ai/capture-data/conditional-sync.md b/docs/data-ai/capture-data/conditional-sync.md index a7a1d1091e..419b378b70 100644 --- a/docs/data-ai/capture-data/conditional-sync.md +++ b/docs/data-ai/capture-data/conditional-sync.md @@ -1,5 +1,5 @@ --- -title: "Conditional cloud sync" +title: "Conditional sync" linkTitle: "Conditional sync" description: "Trigger cloud sync to sync captured data when custom conditions are met." type: "docs" @@ -15,7 +15,7 @@ aliases: languages: [] viamresources: ["sensor", "data_manager"] platformarea: ["data", "registry"] -next: /data-ai/capture-data/advanced/advanced-data-capture-sync/ +next: /data-ai/reference/advanced-data-capture-sync/ date: "2024-12-04" --- diff --git a/docs/data-ai/capture-data/filter-before-sync.md b/docs/data-ai/capture-data/filter-before-sync.md index 0f44042e47..130a4ef485 100644 --- a/docs/data-ai/capture-data/filter-before-sync.md +++ b/docs/data-ai/capture-data/filter-before-sync.md @@ -1,5 +1,5 @@ --- -linkTitle: "Filter data" +linkTitle: "Filter captured data" title: "Filter data before sync" weight: 13 layout: "docs" diff --git a/docs/data-ai/capture-data/advanced/how-sync-works.md b/docs/data-ai/capture-data/how-sync-works.md similarity index 97% rename from docs/data-ai/capture-data/advanced/how-sync-works.md rename to docs/data-ai/capture-data/how-sync-works.md index a6f943f2af..a024cec59e 100644 --- a/docs/data-ai/capture-data/advanced/how-sync-works.md +++ b/docs/data-ai/capture-data/how-sync-works.md @@ -2,13 +2,13 @@ linkTitle: "How sync works" title: "How sync works" tags: ["data management", "data", "services"] -weight: 12 +weight: 10 layout: "docs" type: "docs" platformarea: ["data"] description: "Data capture and sync works differently for viam-server and viam-micro-server." date: "2024-12-18" -prev: "/data-ai/capture-data/advanced/advanced-data-capture-sync/" +prev: "/data-ai/reference/advanced-data-capture-sync/" --- Data capture and cloud sync works differently for `viam-server` and `viam-micro-server`. @@ -115,4 +115,4 @@ If your robot is offline and can't sync and your machine's disk fills up beyond For more information, see [Automatic data deletion details](/data-ai/capture-data/advanced/how-sync-works/) Data capture supports capturing tabular data directly to MongoDB in addition to capturing to disk. -For more information, see [Capture directly to MongoDB](/data-ai/capture-data/advanced/advanced-data-capture-sync/#capture-directly-to-your-own-mongodb-cluster). +For more information, see [Capture directly to MongoDB](/data-ai/reference/advanced-data-capture-sync/#capture-directly-to-your-own-mongodb-cluster). diff --git a/docs/data-ai/data/advanced/_index.md b/docs/data-ai/data/advanced/_index.md deleted file mode 100644 index f004c032cf..0000000000 --- a/docs/data-ai/data/advanced/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -linkTitle: "Advanced" -title: "Advanced" -weight: 200 -layout: "empty" -type: "docs" -empty_node: true ---- diff --git a/docs/data-ai/data/advanced/alert-data.md b/docs/data-ai/data/alert-data.md similarity index 99% rename from docs/data-ai/data/advanced/alert-data.md rename to docs/data-ai/data/alert-data.md index e3ff237bbe..bad60e5ff2 100644 --- a/docs/data-ai/data/advanced/alert-data.md +++ b/docs/data-ai/data/alert-data.md @@ -1,5 +1,5 @@ --- -linkTitle: "Alert on data" +linkTitle: "Alert" title: "Alert on data" weight: 60 layout: "docs" diff --git a/docs/data-ai/data/export.md b/docs/data-ai/data/export.md index 4d53b0be07..d093430ca9 100644 --- a/docs/data-ai/data/export.md +++ b/docs/data-ai/data/export.md @@ -1,5 +1,5 @@ --- -linkTitle: "Export data" +linkTitle: "Export" title: "Export data" weight: 40 description: "Download data from the Viam app using the data client API or the Viam CLI." @@ -15,7 +15,7 @@ aliases: viamresources: ["sensor", "data_manager"] platformarea: ["data", "cli"] date: "2024-12-03" -next: "/data-ai/data/advanced/alert-data/" +next: "/data-ai/data/alert-data/" --- You can download machine data from cloud storage to your computer with the Viam CLI. diff --git a/docs/data-ai/data/query.md b/docs/data-ai/data/query.md index e8ca14cb39..59a872cf82 100644 --- a/docs/data-ai/data/query.md +++ b/docs/data-ai/data/query.md @@ -1,5 +1,5 @@ --- -linkTitle: "Query data" +linkTitle: "Query" title: "Query data" weight: 20 layout: "docs" diff --git a/docs/data-ai/data/visualize.md b/docs/data-ai/data/visualize.md index d8e41de4d7..4c23f9e117 100644 --- a/docs/data-ai/data/visualize.md +++ b/docs/data-ai/data/visualize.md @@ -1,5 +1,5 @@ --- -linkTitle: "Visualize data" +linkTitle: "Visualize" title: "Visualize data" weight: 20 layout: "docs" diff --git a/docs/data-ai/inference/_index.md b/docs/data-ai/inference/_index.md new file mode 100644 index 0000000000..619950fa8b --- /dev/null +++ b/docs/data-ai/inference/_index.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Run inference" +title: "Run inference" +weight: 300 +layout: "empty" +type: "docs" +empty_node: true +open_on_desktop: true +header_only: true +--- diff --git a/docs/data-ai/ai/act.md b/docs/data-ai/inference/act.md similarity index 99% rename from docs/data-ai/ai/act.md rename to docs/data-ai/inference/act.md index 53dea9a2d4..a2974a8270 100644 --- a/docs/data-ai/ai/act.md +++ b/docs/data-ai/inference/act.md @@ -5,7 +5,7 @@ weight: 70 layout: "docs" type: "docs" description: "Use the vision service API to act based on inferences." -next: "/data-ai/ai/advanced/upload-external-data/" +next: "/data-ai/ai/upload-external-data/" --- You can use the [vision service API](/dev/reference/apis/services/vision/) to get information about your machine's inferences and program behavior based on that. diff --git a/docs/data-ai/ai/alert.md b/docs/data-ai/inference/alert.md similarity index 98% rename from docs/data-ai/ai/alert.md rename to docs/data-ai/inference/alert.md index 9f9cf64688..26ed1e4437 100644 --- a/docs/data-ai/ai/alert.md +++ b/docs/data-ai/inference/alert.md @@ -21,7 +21,7 @@ For example, a trigger could alert you when a camera feed detects an anomaly. {{< expand "A configured camera and vision service." >}} -Follow the instructions to [configure a camera](/operate/reference/components/camera/) and [run inference](/data-ai/ai/run-inference/). +Follow the instructions to [configure a camera](/operate/reference/components/camera/) and [run inference](/data-ai/inference/run-inference/). {{< /expand >}} diff --git a/docs/data-ai/ai/run-inference.md b/docs/data-ai/inference/run-inference.md similarity index 99% rename from docs/data-ai/ai/run-inference.md rename to docs/data-ai/inference/run-inference.md index 7466107b97..8341275bbf 100644 --- a/docs/data-ai/ai/run-inference.md +++ b/docs/data-ai/inference/run-inference.md @@ -1,6 +1,6 @@ --- linkTitle: "Run inference" -title: "Run inference" +title: "Run inference on a model" weight: 50 layout: "docs" type: "docs" diff --git a/docs/data-ai/quickstart/_index.md b/docs/data-ai/quickstart/_index.md new file mode 100644 index 0000000000..a28ac793ff --- /dev/null +++ b/docs/data-ai/quickstart/_index.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Quickstart" +title: "Quickstart" +weight: 1 +layout: "empty" +type: "docs" +empty_node: true +open_on_desktop: true +header_only: true +--- diff --git a/docs/data-ai/quickstart/capture.md b/docs/data-ai/quickstart/capture.md new file mode 100644 index 0000000000..22e3ab9f40 --- /dev/null +++ b/docs/data-ai/quickstart/capture.md @@ -0,0 +1,9 @@ +--- +linkTitle: "Capture" +title: "Capture" +weight: 20 +layout: "docs" +type: "docs" +description: "Use the vision service API to act based on inferences." +next: "/data-ai/ai/upload-external-data/" +--- diff --git a/docs/data-ai/quickstart/infer.md b/docs/data-ai/quickstart/infer.md new file mode 100644 index 0000000000..eacbcf832e --- /dev/null +++ b/docs/data-ai/quickstart/infer.md @@ -0,0 +1,9 @@ +--- +linkTitle: "Infer" +title: "Infer" +weight: 30 +layout: "docs" +type: "docs" +description: "Use the vision service API to act based on inferences." +next: "/data-ai/ai/upload-external-data/" +--- diff --git a/docs/data-ai/quickstart/setup.md b/docs/data-ai/quickstart/setup.md new file mode 100644 index 0000000000..56df0c3d8d --- /dev/null +++ b/docs/data-ai/quickstart/setup.md @@ -0,0 +1,9 @@ +--- +linkTitle: "Setup" +title: "Setup" +weight: 10 +layout: "docs" +type: "docs" +description: "Use the vision service API to act based on inferences." +next: "/data-ai/ai/upload-external-data/" +--- diff --git a/docs/data-ai/capture-data/advanced/advanced-data-capture-sync.md b/docs/data-ai/reference/advanced-data-capture-sync.md similarity index 98% rename from docs/data-ai/capture-data/advanced/advanced-data-capture-sync.md rename to docs/data-ai/reference/advanced-data-capture-sync.md index 99be13c5ef..242267bb5d 100644 --- a/docs/data-ai/capture-data/advanced/advanced-data-capture-sync.md +++ b/docs/data-ai/reference/advanced-data-capture-sync.md @@ -1,6 +1,6 @@ --- -linkTitle: "Advanced data capture and sync configurations" -title: "Advanced data capture and sync configurations" +linkTitle: "Sync configuration" +title: "Sync configuration" tags: ["data management", "data", "services"] weight: 10 layout: "docs" @@ -705,9 +705,9 @@ Failing to write to MongoDB doesn't affect capturing and syncing data to cloud s Configure how long your synced data remains stored in the cloud: - **Retain data up to a certain size (for example, 100GB) or for a specific length of time (for example, 14 days):** Set `retention_policies` at the resource level. - See the `retention_policy` field in [data capture configuration attributes](/data-ai/capture-data/advanced/advanced-data-capture-sync/#click-to-view-data-capture-attributes). + See the `retention_policy` field in [data capture configuration attributes](/data-ai/reference/advanced-data-capture-sync/#click-to-view-data-capture-attributes). - **Delete data captured by a machine when you delete the machine:** Control whether your cloud data is deleted when a machine or machine part is removed. - See the `delete_data_on_part_deletion` field in the [data management service configuration attributes](/data-ai/capture-data/advanced/advanced-data-capture-sync/#click-to-view-data-management-attributes). + See the `delete_data_on_part_deletion` field in the [data management service configuration attributes](/data-ai/reference/advanced-data-capture-sync/#click-to-view-data-management-attributes). ### Sync optimization diff --git a/docs/data-ai/ai/advanced/_index.md b/docs/data-ai/reference/api/_index.md similarity index 50% rename from docs/data-ai/ai/advanced/_index.md rename to docs/data-ai/reference/api/_index.md index f004c032cf..6093d0457c 100644 --- a/docs/data-ai/ai/advanced/_index.md +++ b/docs/data-ai/reference/api/_index.md @@ -1,7 +1,7 @@ --- -linkTitle: "Advanced" -title: "Advanced" -weight: 200 +linkTitle: "APIs" +title: "APIs" +weight: 500 layout: "empty" type: "docs" empty_node: true diff --git a/docs/data-ai/reference/data-client.md b/docs/data-ai/reference/api/data-client.md similarity index 100% rename from docs/data-ai/reference/data-client.md rename to docs/data-ai/reference/api/data-client.md diff --git a/docs/data-ai/reference/data-management-client.md b/docs/data-ai/reference/api/data-management-client.md similarity index 100% rename from docs/data-ai/reference/data-management-client.md rename to docs/data-ai/reference/api/data-management-client.md diff --git a/docs/data-ai/reference/ml-model-client.md b/docs/data-ai/reference/api/ml-model-client.md similarity index 100% rename from docs/data-ai/reference/ml-model-client.md rename to docs/data-ai/reference/api/ml-model-client.md diff --git a/docs/data-ai/reference/ml-training-client.md b/docs/data-ai/reference/api/ml-training-client.md similarity index 100% rename from docs/data-ai/reference/ml-training-client.md rename to docs/data-ai/reference/api/ml-training-client.md diff --git a/docs/data-ai/reference/vision-client.md b/docs/data-ai/reference/api/vision-client.md similarity index 100% rename from docs/data-ai/reference/vision-client.md rename to docs/data-ai/reference/api/vision-client.md diff --git a/docs/data-ai/reference/triggers-configuration.md b/docs/data-ai/reference/triggers-configuration.md index aa094b7d25..381084aefd 100644 --- a/docs/data-ai/reference/triggers-configuration.md +++ b/docs/data-ai/reference/triggers-configuration.md @@ -11,8 +11,8 @@ date: "2025-05-05" Triggers can alert you by email or webhook when the following events occur: - [machine telemetry data syncs from your local device to the Viam cloud](/manage/troubleshoot/alert/) -- [data syncs from a machine](/data-ai/data/advanced/alert-data/) -- [service detects a specified object or classifies a specified label](/data-ai/ai/alert/) +- [data syncs from a machine](/data-ai/data/alert-data/) +- [service detects a specified object or classifies a specified label](/data-ai/inference/alert/) ## Trigger attributes diff --git a/docs/dev/reference/changelog.md b/docs/dev/reference/changelog.md index 185af21680..30315c086b 100644 --- a/docs/dev/reference/changelog.md +++ b/docs/dev/reference/changelog.md @@ -221,7 +221,7 @@ It is not possible to store metadata associated with a Viam user. {{% changelog color="added" title="Hot Data Store" date="2025-03-11" %}} -The [hot data store](/data-ai/capture-data/advanced/advanced-data-capture-sync/#capture-to-the-hot-data-store) allows you to access recent data faster. +The [hot data store](/data-ai/reference/advanced-data-capture-sync/#capture-to-the-hot-data-store) allows you to access recent data faster. {{% /changelog %}} @@ -591,7 +591,7 @@ See [Visualize data with Grafana](/tutorials/services/visualize-data-grafana/) f {{% changelog date="2024-01-31" color="added" title="Use triggers to trigger actions" %}} -You can now configure [triggers](/data-ai/data/advanced/alert-data/) (previously called webhooks) to execute actions when certain types of data are sent from your machine to the cloud. +You can now configure [triggers](/data-ai/data/alert-data/) (previously called webhooks) to execute actions when certain types of data are sent from your machine to the cloud. {{% /changelog %}} diff --git a/docs/manage/troubleshoot/teleoperate/default-interface.md b/docs/manage/troubleshoot/teleoperate/default-interface.md index 03966caee1..bf9b208022 100644 --- a/docs/manage/troubleshoot/teleoperate/default-interface.md +++ b/docs/manage/troubleshoot/teleoperate/default-interface.md @@ -45,7 +45,7 @@ Additionally, the app allows you to: - see if your machines are online - [view a machine's logs](/manage/troubleshoot/troubleshoot/#check-logs) -- [upload images from your phone to the cloud](/data-ai/ai/advanced/upload-external-data/#upload-images-with-the-viam-mobile-app) +- [upload images from your phone to the cloud](/data-ai/ai/upload-external-data/#upload-images-with-the-viam-mobile-app) - [invite people to collaborate with you and modify access](/manage/troubleshoot/teleoperate/default-interface/#viam-mobile-app)
diff --git a/docs/operate/mobility/use-input-to-act.md b/docs/operate/mobility/use-input-to-act.md index fefa540e6f..2b534b2148 100644 --- a/docs/operate/mobility/use-input-to-act.md +++ b/docs/operate/mobility/use-input-to-act.md @@ -51,9 +51,9 @@ readings = await my_sensor.get_readings() Other common inputs include the methods of a [board](/dev/reference/apis/components/board/) (`GetGPIO`, `GetPWM`, `PWMFrequency`, `GetDigitalInterruptValue`, and `ReadAnalogReader`), or a [power sensor](/dev/reference/apis/components/power-sensor/) (`GetVoltage`, `GetCurrent`, `GetPower`, and `GetReadings`). You can also use camera input, for example to detect objects and pick them up with an arm. -See [Act based on inferences](/data-ai/ai/act/) for relevant examples. +See [Act based on inferences](/data-ai/inference/act/) for relevant examples. -If you want to send alerts based on computer vision or captured data, see [Alert on inferences](/data-ai/ai/alert/) or [Alert on data](/data-ai/data/advanced/alert-data/). +If you want to send alerts based on computer vision or captured data, see [Alert on inferences](/data-ai/inference/alert/) or [Alert on data](/data-ai/data/alert-data/). {{% /tablestep %}} {{% tablestep number=3 %}} diff --git a/docs/operate/reference/components/camera/webcam.md b/docs/operate/reference/components/camera/webcam.md index 9a50762d72..e610193208 100644 --- a/docs/operate/reference/components/camera/webcam.md +++ b/docs/operate/reference/components/camera/webcam.md @@ -272,7 +272,7 @@ If you are using a CSI camera v1.3 or v2.0, or v3.0 with a Raspberry Pi, use the For CSI cameras used with Jetsons, use the `viam:camera:csi` model provided by the same module. For Raspberry Pi AI cameras like the IMX500 AI camera, use a module such as [this `viam-pi-ai-camera` vision service](https://github.com/HipsterBrown/viam-pi-ai-camera). -For more information about the vision service, see [run inference](https://docs.viam.com/data-ai/ai/run-inference/). +For more information about the vision service, see [run inference](https://docs.viam.com/data-ai/inference/run-inference/). {{% /expand%}} {{% expand "High CPU usage" %}} diff --git a/docs/operate/reference/services/vision/_index.md b/docs/operate/reference/services/vision/_index.md index 0d47151f02..16258ba0e3 100644 --- a/docs/operate/reference/services/vision/_index.md +++ b/docs/operate/reference/services/vision/_index.md @@ -4,5 +4,5 @@ linkTitle: "Vision Service" weight: 20 type: "docs" layout: "empty" -canonical: "/data-ai/ai/run-inference/" +canonical: "/data-ai/inference/run-inference/" --- diff --git a/docs/tutorials/projects/helmet.md b/docs/tutorials/projects/helmet.md index cc890a14ef..4ae22233a0 100644 --- a/docs/tutorials/projects/helmet.md +++ b/docs/tutorials/projects/helmet.md @@ -251,7 +251,7 @@ Now that you have verified that the detector and data sync are working, modify y ## Set up email notifications -[Triggers](/data-ai/ai/alert/) allow you to send webhook requests or email notifications when certain events happen. +[Triggers](/data-ai/inference/alert/) allow you to send webhook requests or email notifications when certain events happen. For example, you can set up a trigger to perform an action whenever an image of someone without a hard hat is uploaded to the cloud. From 4835b118784d5d67e3c724fb7ccddfe9e3e1a622 Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 12:01:40 -0400 Subject: [PATCH 2/9] Add aliases to fix missing paths --- docs/data-ai/ai/upload-external-data.md | 2 ++ docs/data-ai/capture-data/how-sync-works.md | 3 +++ docs/data-ai/data/alert-data.md | 3 +++ docs/data-ai/inference/act.md | 2 ++ docs/data-ai/inference/alert.md | 2 ++ docs/data-ai/inference/run-inference.md | 1 + docs/data-ai/reference/advanced-data-capture-sync.md | 2 ++ docs/data-ai/reference/api/data-client.md | 2 ++ docs/data-ai/reference/api/data-management-client.md | 2 ++ docs/data-ai/reference/api/ml-model-client.md | 2 ++ docs/data-ai/reference/api/ml-training-client.md | 2 ++ docs/data-ai/reference/api/vision-client.md | 2 ++ 12 files changed, 25 insertions(+) diff --git a/docs/data-ai/ai/upload-external-data.md b/docs/data-ai/ai/upload-external-data.md index 000ac02a5a..c7f39be002 100644 --- a/docs/data-ai/ai/upload-external-data.md +++ b/docs/data-ai/ai/upload-external-data.md @@ -11,6 +11,8 @@ aliases: - /data/upload/ - /services/data/upload/ - /how-tos/upload-data/ + - /data-ai/ai/advanced/upload-external-data/ + - /data-ai/ai/advanced/ date: "2024-12-04" description: "Upload data to the Viam app from your local computer or mobile device using the data client API, Viam CLI, or Viam mobile app." prev: "/data-ai/inference/act/" diff --git a/docs/data-ai/capture-data/how-sync-works.md b/docs/data-ai/capture-data/how-sync-works.md index a024cec59e..cbe5d23c41 100644 --- a/docs/data-ai/capture-data/how-sync-works.md +++ b/docs/data-ai/capture-data/how-sync-works.md @@ -8,6 +8,9 @@ type: "docs" platformarea: ["data"] description: "Data capture and sync works differently for viam-server and viam-micro-server." date: "2024-12-18" +aliases: + - /data-ai/capture-data/advanced/how-sync-works/ + - /data-ai/capture-data/advanced/ prev: "/data-ai/reference/advanced-data-capture-sync/" --- diff --git a/docs/data-ai/data/alert-data.md b/docs/data-ai/data/alert-data.md index bad60e5ff2..1d6a168a1f 100644 --- a/docs/data-ai/data/alert-data.md +++ b/docs/data-ai/data/alert-data.md @@ -5,6 +5,9 @@ weight: 60 layout: "docs" type: "docs" description: "Use triggers to send email notifications or webhook requests when data from the machine is synced." +aliases: + - /data-ai/data/advanced/alert-data/ + - /data-ai/data/advanced/ prev: "/data-ai/data/export/" --- diff --git a/docs/data-ai/inference/act.md b/docs/data-ai/inference/act.md index a2974a8270..49febf1d43 100644 --- a/docs/data-ai/inference/act.md +++ b/docs/data-ai/inference/act.md @@ -5,6 +5,8 @@ weight: 70 layout: "docs" type: "docs" description: "Use the vision service API to act based on inferences." +aliases: + - /data-ai/ai/act/ next: "/data-ai/ai/upload-external-data/" --- diff --git a/docs/data-ai/inference/alert.md b/docs/data-ai/inference/alert.md index 26ed1e4437..1e67b92d79 100644 --- a/docs/data-ai/inference/alert.md +++ b/docs/data-ai/inference/alert.md @@ -4,6 +4,8 @@ title: "Alert on inferences" weight: 60 layout: "docs" type: "docs" +aliases: + - /data-ai/ai/alert/ description: "Use triggers to send email notifications when inferences are made." --- diff --git a/docs/data-ai/inference/run-inference.md b/docs/data-ai/inference/run-inference.md index 8341275bbf..f9f5134a50 100644 --- a/docs/data-ai/inference/run-inference.md +++ b/docs/data-ai/inference/run-inference.md @@ -15,6 +15,7 @@ aliases: - /ml/vision/segmentation/ - /ml/vision/ - /get-started/quickstarts/detect-people/ + - /data-ai/ai/run-inference/ description: "Run inference on a model with a vision service or an SDK." --- diff --git a/docs/data-ai/reference/advanced-data-capture-sync.md b/docs/data-ai/reference/advanced-data-capture-sync.md index 242267bb5d..e445c823bb 100644 --- a/docs/data-ai/reference/advanced-data-capture-sync.md +++ b/docs/data-ai/reference/advanced-data-capture-sync.md @@ -7,6 +7,8 @@ layout: "docs" type: "docs" platformarea: ["data"] description: "Advanced data capture and data sync configurations." +aliases: + - /data-ai/capture-data/advanced/advanced-data-capture-sync/ prev: /data-ai/capture-data/conditional-sync/ date: "2025-02-10" --- diff --git a/docs/data-ai/reference/api/data-client.md b/docs/data-ai/reference/api/data-client.md index e283551be4..15f0e2d1f0 100644 --- a/docs/data-ai/reference/api/data-client.md +++ b/docs/data-ai/reference/api/data-client.md @@ -4,5 +4,7 @@ linkTitle: "Data client API" weight: 30 type: "docs" layout: "empty" +aliases: + - /data-ai/reference/data-client/ canonical: "/dev/reference/apis/data-client/" --- diff --git a/docs/data-ai/reference/api/data-management-client.md b/docs/data-ai/reference/api/data-management-client.md index 9b25725d0b..c89bd6bae0 100644 --- a/docs/data-ai/reference/api/data-management-client.md +++ b/docs/data-ai/reference/api/data-management-client.md @@ -4,5 +4,7 @@ linkTitle: "Data management API" weight: 30 type: "docs" layout: "empty" +aliases: + - /data-ai/reference/data-management/client/ canonical: "/dev/reference/apis/services/data/" --- diff --git a/docs/data-ai/reference/api/ml-model-client.md b/docs/data-ai/reference/api/ml-model-client.md index beeb82c808..f1af352600 100644 --- a/docs/data-ai/reference/api/ml-model-client.md +++ b/docs/data-ai/reference/api/ml-model-client.md @@ -4,5 +4,7 @@ linkTitle: "ML model API" weight: 30 type: "docs" layout: "empty" +aliases: + - /data-ai/reference/ml-model-client/ canonical: "/dev/reference/apis/services/ml/" --- diff --git a/docs/data-ai/reference/api/ml-training-client.md b/docs/data-ai/reference/api/ml-training-client.md index 60053e550e..809ef9b10a 100644 --- a/docs/data-ai/reference/api/ml-training-client.md +++ b/docs/data-ai/reference/api/ml-training-client.md @@ -4,5 +4,7 @@ linkTitle: "ML training client API" weight: 40 type: "docs" layout: "empty" +aliases: + - /data-ai/reference/ml-training-client/ canonical: "/dev/reference/apis/services/ml/" --- diff --git a/docs/data-ai/reference/api/vision-client.md b/docs/data-ai/reference/api/vision-client.md index d28e356b3e..4577ec074f 100644 --- a/docs/data-ai/reference/api/vision-client.md +++ b/docs/data-ai/reference/api/vision-client.md @@ -4,5 +4,7 @@ linkTitle: "Vision service API" weight: 30 type: "docs" layout: "empty" +aliases: + - /data-ai/reference/vision-client/ canonical: "/dev/reference/apis/services/vision/" --- From 59c76007dbdbf3907535f3a1b6b487e8545e57df Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 12:05:16 -0400 Subject: [PATCH 3/9] Fix alias typo --- docs/data-ai/reference/api/data-management-client.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data-ai/reference/api/data-management-client.md b/docs/data-ai/reference/api/data-management-client.md index c89bd6bae0..7b53818177 100644 --- a/docs/data-ai/reference/api/data-management-client.md +++ b/docs/data-ai/reference/api/data-management-client.md @@ -5,6 +5,6 @@ weight: 30 type: "docs" layout: "empty" aliases: - - /data-ai/reference/data-management/client/ + - /data-ai/reference/data-management-client/ canonical: "/dev/reference/apis/services/data/" --- From c8b8c2f3b31fee8818ef6f07c9c3b51265dec7de Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 13:39:30 -0400 Subject: [PATCH 4/9] Clean up data ai landing page, fix all broken links --- docs/data-ai/_index.md | 29 ++++++++++++++----- docs/data-ai/capture-data/capture-sync.md | 2 +- docs/data-ai/capture-data/how-sync-works.md | 1 - docs/data-ai/data/query.md | 2 +- docs/data-ai/quickstart/capture.md | 4 +-- docs/data-ai/quickstart/infer.md | 4 +-- .../quickstart/{setup.md => set-up-viam.md} | 4 +-- .../reference/advanced-data-capture-sync.md | 6 ++-- docs/dev/reference/glossary/ml.md | 2 +- docs/dev/reference/glossary/vision-service.md | 2 +- docs/dev/tools/cli.md | 2 +- 11 files changed, 36 insertions(+), 22 deletions(-) rename docs/data-ai/quickstart/{setup.md => set-up-viam.md} (77%) diff --git a/docs/data-ai/_index.md b/docs/data-ai/_index.md index 6d5d541d2f..c2b4eb380a 100644 --- a/docs/data-ai/_index.md +++ b/docs/data-ai/_index.md @@ -25,15 +25,24 @@ You can also monitor your machines through teleop, power your application logic,
-{{< how-to-expand "Capture data" "3" "BEGINNER-FRIENDLY" "" "data-platform-capture" >}} +{{< how-to-expand "Quickstart" "" "" "" "" >}} {{< cards >}} +{{% card link="/data-ai/quickstart/set-up-viam/" noimage="true" %}} +{{% card link="/data-ai/quickstart/capture" noimage="true" %}} +{{% card link="/data-ai/quickstart/infer/" noimage="true" %}} +{{< /cards >}} +{{< /how-to-expand >}} + +{{< how-to-expand "Capture data" "" "" "" "data-platform-capture" >}} +{{< cards >}} +{{% card link="/data-ai/capture-data/how-sync-works/" noimage="true" %}} {{% card link="/data-ai/capture-data/capture-sync/" noimage="true" %}} -{{% card link="/data-ai/capture-data/filter-before-sync/" noimage="true" %}} {{% card link="/data-ai/capture-data/conditional-sync/" noimage="true" %}} +{{% card link="/data-ai/capture-data/filter-before-sync/" noimage="true" %}} {{< /cards >}} {{< /how-to-expand >}} -{{< how-to-expand "Work with data" "4" "BEGINNER-FRIENDLY" "" "data-platform-work" >}} +{{< how-to-expand "Work with data" "" "" "" "data-platform-work" >}} {{< cards >}} {{% card link="/data-ai/data/query/" noimage="true" %}} {{% card link="/data-ai/data/visualize/" noimage="true" %}} @@ -42,15 +51,21 @@ You can also monitor your machines through teleop, power your application logic, {{< /cards >}} {{< /how-to-expand >}} -{{< how-to-expand "Leverage AI" "8" "INTERMEDIATE" "" "data-platform-ai" >}} +{{< how-to-expand "Run inference" "" "" "" "data-platform-ai" >}} +{{< cards >}} +{{% card link="/data-ai/inference/run-inference/" noimage="true" %}} +{{% card link="/data-ai/inference/alert/" noimage="true" %}} +{{% card link="/data-ai/inference/act/" noimage="true" %}} +{{< /cards >}} +{{< /how-to-expand >}} + +{{< how-to-expand "Train an ML model" "" "" "" "data-platform-ai" >}} {{< cards >}} {{% card link="/data-ai/ai/create-dataset/" noimage="true" %}} {{% card link="/data-ai/ai/train-tflite/" noimage="true" %}} {{% card link="/data-ai/ai/train/" noimage="true" %}} {{% card link="/data-ai/ai/deploy/" noimage="true" %}} -{{% card link="/data-ai/inference/run-inference/" noimage="true" %}} -{{% card link="/data-ai/inference/alert/" noimage="true" %}} -{{% card link="/data-ai/inference/act/" noimage="true" %}} +{{% card link="/data-ai/ai/upload-external-data/" noimage="true" %}} {{< /cards >}} {{< /how-to-expand >}} diff --git a/docs/data-ai/capture-data/capture-sync.md b/docs/data-ai/capture-data/capture-sync.md index 71ff93e4be..8cb3d5512f 100644 --- a/docs/data-ai/capture-data/capture-sync.md +++ b/docs/data-ai/capture-data/capture-sync.md @@ -51,7 +51,7 @@ The data management service writes data from your configured Viam resources to l - The data management service syncs data to the Viam cloud at a configured sync interval using encrypted gRPC calls and deletes it from the disk once synced. - You can capture and sync data independently; one can run without the other. -For more information, see [How sync works](/data-ai/capture-data/advanced/how-sync-works/). +For more information, see [How sync works](/data-ai/capture-data/how-sync-works/). ## Configure data capture and sync for individual resources diff --git a/docs/data-ai/capture-data/how-sync-works.md b/docs/data-ai/capture-data/how-sync-works.md index cbe5d23c41..6d26f30525 100644 --- a/docs/data-ai/capture-data/how-sync-works.md +++ b/docs/data-ai/capture-data/how-sync-works.md @@ -115,7 +115,6 @@ When a machine loses its internet connection, it cannot resume cloud sync until To ensure that the machine can store all data captured while it has no connection, you need to provide enough local data storage. If your robot is offline and can't sync and your machine's disk fills up beyond a certain threshold, the data management service will delete captured data to free up additional space and maintain a working machine. -For more information, see [Automatic data deletion details](/data-ai/capture-data/advanced/how-sync-works/) Data capture supports capturing tabular data directly to MongoDB in addition to capturing to disk. For more information, see [Capture directly to MongoDB](/data-ai/reference/advanced-data-capture-sync/#capture-directly-to-your-own-mongodb-cluster). diff --git a/docs/data-ai/data/query.md b/docs/data-ai/data/query.md index 59a872cf82..30bab61cd4 100644 --- a/docs/data-ai/data/query.md +++ b/docs/data-ai/data/query.md @@ -353,4 +353,4 @@ db.readings.aggregate( For information on connecting to your Atlas instance from other MQL clients, see the MongoDB Atlas [Connect to your Cluster Tutorial](https://www.mongodb.com/docs/atlas/tutorial/connect-to-your-cluster/). -On top of querying sensor data with third-party tools, you can also [query it with the Python SDK](/data-ai/reference/data-client/) or [visualize it](/data-ai/data/visualize/). +On top of querying sensor data with third-party tools, you can also [query it with the Python SDK](/data-ai/reference/api/data-client/) or [visualize it](/data-ai/data/visualize/). diff --git a/docs/data-ai/quickstart/capture.md b/docs/data-ai/quickstart/capture.md index 22e3ab9f40..97c8bc0cae 100644 --- a/docs/data-ai/quickstart/capture.md +++ b/docs/data-ai/quickstart/capture.md @@ -1,6 +1,6 @@ --- -linkTitle: "Capture" -title: "Capture" +linkTitle: "Capture data" +title: "Capture data" weight: 20 layout: "docs" type: "docs" diff --git a/docs/data-ai/quickstart/infer.md b/docs/data-ai/quickstart/infer.md index eacbcf832e..34a6e2bf6a 100644 --- a/docs/data-ai/quickstart/infer.md +++ b/docs/data-ai/quickstart/infer.md @@ -1,6 +1,6 @@ --- -linkTitle: "Infer" -title: "Infer" +linkTitle: "Run inference" +title: "Run inference" weight: 30 layout: "docs" type: "docs" diff --git a/docs/data-ai/quickstart/setup.md b/docs/data-ai/quickstart/set-up-viam.md similarity index 77% rename from docs/data-ai/quickstart/setup.md rename to docs/data-ai/quickstart/set-up-viam.md index 56df0c3d8d..ac8006ea0f 100644 --- a/docs/data-ai/quickstart/setup.md +++ b/docs/data-ai/quickstart/set-up-viam.md @@ -1,6 +1,6 @@ --- -linkTitle: "Setup" -title: "Setup" +linkTitle: "Set up Viam" +title: "Set up Viam" weight: 10 layout: "docs" type: "docs" diff --git a/docs/data-ai/reference/advanced-data-capture-sync.md b/docs/data-ai/reference/advanced-data-capture-sync.md index e445c823bb..3065fb693f 100644 --- a/docs/data-ai/reference/advanced-data-capture-sync.md +++ b/docs/data-ai/reference/advanced-data-capture-sync.md @@ -83,12 +83,12 @@ The following attributes are available for the data management service: | `capture_dir` | string | Optional | Path to the directory on your machine where you want to store captured data. If you change the directory for data capture, only new data is stored in the new directory. Existing data remains in the directory where it was stored.
Default: `~/.viam/capture` |

| | `tags` | array of strings | Optional | Tags to apply to all images or tabular data captured by this machine part. May include alphanumeric characters, underscores, and dashes. | | | `sync_disabled` | bool | Optional | Toggle cloud sync on or off for the entire machine {{< glossary_tooltip term_id="part" text="part" >}}.
Default: `false` | | -| `additional_sync_paths` | string array | Optional | Paths to any other directories on your machine from which you want to sync data to the cloud. Once data is synced from a directory, it is automatically deleted from your machine. We recommend using absolute paths. For relative paths, see [How sync works](/data-ai/capture-data/advanced/how-sync-works/#cant-find-the-directory-data-is-stored-in-click-here). | | +| `additional_sync_paths` | string array | Optional | Paths to any other directories on your machine from which you want to sync data to the cloud. Once data is synced from a directory, it is automatically deleted from your machine. We recommend using absolute paths. For relative paths, see [How sync works](/data-ai/capture-data/how-sync-works/#cant-find-the-directory-data-is-stored-in-click-here). | | | `sync_interval_mins` | float | Optional | Time interval in minutes between syncing to the cloud. Viam does not impose a minimum or maximum on the frequency of data syncing. However, in practice, your hardware or network speed may impose limits on the frequency of data syncing.
Default: `0.1`, meaning once every 6 seconds. |

| | `delete_data_on_part_deletion` | bool | Optional | Whether deleting this {{< glossary_tooltip term_id="machine" text="machine" >}} or {{< glossary_tooltip term_id="part" text="machine part" >}} should result in deleting all the data captured by that machine part.
Default: `false` |

| -| `delete_every_nth_when_disk_full` | int | Optional | How many files to delete when local storage meets the [fullness criteria](/data-ai/capture-data/advanced/how-sync-works/#storage). The data management service will delete every Nth file that has been captured upon reaching this threshold. Use JSON mode to configure this attribute.
Default: `5`, meaning that every fifth captured file will be deleted. | | +| `delete_every_nth_when_disk_full` | int | Optional | How many files to delete when local storage meets the [fullness criteria](/data-ai/capture-data/how-sync-works/#storage). The data management service will delete every Nth file that has been captured upon reaching this threshold. Use JSON mode to configure this attribute.
Default: `5`, meaning that every fifth captured file will be deleted. | | | `maximum_num_sync_threads` | int | Optional | Max number of CPU threads to use for syncing data to the Viam Cloud.
Default: [runtime.NumCPU](https://pkg.go.dev/runtime#NumCPU)/2 so half the number of logical CPUs available to viam-server | | -| `mongo_capture_config.uri` | string | Optional | The [MongoDB URI](https://www.mongodb.com/docs/v6.2/reference/connection-string/) data capture will attempt to write tabular data to after it is enqueued to be written to disk. When non-empty, data capture will capture tabular data to the configured MongoDB database and collection at that URI.
See `mongo_capture_config.database` and `mongo_capture_config.collection` below for database and collection defaults.
See [Data capture directly to MongoDB](/data-ai/capture-data/advanced/how-sync-works/#storage) for an example config.| | +| `mongo_capture_config.uri` | string | Optional | The [MongoDB URI](https://www.mongodb.com/docs/v6.2/reference/connection-string/) data capture will attempt to write tabular data to after it is enqueued to be written to disk. When non-empty, data capture will capture tabular data to the configured MongoDB database and collection at that URI.
See `mongo_capture_config.database` and `mongo_capture_config.collection` below for database and collection defaults.
See [Data capture directly to MongoDB](/data-ai/capture-data/how-sync-works/#storage) for an example config.| | | `mongo_capture_config.database` | string | Optional | When `mongo_capture_config.uri` is non empty, changes the database data capture will write tabular data to.
Default: `"sensorData"` | | | `mongo_capture_config.collection` | string | Optional | When `mongo_capture_config.uri` is non empty, changes the collection data capture will write tabular data to.
Default: `"readings"` | | | `cache_size_kb` | float | Optional | `viam-micro-server` only. The maximum amount of storage bytes (in kilobytes) allocated to a data collector.
Default: `1` KB. |

| diff --git a/docs/dev/reference/glossary/ml.md b/docs/dev/reference/glossary/ml.md index 717bb0a280..c5a0f9b43f 100644 --- a/docs/dev/reference/glossary/ml.md +++ b/docs/dev/reference/glossary/ml.md @@ -9,4 +9,4 @@ type: "page" ML stands for machine learning, a field of artificial intelligence that focuses on building systems that can learn from and make decisions based on data. -Viam provides tools for [training ML models](/data-ai/ai/train/), [deploying them to machines](/data-ai/ai/deploy/), [running inference](/data-ai/ai/run-inference/), and [interpret visual data from cameras](/data-ai/ai/alert/) to enable intelligent behavior in robotic systems. +Viam provides tools for [training ML models](/data-ai/ai/train/), [deploying them to machines](/data-ai/ai/deploy/), [running inference](/data-ai/inference/run-inference/), and [interpret visual data from cameras](/data-ai/inference/alert/) to enable intelligent behavior in robotic systems. diff --git a/docs/dev/reference/glossary/vision-service.md b/docs/dev/reference/glossary/vision-service.md index 576c2d91c2..ef9410dd8d 100644 --- a/docs/dev/reference/glossary/vision-service.md +++ b/docs/dev/reference/glossary/vision-service.md @@ -10,4 +10,4 @@ type: "page" The vision service is a {{< glossary_tooltip term_id="service" text="service" >}} in the Viam platform that enables machines to interpret visual data captured by camera using computer vision and {{< glossary_tooltip term_id="ml" text="machine learning" >}} techniques. Vision services can use various models, including pre-trained models or custom models trained on your own data using the Viam platform. -For more information, see the [Vision service documentation](/operate/reference/services/vision/) or [Alert on inferences](/data-ai/ai/alert/). +For more information, see the [Vision service documentation](/operate/reference/services/vision/) or [Alert on inferences](/data-ai/inference/alert/). diff --git a/docs/dev/tools/cli.md b/docs/dev/tools/cli.md index ef7bae066f..4b42e06412 100644 --- a/docs/dev/tools/cli.md +++ b/docs/dev/tools/cli.md @@ -546,7 +546,7 @@ done ### `infer` -The `infer` command enables you to run [cloud inference](/data-ai/ai/run-inference/#cloud-inference) on data. Cloud inference runs in the cloud, instead of on a local machine. +The `infer` command enables you to run [cloud inference](/data-ai/inference/run-inference/#cloud-inference) on data. Cloud inference runs in the cloud, instead of on a local machine. ```sh {class="command-line" data-prompt="$" data-output="2-18"} viam infer --binary-data-id --model-name --model-org-id --model-version "2025-04-14T16-38-25" --org-id From 6c5ff910fc836c0d27a4dadc9238ab9d6da04bfd Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 13:46:05 -0400 Subject: [PATCH 5/9] Add redirect for page that never existed in production because cached in preview, update next pages for quickstart pages --- docs/data-ai/quickstart/capture.md | 2 +- docs/data-ai/quickstart/infer.md | 2 +- docs/data-ai/quickstart/set-up-viam.md | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/data-ai/quickstart/capture.md b/docs/data-ai/quickstart/capture.md index 97c8bc0cae..c9be780244 100644 --- a/docs/data-ai/quickstart/capture.md +++ b/docs/data-ai/quickstart/capture.md @@ -5,5 +5,5 @@ weight: 20 layout: "docs" type: "docs" description: "Use the vision service API to act based on inferences." -next: "/data-ai/ai/upload-external-data/" +next: "/data-ai/quickstart/infer/" --- diff --git a/docs/data-ai/quickstart/infer.md b/docs/data-ai/quickstart/infer.md index 34a6e2bf6a..c9a374a767 100644 --- a/docs/data-ai/quickstart/infer.md +++ b/docs/data-ai/quickstart/infer.md @@ -5,5 +5,5 @@ weight: 30 layout: "docs" type: "docs" description: "Use the vision service API to act based on inferences." -next: "/data-ai/ai/upload-external-data/" +next: "/data-ai/ai/train-tflite/" --- diff --git a/docs/data-ai/quickstart/set-up-viam.md b/docs/data-ai/quickstart/set-up-viam.md index ac8006ea0f..f0e36002ff 100644 --- a/docs/data-ai/quickstart/set-up-viam.md +++ b/docs/data-ai/quickstart/set-up-viam.md @@ -5,5 +5,7 @@ weight: 10 layout: "docs" type: "docs" description: "Use the vision service API to act based on inferences." -next: "/data-ai/ai/upload-external-data/" +aliases: + - /data-ai/quickstart/setup/ +next: "/data-ai/quickstart/capture/" --- From 136f54c3f19579633c0742dff205535002af169a Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 16:22:26 -0400 Subject: [PATCH 6/9] Add stub pages for new inference guides, fix all descriptions, rename pages for clarity --- docs/data-ai/_index.md | 4 +- docs/data-ai/ai/create-dataset.md | 4 +- docs/data-ai/ai/deploy.md | 2 +- docs/data-ai/ai/train.md | 2 +- docs/data-ai/capture-data/_index.md | 112 ++++++++++++- docs/data-ai/capture-data/capture-sync.md | 2 +- docs/data-ai/capture-data/how-sync-works.md | 120 -------------- docs/data-ai/data/alert-data.md | 2 +- docs/data-ai/data/export.md | 2 +- docs/data-ai/data/query.md | 2 +- docs/data-ai/data/visualize.md | 2 +- docs/data-ai/inference/_index.md | 151 ++++++++++++++++- docs/data-ai/inference/alert.md | 2 +- ...gment-visual-inference-with-sensor-data.md | 10 ++ .../inference/autonomous-decision-making.md | 10 ++ .../detect-anomolies-tabular-data.md | 10 ++ docs/data-ai/inference/manipulate-objects.md | 10 ++ .../output-tabular-data-from-inference.md | 10 ++ docs/data-ai/inference/run-inference.md | 156 ------------------ .../inference/track-objects-on-video.md | 10 ++ docs/data-ai/quickstart/_index.md | 11 +- docs/data-ai/quickstart/capture.md | 6 +- docs/data-ai/quickstart/infer.md | 6 +- docs/data-ai/quickstart/set-up-viam.md | 4 +- .../reference/advanced-data-capture-sync.md | 6 +- docs/data-ai/reference/architecture.md | 9 - docs/dev/reference/glossary/ml.md | 2 +- docs/dev/tools/cli.md | 2 +- docs/operate/reference/architecture/_index.md | 1 + .../reference/components/camera/webcam.md | 2 +- 30 files changed, 354 insertions(+), 318 deletions(-) delete mode 100644 docs/data-ai/capture-data/how-sync-works.md create mode 100644 docs/data-ai/inference/augment-visual-inference-with-sensor-data.md create mode 100644 docs/data-ai/inference/autonomous-decision-making.md create mode 100644 docs/data-ai/inference/detect-anomolies-tabular-data.md create mode 100644 docs/data-ai/inference/manipulate-objects.md create mode 100644 docs/data-ai/inference/output-tabular-data-from-inference.md delete mode 100644 docs/data-ai/inference/run-inference.md create mode 100644 docs/data-ai/inference/track-objects-on-video.md delete mode 100644 docs/data-ai/reference/architecture.md diff --git a/docs/data-ai/_index.md b/docs/data-ai/_index.md index c2b4eb380a..fcdf8cb8d5 100644 --- a/docs/data-ai/_index.md +++ b/docs/data-ai/_index.md @@ -35,7 +35,7 @@ You can also monitor your machines through teleop, power your application logic, {{< how-to-expand "Capture data" "" "" "" "data-platform-capture" >}} {{< cards >}} -{{% card link="/data-ai/capture-data/how-sync-works/" noimage="true" %}} +{{% card link="/data-ai/capture-data/" noimage="true" %}} {{% card link="/data-ai/capture-data/capture-sync/" noimage="true" %}} {{% card link="/data-ai/capture-data/conditional-sync/" noimage="true" %}} {{% card link="/data-ai/capture-data/filter-before-sync/" noimage="true" %}} @@ -53,7 +53,7 @@ You can also monitor your machines through teleop, power your application logic, {{< how-to-expand "Run inference" "" "" "" "data-platform-ai" >}} {{< cards >}} -{{% card link="/data-ai/inference/run-inference/" noimage="true" %}} +{{% card link="/data-ai/inference/" noimage="true" %}} {{% card link="/data-ai/inference/alert/" noimage="true" %}} {{% card link="/data-ai/inference/act/" noimage="true" %}} {{< /cards >}} diff --git a/docs/data-ai/ai/create-dataset.md b/docs/data-ai/ai/create-dataset.md index cdac56ad88..53bf5950f5 100644 --- a/docs/data-ai/ai/create-dataset.md +++ b/docs/data-ai/ai/create-dataset.md @@ -1,6 +1,6 @@ --- -linkTitle: "Create a dataset" -title: "Create a dataset" +linkTitle: "Create a training dataset" +title: "Create a training dataset" weight: 10 layout: "docs" type: "docs" diff --git a/docs/data-ai/ai/deploy.md b/docs/data-ai/ai/deploy.md index 811b9bd284..e08af29cf6 100644 --- a/docs/data-ai/ai/deploy.md +++ b/docs/data-ai/ai/deploy.md @@ -83,7 +83,7 @@ The service works with models trained inside and outside the Viam app: On its own the ML model service only runs the model. After deploying your model, you need to configure an additional service to use the deployed model. For example, you can configure an [`mlmodel` vision service](/operate/reference/services/vision/) to visualize the inferences your model makes. -Follow our docs to [run inference](/data-ai/inference/run-inference/) to add an `mlmodel` vision service and see inferences. +Follow our docs to [run inference](/data-ai/inference/) to add an `mlmodel` vision service and see inferences. For other use cases, consider [creating custom functionality with a module](/operate/get-started/other-hardware/). diff --git a/docs/data-ai/ai/train.md b/docs/data-ai/ai/train.md index 50eb7359b9..9314302862 100644 --- a/docs/data-ai/ai/train.md +++ b/docs/data-ai/ai/train.md @@ -846,4 +846,4 @@ You can also view your training jobs' logs with the [`viam train logs`](/dev/too {{< /table >}} To use your new model with machines, you must [deploy it](/data-ai/ai/deploy/) with the appropriate ML model service. -Then you can use another service, such as the vision service, to [run inference](/data-ai/inference/run-inference/). +Then you can use another service, such as the vision service, to [run inference](/data-ai/inference/). diff --git a/docs/data-ai/capture-data/_index.md b/docs/data-ai/capture-data/_index.md index 4758d426bb..e48211702d 100644 --- a/docs/data-ai/capture-data/_index.md +++ b/docs/data-ai/capture-data/_index.md @@ -2,10 +2,116 @@ linkTitle: "Capture data" title: "Capture data" weight: 100 -layout: "empty" +layout: "docs" type: "docs" -empty_node: true open_on_desktop: true header_only: true -noedit: true +aliases: + - /data-ai/capture-data/advanced/how-sync-works/ + - /data-ai/capture-data/advanced/ --- + +`viam-server` and `viam-micro-server` handle data sync in distinct ways: + +{{< tabs >}} +{{% tab name="viam-server" %}} + +The data is captured locally on the machine's storage and, by default, stored in the `~/.viam/capture` directory. +For Linux root or sudo users, the `~/.viam/capture` directory resolves to `/root/.viam/capture`. + +{{% expand "Can't find the directory data is stored in? Click here." %}} + +The relative path for the data capture directory depends on where `viam-server` is run from, as well as the operating system of the machine. + +To find the `$HOME` value, check your machine's logs on startup which will log it in the environment variables: + +```sh +2025-01-15T14:27:26.073Z INFO rdk server/entrypoint.go:77 Starting viam-server with following environment variables {"HOME":"/home/johnsmith"} +``` + +{{% /expand%}} + +If a machine restarts for any reason, data capture automatically resumes and any data already stored but not yet synced is synced. + +The service can capture data from multiple resources at the same or different frequencies. +The service does not impose a lower or upper limit on the frequency of data collection. +However, in practice, your hardware may impose limits on the frequency of data collection. +Avoid configuring data capture to higher rates than your hardware can handle, as this could lead to performance degradation. + +Data capture is frequently used with cloud sync. +You can start and stop capture and sync independently. +You can also enable cloud sync without data capture and it will sync data in the capture directory, as well as the additional sync paths configured in the `viam-server` config. +If you place data like images or files in the `~/.viam/capture` directory or another directory set up for sync with the data manager, for example with the `"additional_sync_paths"` config attribute, it will sync this data to the cloud. + +{{% /tab %}} +{{% tab name="viam-micro-server" %}} + +The data is captured in the ESP32's flash memory until it is uploaded to the Viam Cloud. + +If the machine restarts before all data is synced, all unsynced data captured since the last sync point is lost. + +The service can capture data from multiple resources at the same or different frequencies. +The service does not impose a lower or upper limit on the frequency of data collection. +However, in practice, high frequency data collection (> 100Hz) requires special considerations on the ESP32. + +{{% /tab %}} +{{< /tabs >}} + +## Security + +The data management service uses {{< glossary_tooltip term_id="grpc" text="gRPC" >}} calls to send and receive data, so your data is encrypted while in flight. +When data is stored in the cloud, it is encrypted at rest by the cloud storage provider. + +## Data integrity + +Viam's data management service is designed to safeguard against data loss, data duplication and otherwise compromised data. + +If the internet becomes unavailable or the machine needs to restart during the sync process, the sync is interrupted. +If the sync process is interrupted, the service will retry uploading the data at exponentially increasing intervals until the interval in between tries is at one hour, at which point the service retries the sync every hour. +When the connection is restored and sync resumes, the service continues sync where it left off without duplicating data. +If the interruption happens mid-file, sync resumes from the beginning of that file. + +To avoid syncing files that are still being written to, the data management service only syncs arbitrary files that haven't been modified in the previous 10 seconds. +This default can be changed with the [`file_last_modified_millis` config attribute](/data-ai/capture-data/capture-sync/). + +## Automatic data deletion + +If cloud sync is enabled, the data management service deletes captured data from the disk once it has successfully synced to the cloud. + +{{< alert title="Warning" color="warning" >}} + +If your robot is offline and can't sync and your machine's disk fills up beyond a certain threshold, the data management service will delete captured data to free up additional space and maintain a working machine. + +{{< /alert >}} + +The data management service will also automatically delete local data in the event your machine's local storage fills up. +Local data is automatically deleted when _all_ of the following conditions are met: + +- Data capture is enabled on the data management service +- Local disk usage percentage is greater than or equal to 90% +- The Viam capture directory is at least 50% of the current local disk usage + +If local disk usage is greater than or equal to 90%, but the Viam capture directory is not at least 50% of that usage, a warning log message will be emitted instead and no action will be taken. + +Automatic file deletion only applies to files in the specified Viam capture directory, which is set to `~/.viam/capture` by default. +Data outside of this directory is not touched by automatic data deletion. + +If your machine captures a large amount of data, or frequently goes offline for long periods of time while capturing data, consider moving the Viam capture directory to a larger, dedicated storage device on your machine if available. +You can change the capture directory using the `capture_dir` attribute. + +You can also control how local data is deleted if your machine's local storage becomes full, using the `delete_every_nth_when_disk_full` attribute. + +## Storage + +Data that is successfully synced to the cloud is automatically deleted from local storage. + +When a machine loses its internet connection, it cannot resume cloud sync until it can reach the Viam Cloud again. + +{{}} + +To ensure that the machine can store all data captured while it has no connection, you need to provide enough local data storage. + +If your robot is offline and can't sync and your machine's disk fills up beyond a certain threshold, the data management service will delete captured data to free up additional space and maintain a working machine. + +Data capture supports capturing tabular data directly to MongoDB in addition to capturing to disk. +For more information, see [Capture directly to MongoDB](/data-ai/reference/advanced-data-capture-sync/#capture-directly-to-your-own-mongodb-cluster). diff --git a/docs/data-ai/capture-data/capture-sync.md b/docs/data-ai/capture-data/capture-sync.md index 8cb3d5512f..31e2628f86 100644 --- a/docs/data-ai/capture-data/capture-sync.md +++ b/docs/data-ai/capture-data/capture-sync.md @@ -51,7 +51,7 @@ The data management service writes data from your configured Viam resources to l - The data management service syncs data to the Viam cloud at a configured sync interval using encrypted gRPC calls and deletes it from the disk once synced. - You can capture and sync data independently; one can run without the other. -For more information, see [How sync works](/data-ai/capture-data/how-sync-works/). +For more information, see [How sync works](/data-ai/capture-data/). ## Configure data capture and sync for individual resources diff --git a/docs/data-ai/capture-data/how-sync-works.md b/docs/data-ai/capture-data/how-sync-works.md deleted file mode 100644 index 6d26f30525..0000000000 --- a/docs/data-ai/capture-data/how-sync-works.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -linkTitle: "How sync works" -title: "How sync works" -tags: ["data management", "data", "services"] -weight: 10 -layout: "docs" -type: "docs" -platformarea: ["data"] -description: "Data capture and sync works differently for viam-server and viam-micro-server." -date: "2024-12-18" -aliases: - - /data-ai/capture-data/advanced/how-sync-works/ - - /data-ai/capture-data/advanced/ -prev: "/data-ai/reference/advanced-data-capture-sync/" ---- - -Data capture and cloud sync works differently for `viam-server` and `viam-micro-server`. - -{{< tabs >}} -{{% tab name="viam-server" %}} - -The data is captured locally on the machine's storage and, by default, stored in the `~/.viam/capture` directory. -For Linux root or sudo users, the `~/.viam/capture` directory resolves to `/root/.viam/capture`. - -{{% expand "Can't find the directory data is stored in? Click here." %}} - -The relative path for the data capture directory depends on where `viam-server` is run from, as well as the operating system of the machine. - -To find the `$HOME` value, check your machine's logs on startup which will log it in the environment variables: - -```sh -2025-01-15T14:27:26.073Z INFO rdk server/entrypoint.go:77 Starting viam-server with following environment variables {"HOME":"/home/johnsmith"} -``` - -{{% /expand%}} - -If a machine restarts for any reason, data capture automatically resumes and any data already stored but not yet synced is synced. - -The service can capture data from multiple resources at the same or different frequencies. -The service does not impose a lower or upper limit on the frequency of data collection. -However, in practice, your hardware may impose limits on the frequency of data collection. -Avoid configuring data capture to higher rates than your hardware can handle, as this could lead to performance degradation. - -Data capture is frequently used with cloud sync. -You can start and stop capture and sync independently. -You can also enable cloud sync without data capture and it will sync data in the capture directory, as well as the additional sync paths configured in the `viam-server` config. -If you place data like images or files in the `~/.viam/capture` directory or another directory set up for sync with the data manager, for example with the `"additional_sync_paths"` config attribute, it will sync this data to the cloud. - -{{% /tab %}} -{{% tab name="viam-micro-server" %}} - -The data is captured in the ESP32's flash memory until it is uploaded to the Viam Cloud. - -If the machine restarts before all data is synced, all unsynced data captured since the last sync point is lost. - -The service can capture data from multiple resources at the same or different frequencies. -The service does not impose a lower or upper limit on the frequency of data collection. -However, in practice, high frequency data collection (> 100Hz) requires special considerations on the ESP32. - -{{% /tab %}} -{{< /tabs >}} - -## Security - -The data management service uses {{< glossary_tooltip term_id="grpc" text="gRPC" >}} calls to send and receive data, so your data is encrypted while in flight. -When data is stored in the cloud, it is encrypted at rest by the cloud storage provider. - -## Data integrity - -Viam's data management service is designed to safeguard against data loss, data duplication and otherwise compromised data. - -If the internet becomes unavailable or the machine needs to restart during the sync process, the sync is interrupted. -If the sync process is interrupted, the service will retry uploading the data at exponentially increasing intervals until the interval in between tries is at one hour, at which point the service retries the sync every hour. -When the connection is restored and sync resumes, the service continues sync where it left off without duplicating data. -If the interruption happens mid-file, sync resumes from the beginning of that file. - -To avoid syncing files that are still being written to, the data management service only syncs arbitrary files that haven't been modified in the previous 10 seconds. -This default can be changed with the [`file_last_modified_millis` config attribute](/data-ai/capture-data/capture-sync/). - -## Automatic data deletion - -If cloud sync is enabled, the data management service deletes captured data from the disk once it has successfully synced to the cloud. - -{{< alert title="Warning" color="warning" >}} - -If your robot is offline and can't sync and your machine's disk fills up beyond a certain threshold, the data management service will delete captured data to free up additional space and maintain a working machine. - -{{< /alert >}} - -The data management service will also automatically delete local data in the event your machine's local storage fills up. -Local data is automatically deleted when _all_ of the following conditions are met: - -- Data capture is enabled on the data management service -- Local disk usage percentage is greater than or equal to 90% -- The Viam capture directory is at least 50% of the current local disk usage - -If local disk usage is greater than or equal to 90%, but the Viam capture directory is not at least 50% of that usage, a warning log message will be emitted instead and no action will be taken. - -Automatic file deletion only applies to files in the specified Viam capture directory, which is set to `~/.viam/capture` by default. -Data outside of this directory is not touched by automatic data deletion. - -If your machine captures a large amount of data, or frequently goes offline for long periods of time while capturing data, consider moving the Viam capture directory to a larger, dedicated storage device on your machine if available. -You can change the capture directory using the `capture_dir` attribute. - -You can also control how local data is deleted if your machine's local storage becomes full, using the `delete_every_nth_when_disk_full` attribute. - -## Storage - -Data that is successfully synced to the cloud is automatically deleted from local storage. - -When a machine loses its internet connection, it cannot resume cloud sync until it can reach the Viam Cloud again. - -{{}} - -To ensure that the machine can store all data captured while it has no connection, you need to provide enough local data storage. - -If your robot is offline and can't sync and your machine's disk fills up beyond a certain threshold, the data management service will delete captured data to free up additional space and maintain a working machine. - -Data capture supports capturing tabular data directly to MongoDB in addition to capturing to disk. -For more information, see [Capture directly to MongoDB](/data-ai/reference/advanced-data-capture-sync/#capture-directly-to-your-own-mongodb-cluster). diff --git a/docs/data-ai/data/alert-data.md b/docs/data-ai/data/alert-data.md index 1d6a168a1f..22ff1caef1 100644 --- a/docs/data-ai/data/alert-data.md +++ b/docs/data-ai/data/alert-data.md @@ -1,5 +1,5 @@ --- -linkTitle: "Alert" +linkTitle: "Alert on data" title: "Alert on data" weight: 60 layout: "docs" diff --git a/docs/data-ai/data/export.md b/docs/data-ai/data/export.md index d093430ca9..5b27f092f9 100644 --- a/docs/data-ai/data/export.md +++ b/docs/data-ai/data/export.md @@ -1,5 +1,5 @@ --- -linkTitle: "Export" +linkTitle: "Export data" title: "Export data" weight: 40 description: "Download data from the Viam app using the data client API or the Viam CLI." diff --git a/docs/data-ai/data/query.md b/docs/data-ai/data/query.md index 30bab61cd4..f28782cbc3 100644 --- a/docs/data-ai/data/query.md +++ b/docs/data-ai/data/query.md @@ -1,5 +1,5 @@ --- -linkTitle: "Query" +linkTitle: "Query data" title: "Query data" weight: 20 layout: "docs" diff --git a/docs/data-ai/data/visualize.md b/docs/data-ai/data/visualize.md index 4c23f9e117..d8e41de4d7 100644 --- a/docs/data-ai/data/visualize.md +++ b/docs/data-ai/data/visualize.md @@ -1,5 +1,5 @@ --- -linkTitle: "Visualize" +linkTitle: "Visualize data" title: "Visualize data" weight: 20 layout: "docs" diff --git a/docs/data-ai/inference/_index.md b/docs/data-ai/inference/_index.md index 619950fa8b..b228b8b821 100644 --- a/docs/data-ai/inference/_index.md +++ b/docs/data-ai/inference/_index.md @@ -2,9 +2,156 @@ linkTitle: "Run inference" title: "Run inference" weight: 300 -layout: "empty" +layout: "docs" type: "docs" -empty_node: true open_on_desktop: true header_only: true +aliases: + - /how-tos/detect-people/ + - /get-started/detect-people/ + - /how-tos/detect-color/ + - /services/vision/ + - /ml/vision/detection/ + - /ml/vision/classification/ + - /ml/vision/segmentation/ + - /ml/vision/ + - /get-started/quickstarts/detect-people/ + - /data-ai/ai/run-inference/ +description: "Run inference on a model with a vision service or an SDK." --- + +Inference is the process of generating output from a machine learning (ML) model. +With Viam, you can run inference to generate the following kinds of output: + +- object detection (using bounding boxes) +- classification (using tags) + +You can run inference locally on a Viam machine, or remotely in the Viam cloud. + +## Machine inference + +You can use `viam-server` to deploy and run ML models directly on your machines. + +You can run inference on your machine in the following ways: + +- with a vision service +- manually in application logic with an SDK + +Entry-level devices such as the Raspberry Pi 4 can run small ML models, such as TensorFlow Lite (TFLite). +More powerful hardware, including the Jetson Xavier or Raspberry Pi 5 with an AI HAT+, can process larger AI models, including Tensorflow and ONNX. + +{{< tabs >}} +{{% tab name="Vision service" %}} + +Vision services apply an ML model to a stream of images from a camera to generate bounding boxes or classifications. + +{{}} + +{{% alert title="Tip" color="tip" %}} +Some vision services include their own ML models, and thus do not require a deployed ML model. +If your vision service does not include an ML model, you must [deploy an ML model to your machine](/data-ai/ai/deploy/) to use that service. +{{% /alert %}} + +To use a vision service: + +1. Visit the **CONFIGURE** page of the Viam app. +1. Click the **+** icon next to your main machine part and select **Component or service**. +1. Type in the name of the service and select a vision service. +1. If your vision service does not include an ML model, [deploy an ML model to your machine](/data-ai/ai/deploy/) to use that service. +1. Configure the service based on your use case. +1. To view the deployed vision service, use the live detection feed in the Viam app. + The feed shows an overlay of detected objects or classifications on top of a live camera feed. + On the **CONFIGURE** or **CONTROL** pages for your machine, expand the **Test** area of the service panel to view the feed. + + {{< imgproc src="/tutorials/data-management/blue-star.png" alt="Detected blue star" resize="x200" class="shadow" >}} + {{< imgproc src="/tutorials/filtered-camera-module/viam-figure-preview.png" alt="Detection of a viam figure with a confidence score of 0.97" resize="x200" class="shadow" >}} + +For instance, you could use [`viam:vision:mlmodel`](/operate/reference/services/vision/mlmodel/) with the `EfficientDet-COCO` ML model to detect a variety of objects, including people, bicycles, and apples, in a camera feed. + +Alternatively, you could use [`viam-soleng:vision:openalpr`](https://app.viam.com/module/viam-soleng/viamalpr) to detect license plates in images. +Since this service includes its own ML model, there is no need to configure a separate ML model. + +After adding a vision service, you can use a vision service API method with a classifier or a detector to get inferences programmatically. +For more information, see the APIs for [ML Model](/dev/reference/apis/services/ml/) and [Vision](/dev/reference/apis/services/vision/). + +{{% /tab %}} +{{% tab name="SDK" %}} + +With the Viam SDK, you can pass image data to an ML model service, read the output annotations, and react to output in your own code. +Use the [`Infer`](/dev/reference/apis/services/ml/#infer) method of the ML Model API to make inferences. + +For example: + +{{< tabs >}} +{{% tab name="Python" %}} + +```python {class="line-numbers linkable-line-numbers"} +import numpy as np + +my_mlmodel = MLModelClient.from_robot(robot=machine, name="my_mlmodel_service") + +image_data = np.zeros((1, 384, 384, 3), dtype=np.uint8) + +# Create the input tensors dictionary +input_tensors = { + "image": image_data +} + +output_tensors = await my_mlmodel.infer(input_tensors) +``` + +{{% /tab %}} +{{% tab name="Go" %}} + +```go {class="line-numbers linkable-line-numbers"} +input_tensors := ml.Tensors{"0": tensor.New(tensor.WithShape(1, 2, 3), tensor.WithBacking([]int{1, 2, 3, 4, 5, 6}))} + +output_tensors, err := myMLModel.Infer(context.Background(), input_tensors) +``` + +{{% /tab %}} +{{< /tabs >}} + +{{% /tab %}} +{{< /tabs >}} + +## Cloud inference + +Cloud inference enables you to run machine learning models in the Viam cloud, instead of on a local machine. +Cloud inference often provides more computing power than edge devices, so you can benefit from: + +- larger, more accurate models +- faster inference times + +You can run cloud inference using any Tensorflow model in the Viam registry, including private models owned by or shared with your organization. + +To run cloud inference, you must pass + +- the binary data ID and organization of the data you want to run inference on +- the name, version, and organization of the model you want to use for inference + +The [`viam infer`](/dev/tools/cli/#infer) CLI command runs inference in the cloud on a piece of data using the specified ML model: + +```sh {class="command-line" data-prompt="$" data-output="2-18"} +viam infer --binary-data-id --model-name --model-org-id --model-version "2025-04-14T16-38-25" --org-id +Inference Response: +Output Tensors: + Tensor Name: num_detections + Shape: [1] + Values: [1.0000] + Tensor Name: classes + Shape: [32 1] + Values: [...] + Tensor Name: boxes + Shape: [32 1 4] + Values: [...] + Tensor Name: confidence + Shape: [32 1] + Values: [...] +Annotations: +Bounding Box Format: [x_min, y_min, x_max, y_max] + No annotations. +``` + +`infer` returns a list of detected classes or bounding boxes depending on the output of the ML model you specified, as well as a list of confidence values for those classes or boxes. +This method returns bounding box output using proportional coordinates between 0 and 1, with the origin `(0, 0)` in the top left of the image and `(1, 1)` in the bottom right. diff --git a/docs/data-ai/inference/alert.md b/docs/data-ai/inference/alert.md index 1e67b92d79..8c08c3be4d 100644 --- a/docs/data-ai/inference/alert.md +++ b/docs/data-ai/inference/alert.md @@ -23,7 +23,7 @@ For example, a trigger could alert you when a camera feed detects an anomaly. {{< expand "A configured camera and vision service." >}} -Follow the instructions to [configure a camera](/operate/reference/components/camera/) and [run inference](/data-ai/inference/run-inference/). +Follow the instructions to [configure a camera](/operate/reference/components/camera/) and [run inference](/data-ai/inference/). {{< /expand >}} diff --git a/docs/data-ai/inference/augment-visual-inference-with-sensor-data.md b/docs/data-ai/inference/augment-visual-inference-with-sensor-data.md new file mode 100644 index 0000000000..92028090e2 --- /dev/null +++ b/docs/data-ai/inference/augment-visual-inference-with-sensor-data.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Augment visual inference" +title: "Augment visual inference" +weight: 100 +layout: "docs" +type: "docs" +aliases: + - /data-ai/ai/alert/ +description: "Combine visual inference with sensor data for additional context to improve results." +--- diff --git a/docs/data-ai/inference/autonomous-decision-making.md b/docs/data-ai/inference/autonomous-decision-making.md new file mode 100644 index 0000000000..6ed915eedf --- /dev/null +++ b/docs/data-ai/inference/autonomous-decision-making.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Autonomous decision-making" +title: "Autonomous decision-making" +weight: 70 +layout: "docs" +type: "docs" +aliases: + - /data-ai/ai/alert/ +description: "Use Viam to configure on-device logic for autonomous, offline-friendly operation." +--- diff --git a/docs/data-ai/inference/detect-anomolies-tabular-data.md b/docs/data-ai/inference/detect-anomolies-tabular-data.md new file mode 100644 index 0000000000..8ded867ae2 --- /dev/null +++ b/docs/data-ai/inference/detect-anomolies-tabular-data.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Detect anomolies in tabular data" +title: "Detect anomolies in tabular data" +weight: 80 +layout: "docs" +type: "docs" +aliases: + - /data-ai/ai/alert/ +description: "Detect significant events in tabular data." +--- diff --git a/docs/data-ai/inference/manipulate-objects.md b/docs/data-ai/inference/manipulate-objects.md new file mode 100644 index 0000000000..d2e228e643 --- /dev/null +++ b/docs/data-ai/inference/manipulate-objects.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Manipulate objects" +title: "Manipulate objects" +weight: 90 +layout: "docs" +type: "docs" +aliases: + - /data-ai/ai/alert/ +description: "Detect and manipulate a physical object using a peripheral like a robotic arm." +--- diff --git a/docs/data-ai/inference/output-tabular-data-from-inference.md b/docs/data-ai/inference/output-tabular-data-from-inference.md new file mode 100644 index 0000000000..f134add987 --- /dev/null +++ b/docs/data-ai/inference/output-tabular-data-from-inference.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Output tabular data" +title: "Output tabular data" +weight: 80 +layout: "docs" +type: "docs" +aliases: + - /data-ai/ai/alert/ +description: "Output aggregated inferred data to a tabular format." +--- diff --git a/docs/data-ai/inference/run-inference.md b/docs/data-ai/inference/run-inference.md deleted file mode 100644 index f9f5134a50..0000000000 --- a/docs/data-ai/inference/run-inference.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -linkTitle: "Run inference" -title: "Run inference on a model" -weight: 50 -layout: "docs" -type: "docs" -modulescript: true -aliases: - - /how-tos/detect-people/ - - /get-started/detect-people/ - - /how-tos/detect-color/ - - /services/vision/ - - /ml/vision/detection/ - - /ml/vision/classification/ - - /ml/vision/segmentation/ - - /ml/vision/ - - /get-started/quickstarts/detect-people/ - - /data-ai/ai/run-inference/ -description: "Run inference on a model with a vision service or an SDK." ---- - -Inference is the process of generating output from a machine learning (ML) model. -With Viam, you can run inference to generate the following kinds of output: - -- object detection (using bounding boxes) -- classification (using tags) - -You can run inference locally on a Viam machine, or remotely in the Viam cloud. - -## Machine inference - -You can use `viam-server` to deploy and run ML models directly on your machines. - -You can run inference on your machine in the following ways: - -- with a vision service -- manually in application logic with an SDK - -Entry-level devices such as the Raspberry Pi 4 can run small ML models, such as TensorFlow Lite (TFLite). -More powerful hardware, including the Jetson Xavier or Raspberry Pi 5 with an AI HAT+, can process larger AI models, including Tensorflow and ONNX. - -{{< tabs >}} -{{% tab name="Vision service" %}} - -Vision services apply an ML model to a stream of images from a camera to generate bounding boxes or classifications. - -{{}} - -{{% alert title="Tip" color="tip" %}} -Some vision services include their own ML models, and thus do not require a deployed ML model. -If your vision service does not include an ML model, you must [deploy an ML model to your machine](/data-ai/ai/deploy/) to use that service. -{{% /alert %}} - -To use a vision service: - -1. Visit the **CONFIGURE** page of the Viam app. -1. Click the **+** icon next to your main machine part and select **Component or service**. -1. Type in the name of the service and select a vision service. -1. If your vision service does not include an ML model, [deploy an ML model to your machine](/data-ai/ai/deploy/) to use that service. -1. Configure the service based on your use case. -1. To view the deployed vision service, use the live detection feed in the Viam app. - The feed shows an overlay of detected objects or classifications on top of a live camera feed. - On the **CONFIGURE** or **CONTROL** pages for your machine, expand the **Test** area of the service panel to view the feed. - - {{< imgproc src="/tutorials/data-management/blue-star.png" alt="Detected blue star" resize="x200" class="shadow" >}} - {{< imgproc src="/tutorials/filtered-camera-module/viam-figure-preview.png" alt="Detection of a viam figure with a confidence score of 0.97" resize="x200" class="shadow" >}} - -For instance, you could use [`viam:vision:mlmodel`](/operate/reference/services/vision/mlmodel/) with the `EfficientDet-COCO` ML model to detect a variety of objects, including people, bicycles, and apples, in a camera feed. - -Alternatively, you could use [`viam-soleng:vision:openalpr`](https://app.viam.com/module/viam-soleng/viamalpr) to detect license plates in images. -Since this service includes its own ML model, there is no need to configure a separate ML model. - -After adding a vision service, you can use a vision service API method with a classifier or a detector to get inferences programmatically. -For more information, see the APIs for [ML Model](/dev/reference/apis/services/ml/) and [Vision](/dev/reference/apis/services/vision/). - -{{% /tab %}} -{{% tab name="SDK" %}} - -With the Viam SDK, you can pass image data to an ML model service, read the output annotations, and react to output in your own code. -Use the [`Infer`](/dev/reference/apis/services/ml/#infer) method of the ML Model API to make inferences. - -For example: - -{{< tabs >}} -{{% tab name="Python" %}} - -```python {class="line-numbers linkable-line-numbers"} -import numpy as np - -my_mlmodel = MLModelClient.from_robot(robot=machine, name="my_mlmodel_service") - -image_data = np.zeros((1, 384, 384, 3), dtype=np.uint8) - -# Create the input tensors dictionary -input_tensors = { - "image": image_data -} - -output_tensors = await my_mlmodel.infer(input_tensors) -``` - -{{% /tab %}} -{{% tab name="Go" %}} - -```go {class="line-numbers linkable-line-numbers"} -input_tensors := ml.Tensors{"0": tensor.New(tensor.WithShape(1, 2, 3), tensor.WithBacking([]int{1, 2, 3, 4, 5, 6}))} - -output_tensors, err := myMLModel.Infer(context.Background(), input_tensors) -``` - -{{% /tab %}} -{{< /tabs >}} - -{{% /tab %}} -{{< /tabs >}} - -## Cloud inference - -Cloud inference enables you to run machine learning models in the Viam cloud, instead of on a local machine. -Cloud inference often provides more computing power than edge devices, so you can benefit from: - -- larger, more accurate models -- faster inference times - -You can run cloud inference using any Tensorflow model in the Viam registry, including private models owned by or shared with your organization. - -To run cloud inference, you must pass - -- the binary data ID and organization of the data you want to run inference on -- the name, version, and organization of the model you want to use for inference - -The [`viam infer`](/dev/tools/cli/#infer) CLI command runs inference in the cloud on a piece of data using the specified ML model: - -```sh {class="command-line" data-prompt="$" data-output="2-18"} -viam infer --binary-data-id --model-name --model-org-id --model-version "2025-04-14T16-38-25" --org-id -Inference Response: -Output Tensors: - Tensor Name: num_detections - Shape: [1] - Values: [1.0000] - Tensor Name: classes - Shape: [32 1] - Values: [...] - Tensor Name: boxes - Shape: [32 1 4] - Values: [...] - Tensor Name: confidence - Shape: [32 1] - Values: [...] -Annotations: -Bounding Box Format: [x_min, y_min, x_max, y_max] - No annotations. -``` - -`infer` returns a list of detected classes or bounding boxes depending on the output of the ML model you specified, as well as a list of confidence values for those classes or boxes. -This method returns bounding box output using proportional coordinates between 0 and 1, with the origin `(0, 0)` in the top left of the image and `(1, 1)` in the bottom right. diff --git a/docs/data-ai/inference/track-objects-on-video.md b/docs/data-ai/inference/track-objects-on-video.md new file mode 100644 index 0000000000..4f0a700127 --- /dev/null +++ b/docs/data-ai/inference/track-objects-on-video.md @@ -0,0 +1,10 @@ +--- +linkTitle: "Track objects on video" +title: "Track objects on video" +weight: 100 +layout: "docs" +type: "docs" +aliases: + - /data-ai/ai/alert/ +description: "Track objects persistently between frames of a video." +--- diff --git a/docs/data-ai/quickstart/_index.md b/docs/data-ai/quickstart/_index.md index a28ac793ff..10ddedb0c7 100644 --- a/docs/data-ai/quickstart/_index.md +++ b/docs/data-ai/quickstart/_index.md @@ -2,9 +2,16 @@ linkTitle: "Quickstart" title: "Quickstart" weight: 1 -layout: "empty" +layout: "docs" type: "docs" -empty_node: true open_on_desktop: true header_only: true --- + +{{< how-to-expand "Quickstart" "" "" "" "" >}} +{{< cards >}} +{{% card link="/data-ai/quickstart/set-up-viam/" noimage="true" %}} +{{% card link="/data-ai/quickstart/capture" noimage="true" %}} +{{% card link="/data-ai/quickstart/infer/" noimage="true" %}} +{{< /cards >}} +{{< /how-to-expand >}} diff --git a/docs/data-ai/quickstart/capture.md b/docs/data-ai/quickstart/capture.md index c9be780244..484faf162c 100644 --- a/docs/data-ai/quickstart/capture.md +++ b/docs/data-ai/quickstart/capture.md @@ -1,9 +1,9 @@ --- -linkTitle: "Capture data" -title: "Capture data" +linkTitle: "Capture image data" +title: "Quickstart: Capture image data" weight: 20 layout: "docs" type: "docs" -description: "Use the vision service API to act based on inferences." +description: "Capture images on your machine to use for inference." next: "/data-ai/quickstart/infer/" --- diff --git a/docs/data-ai/quickstart/infer.md b/docs/data-ai/quickstart/infer.md index c9a374a767..2f9b34dbe1 100644 --- a/docs/data-ai/quickstart/infer.md +++ b/docs/data-ai/quickstart/infer.md @@ -1,9 +1,9 @@ --- -linkTitle: "Run inference" -title: "Run inference" +linkTitle: "Detect objects" +title: "Quickstart: Detect objects" weight: 30 layout: "docs" type: "docs" -description: "Use the vision service API to act based on inferences." +description: "Use a pre-trained ML model to infer the presence of common objects in your captured images." next: "/data-ai/ai/train-tflite/" --- diff --git a/docs/data-ai/quickstart/set-up-viam.md b/docs/data-ai/quickstart/set-up-viam.md index f0e36002ff..e61be93ad9 100644 --- a/docs/data-ai/quickstart/set-up-viam.md +++ b/docs/data-ai/quickstart/set-up-viam.md @@ -1,10 +1,10 @@ --- linkTitle: "Set up Viam" -title: "Set up Viam" +title: "Quickstart: Set up Viam" weight: 10 layout: "docs" type: "docs" -description: "Use the vision service API to act based on inferences." +description: "Set up Viam on your machine." aliases: - /data-ai/quickstart/setup/ next: "/data-ai/quickstart/capture/" diff --git a/docs/data-ai/reference/advanced-data-capture-sync.md b/docs/data-ai/reference/advanced-data-capture-sync.md index 3065fb693f..390c44ce11 100644 --- a/docs/data-ai/reference/advanced-data-capture-sync.md +++ b/docs/data-ai/reference/advanced-data-capture-sync.md @@ -83,12 +83,12 @@ The following attributes are available for the data management service: | `capture_dir` | string | Optional | Path to the directory on your machine where you want to store captured data. If you change the directory for data capture, only new data is stored in the new directory. Existing data remains in the directory where it was stored.
Default: `~/.viam/capture` |

| | `tags` | array of strings | Optional | Tags to apply to all images or tabular data captured by this machine part. May include alphanumeric characters, underscores, and dashes. | | | `sync_disabled` | bool | Optional | Toggle cloud sync on or off for the entire machine {{< glossary_tooltip term_id="part" text="part" >}}.
Default: `false` | | -| `additional_sync_paths` | string array | Optional | Paths to any other directories on your machine from which you want to sync data to the cloud. Once data is synced from a directory, it is automatically deleted from your machine. We recommend using absolute paths. For relative paths, see [How sync works](/data-ai/capture-data/how-sync-works/#cant-find-the-directory-data-is-stored-in-click-here). | | +| `additional_sync_paths` | string array | Optional | Paths to any other directories on your machine from which you want to sync data to the cloud. Once data is synced from a directory, it is automatically deleted from your machine. We recommend using absolute paths. For relative paths, see [How sync works](/data-ai/capture-data/#cant-find-the-directory-data-is-stored-in-click-here). | | | `sync_interval_mins` | float | Optional | Time interval in minutes between syncing to the cloud. Viam does not impose a minimum or maximum on the frequency of data syncing. However, in practice, your hardware or network speed may impose limits on the frequency of data syncing.
Default: `0.1`, meaning once every 6 seconds. |

| | `delete_data_on_part_deletion` | bool | Optional | Whether deleting this {{< glossary_tooltip term_id="machine" text="machine" >}} or {{< glossary_tooltip term_id="part" text="machine part" >}} should result in deleting all the data captured by that machine part.
Default: `false` |

| -| `delete_every_nth_when_disk_full` | int | Optional | How many files to delete when local storage meets the [fullness criteria](/data-ai/capture-data/how-sync-works/#storage). The data management service will delete every Nth file that has been captured upon reaching this threshold. Use JSON mode to configure this attribute.
Default: `5`, meaning that every fifth captured file will be deleted. | | +| `delete_every_nth_when_disk_full` | int | Optional | How many files to delete when local storage meets the [fullness criteria](/data-ai/capture-data/#storage). The data management service will delete every Nth file that has been captured upon reaching this threshold. Use JSON mode to configure this attribute.
Default: `5`, meaning that every fifth captured file will be deleted. | | | `maximum_num_sync_threads` | int | Optional | Max number of CPU threads to use for syncing data to the Viam Cloud.
Default: [runtime.NumCPU](https://pkg.go.dev/runtime#NumCPU)/2 so half the number of logical CPUs available to viam-server | | -| `mongo_capture_config.uri` | string | Optional | The [MongoDB URI](https://www.mongodb.com/docs/v6.2/reference/connection-string/) data capture will attempt to write tabular data to after it is enqueued to be written to disk. When non-empty, data capture will capture tabular data to the configured MongoDB database and collection at that URI.
See `mongo_capture_config.database` and `mongo_capture_config.collection` below for database and collection defaults.
See [Data capture directly to MongoDB](/data-ai/capture-data/how-sync-works/#storage) for an example config.| | +| `mongo_capture_config.uri` | string | Optional | The [MongoDB URI](https://www.mongodb.com/docs/v6.2/reference/connection-string/) data capture will attempt to write tabular data to after it is enqueued to be written to disk. When non-empty, data capture will capture tabular data to the configured MongoDB database and collection at that URI.
See `mongo_capture_config.database` and `mongo_capture_config.collection` below for database and collection defaults.
See [Data capture directly to MongoDB](/data-ai/capture-data/#storage) for an example config.| | | `mongo_capture_config.database` | string | Optional | When `mongo_capture_config.uri` is non empty, changes the database data capture will write tabular data to.
Default: `"sensorData"` | | | `mongo_capture_config.collection` | string | Optional | When `mongo_capture_config.uri` is non empty, changes the collection data capture will write tabular data to.
Default: `"readings"` | | | `cache_size_kb` | float | Optional | `viam-micro-server` only. The maximum amount of storage bytes (in kilobytes) allocated to a data collector.
Default: `1` KB. |

| diff --git a/docs/data-ai/reference/architecture.md b/docs/data-ai/reference/architecture.md deleted file mode 100644 index 17dfcd3acc..0000000000 --- a/docs/data-ai/reference/architecture.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -linkTitle: "Machine-cloud architecture" -title: "Viam architecture" -weight: 1000 -layout: "docs" -type: "docs" -layout: "empty" -canonical: "/operate/reference/architecture/" ---- diff --git a/docs/dev/reference/glossary/ml.md b/docs/dev/reference/glossary/ml.md index c5a0f9b43f..6da5623545 100644 --- a/docs/dev/reference/glossary/ml.md +++ b/docs/dev/reference/glossary/ml.md @@ -9,4 +9,4 @@ type: "page" ML stands for machine learning, a field of artificial intelligence that focuses on building systems that can learn from and make decisions based on data. -Viam provides tools for [training ML models](/data-ai/ai/train/), [deploying them to machines](/data-ai/ai/deploy/), [running inference](/data-ai/inference/run-inference/), and [interpret visual data from cameras](/data-ai/inference/alert/) to enable intelligent behavior in robotic systems. +Viam provides tools for [training ML models](/data-ai/ai/train/), [deploying them to machines](/data-ai/ai/deploy/), [running inference](/data-ai/inference/), and [interpret visual data from cameras](/data-ai/inference/alert/) to enable intelligent behavior in robotic systems. diff --git a/docs/dev/tools/cli.md b/docs/dev/tools/cli.md index 4b42e06412..6bac0c0c5d 100644 --- a/docs/dev/tools/cli.md +++ b/docs/dev/tools/cli.md @@ -546,7 +546,7 @@ done ### `infer` -The `infer` command enables you to run [cloud inference](/data-ai/inference/run-inference/#cloud-inference) on data. Cloud inference runs in the cloud, instead of on a local machine. +The `infer` command enables you to run [cloud inference](/data-ai/inference/#cloud-inference) on data. Cloud inference runs in the cloud, instead of on a local machine. ```sh {class="command-line" data-prompt="$" data-output="2-18"} viam infer --binary-data-id --model-name --model-org-id --model-version "2025-04-14T16-38-25" --org-id diff --git a/docs/operate/reference/architecture/_index.md b/docs/operate/reference/architecture/_index.md index a6be6ed63b..b135f2fc09 100644 --- a/docs/operate/reference/architecture/_index.md +++ b/docs/operate/reference/architecture/_index.md @@ -10,6 +10,7 @@ tags: ["components", "services", "communication"] date: "2024-08-13" aliases: - /architecture/ + - /data-ai/reference/architecture # updated: "" # When the content was last entirely checked --- diff --git a/docs/operate/reference/components/camera/webcam.md b/docs/operate/reference/components/camera/webcam.md index e610193208..d09c542d3d 100644 --- a/docs/operate/reference/components/camera/webcam.md +++ b/docs/operate/reference/components/camera/webcam.md @@ -272,7 +272,7 @@ If you are using a CSI camera v1.3 or v2.0, or v3.0 with a Raspberry Pi, use the For CSI cameras used with Jetsons, use the `viam:camera:csi` model provided by the same module. For Raspberry Pi AI cameras like the IMX500 AI camera, use a module such as [this `viam-pi-ai-camera` vision service](https://github.com/HipsterBrown/viam-pi-ai-camera). -For more information about the vision service, see [run inference](https://docs.viam.com/data-ai/inference/run-inference/). +For more information about the vision service, see [run inference](https://docs.viam.com/data-ai/inference/). {{% /expand%}} {{% expand "High CPU usage" %}} From 75752ad0ad9ac7b02b1fa956309bb4598db557e4 Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 16:24:34 -0400 Subject: [PATCH 7/9] Fix typo --- ...olies-tabular-data.md => detect-anomalies-tabular-data.md} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename docs/data-ai/inference/{detect-anomolies-tabular-data.md => detect-anomalies-tabular-data.md} (60%) diff --git a/docs/data-ai/inference/detect-anomolies-tabular-data.md b/docs/data-ai/inference/detect-anomalies-tabular-data.md similarity index 60% rename from docs/data-ai/inference/detect-anomolies-tabular-data.md rename to docs/data-ai/inference/detect-anomalies-tabular-data.md index 8ded867ae2..0846aabd0c 100644 --- a/docs/data-ai/inference/detect-anomolies-tabular-data.md +++ b/docs/data-ai/inference/detect-anomalies-tabular-data.md @@ -1,6 +1,6 @@ --- -linkTitle: "Detect anomolies in tabular data" -title: "Detect anomolies in tabular data" +linkTitle: "Detect anomalies in tabular data" +title: "Detect anomalies in tabular data" weight: 80 layout: "docs" type: "docs" From b444a72af2a89b017cdf968e1e4a6c5208b98c42 Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 16:27:04 -0400 Subject: [PATCH 8/9] Fix canonical link --- docs/operate/reference/services/vision/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/operate/reference/services/vision/_index.md b/docs/operate/reference/services/vision/_index.md index 16258ba0e3..a4dc1b6030 100644 --- a/docs/operate/reference/services/vision/_index.md +++ b/docs/operate/reference/services/vision/_index.md @@ -4,5 +4,5 @@ linkTitle: "Vision Service" weight: 20 type: "docs" layout: "empty" -canonical: "/data-ai/inference/run-inference/" +canonical: "/data-ai/inference/" --- From 547d940a28bcbcb0cbe5711ca6f45473eed17f1a Mon Sep 17 00:00:00 2001 From: nathan contino Date: Tue, 27 May 2025 16:37:25 -0400 Subject: [PATCH 9/9] Add aliases to fix build --- docs/data-ai/capture-data/_index.md | 1 + docs/data-ai/inference/_index.md | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/data-ai/capture-data/_index.md b/docs/data-ai/capture-data/_index.md index e48211702d..abd5954e86 100644 --- a/docs/data-ai/capture-data/_index.md +++ b/docs/data-ai/capture-data/_index.md @@ -9,6 +9,7 @@ header_only: true aliases: - /data-ai/capture-data/advanced/how-sync-works/ - /data-ai/capture-data/advanced/ + - /data-ai/capture-data/how-sync-works/ --- `viam-server` and `viam-micro-server` handle data sync in distinct ways: diff --git a/docs/data-ai/inference/_index.md b/docs/data-ai/inference/_index.md index b228b8b821..40016bb285 100644 --- a/docs/data-ai/inference/_index.md +++ b/docs/data-ai/inference/_index.md @@ -17,6 +17,7 @@ aliases: - /ml/vision/ - /get-started/quickstarts/detect-people/ - /data-ai/ai/run-inference/ + - /data-ai/inference/run-inference/ description: "Run inference on a model with a vision service or an SDK." ---