diff --git a/.github/workflows/validate-tooltips.yml b/.github/workflows/validate-tooltips.yml new file mode 100644 index 00000000..ef489e5d --- /dev/null +++ b/.github/workflows/validate-tooltips.yml @@ -0,0 +1,28 @@ +name: Validate Tooltip Imports + +on: + pull_request: + branches: + - main + paths: + - '**.mdx' + - 'snippets/tooltips.jsx' + - 'scripts/validate-tooltips.js' + - '.github/workflows/validate-tooltips.yml' + +jobs: + validate-tooltips: + name: Check tooltip imports + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Validate tooltip imports + run: node scripts/validate-tooltips.js diff --git a/community-solutions/copyparty-file-manager/overview.mdx b/community-solutions/copyparty-file-manager/overview.mdx index e8cd5610..be678ba0 100644 --- a/community-solutions/copyparty-file-manager/overview.mdx +++ b/community-solutions/copyparty-file-manager/overview.mdx @@ -35,18 +35,18 @@ You can access the terminal in two ways: #### Option 1: Web terminal If you see this option when clicking "Connect" on your Pod page, you have web terminal access: -![Web Terminal Access](webterminal.png) +![Web Terminal Access](/community-solutions/copyparty-file-manager/webterminal.png) #### Option 2: JupyterLab terminal If you have JupyterLab installed on your Pod, you can access the terminal there: -![JupyterLab Terminal](labsterminal.png) +![JupyterLab Terminal](/community-solutions/copyparty-file-manager/labsterminal.png) ## Installation steps ### Step 1: Access your Pod settings Navigate to your Pod page and locate the settings: -![Edit Pod Settings](edit.png) +![Edit Pod Settings](/community-solutions/copyparty-file-manager/edit.png) ### Step 2: Add an HTTP port @@ -58,7 +58,7 @@ Before proceeding, ensure all important files are saved in `/workspace` or backe Add a dedicated HTTP port for the CopyParty interface. If port 8888 is already in use (common for Jupyter), try port 8000 or another available port. -![Add HTTP Port](addhttp.png) +![Add HTTP Port](/community-solutions/copyparty-file-manager/addhttp.png) ### Step 3: Install and run CopyParty @@ -105,19 +105,19 @@ This command: ### Step 4: Access the CopyParty interface Once CopyParty is running, click on the port number in your Runpod dashboard: -![Access Port](port.png) +![Access Port](/community-solutions/copyparty-file-manager/port.png) ## Using CopyParty ### File navigation The interface displays your file system on the left side: -![Directory View](directory.png) +![Directory View](/community-solutions/copyparty-file-manager/directory.png) ### Uploading files Simply drag and drop files into the interface to upload them: -![Upload Files](upload.png) +![Upload Files](/community-solutions/copyparty-file-manager/upload.png) ### Downloading files @@ -127,7 +127,7 @@ To download files: - **"dl"** - Download individual files - **"zip"** - Download multiple files as a zip archive -![Download Files](download.png) +![Download Files](/community-solutions/copyparty-file-manager/download.png) ## Tips and best practices diff --git a/get-started/manage-accounts.mdx b/get-started/manage-accounts.mdx index 69e91161..37e76386 100644 --- a/get-started/manage-accounts.mdx +++ b/get-started/manage-accounts.mdx @@ -3,7 +3,7 @@ title: "Manage accounts" description: "Create accounts, manage teams, and configure user permissions in Runpod." --- -import { PodsTooltip, ServerlessTooltip, InstantClusterTooltip, NetworkVolumeTooltip, InferenceTooltip } from "/snippets/tooltips.jsx"; +import { PodsTooltip, ServerlessTooltip, InferenceTooltip } from "/snippets/tooltips.jsx"; To access Runpod resources, you need to either create your own account or join an existing team through an invitation. This guide explains how to set up and manage accounts, teams, and user roles. diff --git a/get-started/products.mdx b/get-started/products.mdx index 29b78f0c..87d7693c 100644 --- a/get-started/products.mdx +++ b/get-started/products.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Product overview" description: "Explore Runpod's major offerings and find the right solution for your workload." --- -import { ServerlessTooltip, PodsTooltip, PublicEndpointTooltip, InstantClusterTooltip, WorkerTooltip } from "/snippets/tooltips.jsx"; +import { ServerlessTooltip, PodsTooltip, PublicEndpointTooltip, InstantClusterTooltip } from "/snippets/tooltips.jsx"; Runpod offers cloud computing resources for AI and machine learning workloads. You can choose from instant GPUs for development, auto-scaling computing, pre-deployed AI models, or multi-node clusters for distributed training. diff --git a/integrations/overview.mdx b/integrations/overview.mdx index 191a5771..a6b22edd 100644 --- a/integrations/overview.mdx +++ b/integrations/overview.mdx @@ -49,7 +49,7 @@ https://abc123xyz-8000.proxy.runpod.net ### Direct TCP -For protocols that require persistent connections or fall outside of standard HTTP, use the [Direct TCP Ports](/pods/configuration/expose-ports#tcp-access-via-public-ip). When you expose a TCP port, Runpod assigns a public IP address and a mapped external port. You can find these details using the [`GET /pods/POD_ID`](/api-reference/pods/GET/pods/POD_ID) endpoint or the [Pod connection menu](/pods/connect-to-a-pod) in the Runpod console. +For protocols that require persistent connections or fall outside of standard HTTP, use the [Direct TCP Ports](/pods/configuration/expose-ports#tcp-access-via-public-ip). When you expose a TCP port, Runpod assigns a public IP address and a mapped external port. You can find these details using the [`GET /pods/POD_ID`](/api-reference/pods/GET/pods/podId) endpoint or the [Pod connection menu](/pods/connect-to-a-pod) in the Runpod console. ## Integrate with Public Endpoints diff --git a/pods/overview.mdx b/pods/overview.mdx index 5bd11cd9..33b12605 100644 --- a/pods/overview.mdx +++ b/pods/overview.mdx @@ -3,7 +3,7 @@ title: Overview description: "Get on-demand access to powerful computing resources." --- -import { NetworkVolumeTooltip, PodContainerDiskTooltip, VolumeDiskTooltip, ServerlessTooltip, RunpodHubTooltip, GlobalNetworkingTooltip, RunpodCLITooltip, TemplatesTooltip, InferenceTooltip, TrainingTooltip, FineTuningTooltip, MachinesTooltip } from "/snippets/tooltips.jsx"; +import { NetworkVolumeTooltip, PodContainerDiskTooltip, VolumeDiskTooltip, ServerlessTooltip, RunpodHubTooltip, TemplatesTooltip, InferenceTooltip, TrainingTooltip, FineTuningTooltip, MachinesTooltip } from "/snippets/tooltips.jsx"; diff --git a/pods/storage/types.mdx b/pods/storage/types.mdx index 051edfe0..4729d040 100644 --- a/pods/storage/types.mdx +++ b/pods/storage/types.mdx @@ -3,7 +3,7 @@ title: "Storage options" description: "Choose the right type of storage for your Pods." --- -import { PodsTooltip, VolumeDiskTooltip, NetworkVolumeTooltip, PodTooltip } from "/snippets/tooltips.jsx"; +import { PodsTooltip, PodTooltip } from "/snippets/tooltips.jsx"; Choosing the right type of storage is crucial for optimizing your workloads, whether you need temporary storage for active computations, persistent storage for long-term data retention, or permanent, shareable storage across multiple . diff --git a/pods/templates/create-custom-template.mdx b/pods/templates/create-custom-template.mdx index 19e782e7..21c06289 100644 --- a/pods/templates/create-custom-template.mdx +++ b/pods/templates/create-custom-template.mdx @@ -5,7 +5,7 @@ description: "A step-by-step guide to extending Runpod's official templates." tag: "NEW" --- -import { PodTooltip, PodsTooltip, PyTorchTooltip, CUDATooltip, TemplateTooltip, InferenceTooltip } from "/snippets/tooltips.jsx"; +import { PodTooltip, PyTorchTooltip, CUDATooltip, TemplateTooltip, InferenceTooltip } from "/snippets/tooltips.jsx"; You can find the complete code for this tutorial, including automated build options with GitHub Actions, in the [runpod-workers/pod-template](https://github.com/runpod-workers/pod-template) repository. diff --git a/pods/templates/environment-variables.mdx b/pods/templates/environment-variables.mdx index ec0a53bf..c1728cee 100644 --- a/pods/templates/environment-variables.mdx +++ b/pods/templates/environment-variables.mdx @@ -3,7 +3,7 @@ title: "Environment variables" description: "Learn how to use environment variables in Runpod Pods for configuration, security, and automation" --- -import { PodTooltip, PodsTooltip } from "/snippets/tooltips.jsx"; +import { PodsTooltip } from "/snippets/tooltips.jsx"; Environment variables are key-value pairs that you can configure for your . They are accessible within your containerized application and provide a flexible way to pass configuration settings, secrets, and runtime information to your application without hardcoding them into your code or container image. diff --git a/pods/templates/overview.mdx b/pods/templates/overview.mdx index e71f9d19..465947d5 100644 --- a/pods/templates/overview.mdx +++ b/pods/templates/overview.mdx @@ -3,7 +3,7 @@ title: "Overview" description: "Streamline your Pod deployments with templates, bundling prebuilt container images with hardware specs and network settings." --- -import { PodTooltip, PodsTooltip, PodEnvironmentVariablesTooltip } from "/snippets/tooltips.jsx"; +import { PodTooltip, PodEnvironmentVariablesTooltip } from "/snippets/tooltips.jsx"; templates are pre-configured Docker image setups that let you quickly spin up Pods without manual environment configuration. They're essentially deployment configurations that include specific models, frameworks, or workflows bundled together. diff --git a/pods/templates/secrets.mdx b/pods/templates/secrets.mdx index 2576dae7..63d02f1c 100644 --- a/pods/templates/secrets.mdx +++ b/pods/templates/secrets.mdx @@ -3,7 +3,7 @@ title: "Manage secrets" description: "Securely store and manage sensitive information like API keys, passwords, and tokens with Runpod secrets." --- -import { PodTooltip, PodsTooltip, TemplatesTooltip } from "/snippets/tooltips.jsx"; +import { PodTooltip, TemplatesTooltip } from "/snippets/tooltips.jsx"; This guide shows how to create, view, edit, delete, and use secrets in your to protect sensitive data and improve security. diff --git a/scripts/validate-tooltips.js b/scripts/validate-tooltips.js new file mode 100755 index 00000000..aa64a590 --- /dev/null +++ b/scripts/validate-tooltips.js @@ -0,0 +1,193 @@ +#!/usr/bin/env node + +/** + * Tooltip Import Validator + * + * This script validates that all tooltip components used in MDX files + * are properly imported from /snippets/tooltips.jsx. + * + * Exit codes: + * 0 - All tooltips are properly imported + * 1 - Missing imports detected + */ + +const fs = require('fs'); +const path = require('path'); +const { execSync } = require('child_process'); + +// Path to the tooltips definition file +const TOOLTIPS_FILE = 'snippets/tooltips.jsx'; + +// Get all available tooltip exports from tooltips.jsx +function getAvailableTooltips() { + const tooltipsPath = path.join(process.cwd(), TOOLTIPS_FILE); + + if (!fs.existsSync(tooltipsPath)) { + console.error(`Error: Tooltips file not found at ${tooltipsPath}`); + process.exit(1); + } + + const content = fs.readFileSync(tooltipsPath, 'utf-8'); + const exportRegex = /export\s+const\s+(\w+Tooltip)\s*=/g; + const tooltips = new Set(); + + let match; + while ((match = exportRegex.exec(content)) !== null) { + tooltips.add(match[1]); + } + + return tooltips; +} + +// Get all MDX files in the repository +function getMdxFiles() { + try { + // Use git to get tracked MDX files (respects .gitignore) + const output = execSync('git ls-files "*.mdx"', { encoding: 'utf-8' }); + return output.trim().split('\n').filter(Boolean); + } catch { + // Fallback: find all MDX files manually + const files = []; + function walkDir(dir) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') { + walkDir(fullPath); + } else if (entry.isFile() && entry.name.endsWith('.mdx')) { + files.push(path.relative(process.cwd(), fullPath)); + } + } + } + walkDir(process.cwd()); + return files; + } +} + +// Extract imported tooltips from a file +function getImportedTooltips(content) { + const imported = new Set(); + + // Match import statements from tooltips.jsx + // Handles: import { Tooltip1, Tooltip2 } from "/snippets/tooltips.jsx"; + const importRegex = /import\s*\{([^}]+)\}\s*from\s*["']\/snippets\/tooltips\.jsx["']/g; + + let match; + while ((match = importRegex.exec(content)) !== null) { + const imports = match[1].split(',').map(s => s.trim()).filter(Boolean); + imports.forEach(name => imported.add(name)); + } + + return imported; +} + +// Extract used tooltips from a file +function getUsedTooltips(content, availableTooltips) { + const used = new Set(); + + // Match JSX component usage: or ... + // Only match known tooltip names to avoid false positives + for (const tooltip of availableTooltips) { + // Self-closing: + const selfClosingRegex = new RegExp(`<${tooltip}\\s*/>`, 'g'); + // Opening tag: or + const openingRegex = new RegExp(`<${tooltip}[\\s>]`, 'g'); + + if (selfClosingRegex.test(content) || openingRegex.test(content)) { + used.add(tooltip); + } + } + + return used; +} + +// Main validation function +function validateTooltips() { + const availableTooltips = getAvailableTooltips(); + const mdxFiles = getMdxFiles(); + + console.log(`Found ${availableTooltips.size} tooltip definitions in ${TOOLTIPS_FILE}`); + console.log(`Scanning ${mdxFiles.length} MDX files...\n`); + + const errors = []; + const warnings = []; + let filesWithTooltips = 0; + + for (const file of mdxFiles) { + const filePath = path.join(process.cwd(), file); + const content = fs.readFileSync(filePath, 'utf-8'); + + const imported = getImportedTooltips(content); + const used = getUsedTooltips(content, availableTooltips); + + if (used.size === 0 && imported.size === 0) { + continue; + } + + filesWithTooltips++; + + // Check for used but not imported tooltips + for (const tooltip of used) { + if (!imported.has(tooltip)) { + errors.push({ + file, + tooltip, + type: 'missing-import', + message: `Tooltip "${tooltip}" is used but not imported` + }); + } + } + + // Check for imported but not used tooltips (warning only) + for (const tooltip of imported) { + if (!used.has(tooltip)) { + warnings.push({ + file, + tooltip, + type: 'unused-import', + message: `Tooltip "${tooltip}" is imported but not used` + }); + } + } + + // Check for imports of non-existent tooltips + for (const tooltip of imported) { + if (!availableTooltips.has(tooltip)) { + errors.push({ + file, + tooltip, + type: 'invalid-import', + message: `Tooltip "${tooltip}" does not exist in ${TOOLTIPS_FILE}` + }); + } + } + } + + // Print results + console.log(`Files using tooltips: ${filesWithTooltips}\n`); + + if (warnings.length > 0) { + console.log('⚠️ Warnings (unused imports):'); + for (const warning of warnings) { + console.log(` ${warning.file}: ${warning.message}`); + } + console.log(''); + } + + if (errors.length > 0) { + console.log('❌ Errors:'); + for (const error of errors) { + console.log(` ${error.file}: ${error.message}`); + } + console.log(`\n${errors.length} error(s) found.`); + console.log('\nTo fix missing imports, add the tooltip to the import statement:'); + console.log(' import { ExistingTooltip, MissingTooltip } from "/snippets/tooltips.jsx";'); + process.exit(1); + } + + console.log('✅ All tooltips are properly imported!'); + process.exit(0); +} + +// Run validation +validateTooltips(); diff --git a/serverless/endpoints/job-states.mdx b/serverless/endpoints/job-states.mdx index cef3d8e6..64c18a0c 100644 --- a/serverless/endpoints/job-states.mdx +++ b/serverless/endpoints/job-states.mdx @@ -3,7 +3,7 @@ title: "Job states and metrics" description: "Monitor your endpoints effectively by understanding job states and key metrics." --- -import { JobTooltip, RequestsTooltip, WorkerTooltip } from "/snippets/tooltips.jsx"; +import { RequestsTooltip } from "/snippets/tooltips.jsx"; Understanding job states and metrics is essential for effectively managing your Serverless endpoints. This documentation covers the different states your jobs can be in and the key metrics available to monitor endpoint performance and health. diff --git a/serverless/endpoints/overview.mdx b/serverless/endpoints/overview.mdx index 72805623..85f05306 100644 --- a/serverless/endpoints/overview.mdx +++ b/serverless/endpoints/overview.mdx @@ -4,7 +4,6 @@ sidebarTitle: "Overview" description: "Deploy and manage Serverless endpoints using the Runpod console or REST API." --- -import { QueueBasedEndpointsTooltip, LoadBalancingEndpointsTooltip, ServerlessEnvironmentVariablesTooltip } from "/snippets/tooltips.jsx"; Endpoints are the foundation of Runpod Serverless, serving as the gateway for deploying and managing your [Serverless workers](/serverless/workers/overview). They provide a consistent API interface that allows your applications to interact with powerful compute resources on demand. diff --git a/serverless/endpoints/send-requests.mdx b/serverless/endpoints/send-requests.mdx index f9ee9e33..46633da3 100644 --- a/serverless/endpoints/send-requests.mdx +++ b/serverless/endpoints/send-requests.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Send API requests" description: "Submit and manage jobs for your queue-based endpoints by sending HTTP requests." --- -import { JobTooltip, JobsTooltip, RequestsTooltip, WorkersTooltip, HandlerFunctionTooltip, QueueBasedEndpointsTooltip, LoadBalancingEndpointTooltip } from "/snippets/tooltips.jsx"; +import { QueueBasedEndpointsTooltip, LoadBalancingEndpointTooltip } from "/snippets/tooltips.jsx"; After creating a [Severless endpoint](/serverless/endpoints/overview), you can start sending it HTTP requests (using `cURL` or the Runpod SDK) to submit jobs and retrieve results: @@ -1208,4 +1208,4 @@ Here are some common issues and suggested solutions: | Rate limiting | Too many requests in short time | Implement backoff strategy, batch requests when possible | | Missing results | Results expired | Retrieve results within expiration window (30 min for async, 1 min for sync) | -Implementing proper [error handling](/serverless/endpoints/error-handling) and retry logic will make your integrations more robust and reliable. +Implementing proper [error handling](/serverless/development/error-handling) and retry logic will make your integrations more robust and reliable. diff --git a/serverless/load-balancing/overview.mdx b/serverless/load-balancing/overview.mdx index 943d16f4..e4f427cf 100644 --- a/serverless/load-balancing/overview.mdx +++ b/serverless/load-balancing/overview.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Overview" description: "Deploy custom direct-access REST APIs with load balancing Serverless endpoints." --- -import { RequestsTooltip, WorkersTooltip, QueueBasedEndpointsTooltip } from "/snippets/tooltips.jsx"; +import { RequestsTooltip, QueueBasedEndpointsTooltip } from "/snippets/tooltips.jsx"; Load balancing endpoints offer a completely new paradigm for Serverless endpoint creation, enabling direct access to worker HTTP servers without an intermediary queueing system. diff --git a/serverless/overview.mdx b/serverless/overview.mdx index 452c3803..339d43e5 100644 --- a/serverless/overview.mdx +++ b/serverless/overview.mdx @@ -3,7 +3,7 @@ title: "Overview" description: "Pay-as-you-go compute for AI models and compute-intensive workloads." --- -import { EndpointTooltip, WorkersTooltip, WorkerTooltip, HandlerFunctionTooltip, RequestTooltip, PodTooltip, RunpodHubTooltip, PublicEndpointTooltip, JobTooltip, LoadBalancingEndpointTooltip, QueueBasedEndpointsTooltip, InferenceTooltip, TrainingTooltip } from "/snippets/tooltips.jsx"; +import { WorkersTooltip, HandlerFunctionTooltip, PodTooltip, RunpodHubTooltip, PublicEndpointTooltip, JobTooltip, LoadBalancingEndpointTooltip, QueueBasedEndpointsTooltip, InferenceTooltip, TrainingTooltip } from "/snippets/tooltips.jsx"; Runpod Serverless is a cloud computing platform that lets you serve AI models for and run other compute-intensive workloads without managing servers. You only pay for the actual compute time you use, with no idle costs when your application isn't processing requests. diff --git a/serverless/storage/overview.mdx b/serverless/storage/overview.mdx index e8c79c19..a5a5689d 100644 --- a/serverless/storage/overview.mdx +++ b/serverless/storage/overview.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Storage options" description: "Explore storage options for your Serverless workers, including container disks, network volumes, and S3-compatible storage." --- -import { WorkersTooltip, WorkerTooltip, WorkerContainerDiskTooltip, NetworkVolumeTooltip, HandlerFunctionTooltip, EndpointTooltip, ColdStartTooltip } from "/snippets/tooltips.jsx"; +import { WorkersTooltip, HandlerFunctionTooltip, ColdStartTooltip } from "/snippets/tooltips.jsx"; This guide explains the different types of storage you can configure for your Serverless so they can access and store data when processing requests. diff --git a/serverless/vllm/vllm-requests.mdx b/serverless/vllm/vllm-requests.mdx index 280d8eb2..4698eba7 100644 --- a/serverless/vllm/vllm-requests.mdx +++ b/serverless/vllm/vllm-requests.mdx @@ -3,7 +3,7 @@ title: "Send requests to vLLM workers" sidebarTitle: "Send vLLM requests" description: "Use Runpod's native API to send requests to vLLM workers." --- -import { InferenceTooltip, WorkersTooltip, RequestsTooltip, QueueBasedEndpointTooltip, HandlerFunctionTooltip } from "/snippets/tooltips.jsx"; +import { InferenceTooltip, QueueBasedEndpointTooltip, HandlerFunctionTooltip } from "/snippets/tooltips.jsx"; vLLM workers run on Serverless endpoints. They use the same `/run` and `/runsync` operations as other Runpod endpoints, following the standard [Serverless request structure](/serverless/endpoints/send-requests). diff --git a/serverless/workers/overview.mdx b/serverless/workers/overview.mdx index 6cb071b6..e4d0a477 100644 --- a/serverless/workers/overview.mdx +++ b/serverless/workers/overview.mdx @@ -3,7 +3,7 @@ title: "Overview" description: "Package your handler function for deployment." --- -import { ServerlessEnvironmentVariablesTooltip, WorkerContainerDiskTooltip, MachineTooltip, NetworkVolumeTooltip } from "/snippets/tooltips.jsx"; +import { WorkerContainerDiskTooltip, MachineTooltip, NetworkVolumeTooltip } from "/snippets/tooltips.jsx"; Workers are the containerized environments that run your code on Runpod Serverless. After creating and testing your [handler function](/serverless/workers/handler-functions), you need to package it into a Docker image and deploy it to an endpoint. diff --git a/storage/network-volumes.mdx b/storage/network-volumes.mdx index 399b8fcc..3d2bdad2 100644 --- a/storage/network-volumes.mdx +++ b/storage/network-volumes.mdx @@ -3,7 +3,7 @@ title: "Network volumes" description: "Persistent, portable storage for your AI workloads." --- -import { PodsTooltip, ServerlessTooltip, WorkersTooltip, WorkerTooltip, EndpointTooltip, HandlerFunctionTooltip, ColdStartTooltip, PodTooltip, InstantClusterTooltip } from "/snippets/tooltips.jsx"; +import { PodsTooltip, ServerlessTooltip, WorkersTooltip, WorkerTooltip, HandlerFunctionTooltip, ColdStartTooltip, PodTooltip, InstantClusterTooltip } from "/snippets/tooltips.jsx"; Network volumes offer persistent storage that exists independently of your compute resources. Your data is retained even when your are terminated or your are scaled to zero. You can use them to share data and maintain datasets across multiple machines and [Runpod products](/overview). diff --git a/tutorials/sdks/python/101/async.mdx b/tutorials/sdks/python/101/async.mdx index e5fafe44..979cbc05 100644 --- a/tutorials/sdks/python/101/async.mdx +++ b/tutorials/sdks/python/101/async.mdx @@ -3,7 +3,7 @@ title: "Building an async generator handler for weather data simulation" sidebarTitle: "Async generator" --- -import { ServerlessTooltip, WorkerTooltip, HandlerFunctionTooltip } from "/snippets/tooltips.jsx"; +import { ServerlessTooltip, HandlerFunctionTooltip } from "/snippets/tooltips.jsx"; This tutorial will guide you through creating a function using Runpod's Python SDK that simulates fetching weather data for multiple cities concurrently. diff --git a/tutorials/sdks/python/101/generator.mdx b/tutorials/sdks/python/101/generator.mdx index dae61319..79c3d7d2 100644 --- a/tutorials/sdks/python/101/generator.mdx +++ b/tutorials/sdks/python/101/generator.mdx @@ -3,7 +3,7 @@ title: "Building a streaming handler for text to speech simulation" sidebarTitle: "Streaming handler" --- -import { ServerlessTooltip, WorkerTooltip, HandlerFunctionTooltip } from "/snippets/tooltips.jsx"; +import { ServerlessTooltip, HandlerFunctionTooltip } from "/snippets/tooltips.jsx"; This tutorial will guide you through creating a function using Runpod's Python SDK that simulates a text-to-speech (TTS) process. We'll use a streaming handler to stream results incrementally, demonstrating how to handle long-running tasks efficiently in a serverless environment. diff --git a/tutorials/sdks/python/get-started/introduction.mdx b/tutorials/sdks/python/get-started/introduction.mdx index 0d73689e..8700790c 100644 --- a/tutorials/sdks/python/get-started/introduction.mdx +++ b/tutorials/sdks/python/get-started/introduction.mdx @@ -3,7 +3,7 @@ title: "Introduction to the Runpod Python SDK" sidebarTitle: "Introduction" --- -import { ServerlessTooltip, WorkerTooltip, HandlerFunctionTooltip, EndpointTooltip } from "/snippets/tooltips.jsx"; +import { ServerlessTooltip, WorkerTooltip, HandlerFunctionTooltip } from "/snippets/tooltips.jsx"; Welcome to the world of AI development with the [Runpod Python SDK](https://github.com/runpod/runpod-python). diff --git a/tutorials/serverless/generate-sdxl-turbo.mdx b/tutorials/serverless/generate-sdxl-turbo.mdx index fdfef95b..4065fc47 100644 --- a/tutorials/serverless/generate-sdxl-turbo.mdx +++ b/tutorials/serverless/generate-sdxl-turbo.mdx @@ -5,7 +5,7 @@ description: "Deploy an image generation endpoint from the Hub and integrate it tag: "NEW" --- -import { ServerlessTooltip, EndpointTooltip, RunpodHubTooltip, WorkerTooltip, ColdStartTooltip } from "/snippets/tooltips.jsx"; +import { ServerlessTooltip, RunpodHubTooltip, WorkerTooltip, ColdStartTooltip } from "/snippets/tooltips.jsx"; In this tutorial, you'll deploy a pre-built SDXL Turbo from the and integrate it into a web application. You'll build a simple frontend that sends prompts to your endpoint and displays the generated images. diff --git a/tutorials/serverless/model-caching-text.mdx b/tutorials/serverless/model-caching-text.mdx index 902a12fb..a9c68975 100644 --- a/tutorials/serverless/model-caching-text.mdx +++ b/tutorials/serverless/model-caching-text.mdx @@ -5,7 +5,7 @@ description: "Learn how to create a custom Serverless endpoint that uses model c tag: "NEW" --- -import { ServerlessTooltip, EndpointTooltip, WorkerTooltip, ColdStartTooltip, HandlerFunctionTooltip, CachedModelsTooltip } from "/snippets/tooltips.jsx"; +import { ServerlessTooltip, WorkerTooltip, HandlerFunctionTooltip, CachedModelsTooltip } from "/snippets/tooltips.jsx"; You can download the finished code for this tutorial [on GitHub](https://github.com/runpod-workers/model-store-cache-example). diff --git a/tutorials/serverless/run-your-first.mdx b/tutorials/serverless/run-your-first.mdx index 465ec88a..81fa1d92 100644 --- a/tutorials/serverless/run-your-first.mdx +++ b/tutorials/serverless/run-your-first.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Generate images with SDXL" description: "Learn how to deploy a Serverless endpoint running SDXL from the Runpod Hub and use it to generate images." --- -import { ServerlessTooltip, RunpodHubTooltip, WorkerTooltip, InferenceTooltip } from "/snippets/tooltips.jsx"; +import { ServerlessTooltip, RunpodHubTooltip, InferenceTooltip } from "/snippets/tooltips.jsx"; In this tutorial, you will learn how to deploy a endpoint running [Stable Diffusion XL](https://stablediffusionxl.com/) (SDXL) on Runpod, submit image jobs, monitor their progress, and decode the resulting images.