diff --git a/docs/data-ai/_index.md b/docs/data-ai/_index.md
index 9554e6f352..fcdf8cb8d5 100644
--- a/docs/data-ai/_index.md
+++ b/docs/data-ai/_index.md
@@ -25,32 +25,47 @@ 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/" 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" %}}
-{{% 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 >}}
-{{< how-to-expand "Leverage AI" "8" "INTERMEDIATE" "" "data-platform-ai" >}}
+{{< how-to-expand "Run inference" "" "" "" "data-platform-ai" >}}
+{{< cards >}}
+{{% card link="/data-ai/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/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/ai/upload-external-data/" 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/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 be88f3fa72..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/ai/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-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..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/ai/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/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..c7f39be002 100644
--- a/docs/data-ai/ai/advanced/upload-external-data.md
+++ b/docs/data-ai/ai/upload-external-data.md
@@ -11,9 +11,11 @@ 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/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/_index.md b/docs/data-ai/capture-data/_index.md
index 4758d426bb..abd5954e86 100644
--- a/docs/data-ai/capture-data/_index.md
+++ b/docs/data-ai/capture-data/_index.md
@@ -2,10 +2,117 @@
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/
+ - /data-ai/capture-data/how-sync-works/
---
+
+`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/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/advanced/how-sync-works.md b/docs/data-ai/capture-data/advanced/how-sync-works.md
deleted file mode 100644
index a6f943f2af..0000000000
--- a/docs/data-ai/capture-data/advanced/how-sync-works.md
+++ /dev/null
@@ -1,118 +0,0 @@
----
-linkTitle: "How sync works"
-title: "How sync works"
-tags: ["data management", "data", "services"]
-weight: 12
-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/"
----
-
-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.
-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).
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..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/advanced/how-sync-works/).
+For more information, see [How sync works](/data-ai/capture-data/).
## Configure data capture and sync for individual resources
@@ -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/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 98%
rename from docs/data-ai/data/advanced/alert-data.md
rename to docs/data-ai/data/alert-data.md
index e3ff237bbe..22ff1caef1 100644
--- a/docs/data-ai/data/advanced/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/data/export.md b/docs/data-ai/data/export.md
index 4d53b0be07..5b27f092f9 100644
--- a/docs/data-ai/data/export.md
+++ b/docs/data-ai/data/export.md
@@ -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..f28782cbc3 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/ai/run-inference.md b/docs/data-ai/inference/_index.md
similarity index 98%
rename from docs/data-ai/ai/run-inference.md
rename to docs/data-ai/inference/_index.md
index 7466107b97..40016bb285 100644
--- a/docs/data-ai/ai/run-inference.md
+++ b/docs/data-ai/inference/_index.md
@@ -1,10 +1,11 @@
---
linkTitle: "Run inference"
title: "Run inference"
-weight: 50
+weight: 300
layout: "docs"
type: "docs"
-modulescript: true
+open_on_desktop: true
+header_only: true
aliases:
- /how-tos/detect-people/
- /get-started/detect-people/
@@ -15,6 +16,8 @@ aliases:
- /ml/vision/segmentation/
- /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."
---
diff --git a/docs/data-ai/ai/act.md b/docs/data-ai/inference/act.md
similarity index 98%
rename from docs/data-ai/ai/act.md
rename to docs/data-ai/inference/act.md
index 53dea9a2d4..49febf1d43 100644
--- a/docs/data-ai/ai/act.md
+++ b/docs/data-ai/inference/act.md
@@ -5,7 +5,9 @@ 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/"
+aliases:
+ - /data-ai/ai/act/
+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..8c08c3be4d 100644
--- a/docs/data-ai/ai/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."
---
@@ -21,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/ai/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-anomalies-tabular-data.md b/docs/data-ai/inference/detect-anomalies-tabular-data.md
new file mode 100644
index 0000000000..0846aabd0c
--- /dev/null
+++ b/docs/data-ai/inference/detect-anomalies-tabular-data.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "Detect anomalies in tabular data"
+title: "Detect anomalies 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/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
new file mode 100644
index 0000000000..10ddedb0c7
--- /dev/null
+++ b/docs/data-ai/quickstart/_index.md
@@ -0,0 +1,17 @@
+---
+linkTitle: "Quickstart"
+title: "Quickstart"
+weight: 1
+layout: "docs"
+type: "docs"
+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
new file mode 100644
index 0000000000..484faf162c
--- /dev/null
+++ b/docs/data-ai/quickstart/capture.md
@@ -0,0 +1,9 @@
+---
+linkTitle: "Capture image data"
+title: "Quickstart: Capture image data"
+weight: 20
+layout: "docs"
+type: "docs"
+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
new file mode 100644
index 0000000000..2f9b34dbe1
--- /dev/null
+++ b/docs/data-ai/quickstart/infer.md
@@ -0,0 +1,9 @@
+---
+linkTitle: "Detect objects"
+title: "Quickstart: Detect objects"
+weight: 30
+layout: "docs"
+type: "docs"
+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
new file mode 100644
index 0000000000..e61be93ad9
--- /dev/null
+++ b/docs/data-ai/quickstart/set-up-viam.md
@@ -0,0 +1,11 @@
+---
+linkTitle: "Set up Viam"
+title: "Quickstart: Set up Viam"
+weight: 10
+layout: "docs"
+type: "docs"
+description: "Set up Viam on your machine."
+aliases:
+ - /data-ai/quickstart/setup/
+next: "/data-ai/quickstart/capture/"
+---
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 96%
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..390c44ce11 100644
--- a/docs/data-ai/capture-data/advanced/advanced-data-capture-sync.md
+++ b/docs/data-ai/reference/advanced-data-capture-sync.md
@@ -1,12 +1,14 @@
---
-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"
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"
---
@@ -81,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/#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/#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/#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. |
|
@@ -705,9 +707,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 80%
rename from docs/data-ai/reference/data-client.md
rename to docs/data-ai/reference/api/data-client.md
index e283551be4..15f0e2d1f0 100644
--- a/docs/data-ai/reference/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/data-management-client.md b/docs/data-ai/reference/api/data-management-client.md
similarity index 73%
rename from docs/data-ai/reference/data-management-client.md
rename to docs/data-ai/reference/api/data-management-client.md
index 9b25725d0b..7b53818177 100644
--- a/docs/data-ai/reference/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/ml-model-client.md b/docs/data-ai/reference/api/ml-model-client.md
similarity index 74%
rename from docs/data-ai/reference/ml-model-client.md
rename to docs/data-ai/reference/api/ml-model-client.md
index beeb82c808..f1af352600 100644
--- a/docs/data-ai/reference/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/ml-training-client.md b/docs/data-ai/reference/api/ml-training-client.md
similarity index 78%
rename from docs/data-ai/reference/ml-training-client.md
rename to docs/data-ai/reference/api/ml-training-client.md
index 60053e550e..809ef9b10a 100644
--- a/docs/data-ai/reference/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/vision-client.md b/docs/data-ai/reference/api/vision-client.md
similarity index 77%
rename from docs/data-ai/reference/vision-client.md
rename to docs/data-ai/reference/api/vision-client.md
index d28e356b3e..4577ec074f 100644
--- a/docs/data-ai/reference/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/"
---
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/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/dev/reference/glossary/ml.md b/docs/dev/reference/glossary/ml.md
index 717bb0a280..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/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/), 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..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/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/#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/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/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 9a50762d72..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/ai/run-inference/).
+For more information about the vision service, see [run inference](https://docs.viam.com/data-ai/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..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/ai/run-inference/"
+canonical: "/data-ai/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.