From 3d10654ac735f45a2827fd003bd1c57650cd39a3 Mon Sep 17 00:00:00 2001 From: Matt Linville Date: Tue, 13 Jan 2026 16:13:34 -0800 Subject: [PATCH 1/3] Update Lychee link check actions to be recursive --- .github/workflows/linkcheck-pr.yml | 206 +++++++++++++++++++++++++-- .github/workflows/linkcheck-prod.yml | 30 ++-- lychee.toml | 53 +++++++ 3 files changed, 268 insertions(+), 21 deletions(-) create mode 100644 lychee.toml diff --git a/.github/workflows/linkcheck-pr.yml b/.github/workflows/linkcheck-pr.yml index b498e5973b..e6a473b4b6 100644 --- a/.github/workflows/linkcheck-pr.yml +++ b/.github/workflows/linkcheck-pr.yml @@ -1,33 +1,213 @@ -name: Lychee PR link checker +name: Link checker - PR changed files + +# Avoid collisions by ensuring only one run per ref +concurrency: + group: linkcheck-pr-${{ github.ref_name }} + cancel-in-progress: false on: + workflow_dispatch: deployment_status: + pull_request: + types: [opened, synchronize, reopened] + paths: + - '**.md' + - '**.mdx' permissions: contents: read deployments: read + pull-requests: write jobs: linkChecker: runs-on: ubuntu-latest - - # Only run when Mintlify PR deployment succeeds + + # Run on: manual trigger, successful Mintlify deployment, or PR events (for forks) if: | - github.event.deployment_status.state == 'success' && - github.event.deployment.environment == 'staging' && - contains(github.event.deployment_status.creator.login, 'mintlify') && - contains(github.event.deployment_status.environment_url, 'mintlify') + github.event_name == 'workflow_dispatch' || + github.event_name == 'pull_request' || + (github.event_name == 'deployment_status' && + github.event.deployment_status.state == 'success' && + github.event.deployment.environment == 'staging' && + contains(github.event.deployment_status.creator.login, 'mintlify') && + contains(github.event.deployment_status.environment_url, 'mintlify')) + steps: - # check URLs with Lychee - uses: actions/checkout@v6 + with: + # Needed to diff base..head for the associated PR + fetch-depth: 0 + + - name: Resolve PR and deployment URL + id: pr-context + if: github.event_name == 'deployment_status' + uses: actions/github-script@v7 + with: + script: | + const { owner, repo } = context.repo; + const sha = context.payload.deployment?.sha; + const deployUrl = + context.payload.deployment_status?.environment_url || + context.payload.deployment_status?.target_url || + ''; + + core.info(`Deployment SHA: ${sha}`); + core.info(`Deployment URL: ${deployUrl}`); + + // Find PR(s) associated with this deployment commit SHA + const prsResp = await github.rest.repos.listPullRequestsAssociatedWithCommit({ + owner, + repo, + commit_sha: sha, + }); + + const pr = prsResp.data?.[0]; + if (!pr) { + core.warning(`No PR associated with commit ${sha}. Skipping linkcheck + PR comment.`); + core.setOutput('pr_number', ''); + core.setOutput('deploy_url', deployUrl); + return; + } + + core.info(`Associated PR: #${pr.number} (${pr.html_url})`); + core.setOutput('pr_number', String(pr.number)); + core.setOutput('base_sha', pr.base.sha); + core.setOutput('head_sha', pr.head.sha); + core.setOutput('deploy_url', deployUrl); + + - name: Get changed documentation files + id: changed-files + if: steps.pr-context.outputs.pr_number != '' || github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request' + uses: tj-actions/changed-files@v47.0.1 + with: + base_sha: ${{ steps.pr-context.outputs.base_sha || github.event.pull_request.base.sha }} + sha: ${{ steps.pr-context.outputs.head_sha || github.event.pull_request.head.sha }} + files: | + **/*.md + **/*.mdx - name: Link Checker id: lychee + if: steps.changed-files.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch' uses: lycheeverse/lychee-action@v2 with: - args: "--threads 5 --max-retries 5 --retry-wait-time 2 --include '^https?://' --include '^http?://' --base-url='${{ github.event.deployment_status.environment_url }}' '${{ github.event.deployment_status.environment_url }}'" - format: markdown fail: false - env: - # to be used in case rate limits are surpassed - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + # Don't fail if no files to check + failIfEmpty: false + # Output format for reports + format: markdown + # GitHub token for API rate limiting + token: ${{ secrets.GITHUB_TOKEN }} + # Override base_url with deployment URL (if available) or use production + # For forks without Mintlify preview: checks against production site + args: >- + --base-url ${{ steps.pr-context.outputs.deploy_url || 'https://docs.wandb.ai' }} + ${{ steps.changed-files.outputs.all_changed_files || '.' }} + + - name: Comment PR with link check results + if: (steps.pr-context.outputs.pr_number != '' || github.event_name == 'pull_request') && (steps.changed-files.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch') + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs'); + const identifier = ''; + + let commentBody = identifier + '\n'; + + const isFork = context.payload.pull_request?.head?.repo?.fork || false; + const deployUrl = '${{ steps.pr-context.outputs.deploy_url }}'; + + if (${{ steps.lychee.outputs.exit_code }} === 0) { + // Success - no broken links + commentBody += '## 🔗 Link Checker Results\n\n'; + commentBody += '✅ **All links are valid!**\n\n'; + commentBody += 'No broken links were detected in the changed files.\n'; + if (isFork && !deployUrl) { + commentBody += '\n_Note: Checked against production site (https://docs.wandb.ai) since preview deployments are not available for forks._\n'; + } + + // Check if there were redirects in the report + try { + const report = fs.readFileSync('./lychee/out.md', 'utf8'); + if (report.includes('Redirect') || report.includes('redirect')) { + commentBody += '\n\n> [!TIP]\n'; + commentBody += '> **Redirects detected**: If you see redirects for internal docs.wandb.ai links, check if they have trailing slashes.\n'; + commentBody += '> \n'; + commentBody += '> Mintlify automatically removes trailing slashes, causing redirects like:\n'; + commentBody += '> - `https://docs.wandb.ai/models/` → `https://docs.wandb.ai/models`\n'; + commentBody += '> \n'; + commentBody += '> **Fix**: Remove trailing slashes from links to avoid unnecessary redirects.\n'; + } + } catch (e) { + // Ignore if report file doesn't exist + } + } else { + // Issues found - include report + const report = fs.readFileSync('./lychee/out.md', 'utf8'); + + commentBody += '## 🔗 Link Checker Results\n\n'; + commentBody += '> [!NOTE]\n'; + if (isFork && !deployUrl) { + commentBody += '> This PR is from a fork, so links were checked against the **production site** (https://docs.wandb.ai).\n'; + commentBody += '> \n'; + commentBody += '> Links to **newly created files** in this PR will be reported as broken until the PR is merged.\n'; + } else { + commentBody += '> Links to **newly created files** in this PR may be reported as broken because this checks links against the **preview deployment**.\n'; + } + commentBody += '> \n'; + commentBody += '> Warnings about **new** files in this PR can be safely ignored.\n\n'; + + // Add trailing slash tip if redirects are present + if (report.includes('Redirect') || report.includes('redirect')) { + commentBody += '> [!TIP]\n'; + commentBody += '> **Redirects detected**: If you see redirects for internal docs.wandb.ai links, check if they have trailing slashes.\n'; + commentBody += '> \n'; + commentBody += '> Mintlify automatically removes trailing slashes, causing redirects like:\n'; + commentBody += '> - `https://docs.wandb.ai/models/` → `https://docs.wandb.ai/models`\n'; + commentBody += '> - `/weave/quickstart/` → `/weave/quickstart`\n'; + commentBody += '> \n'; + commentBody += '> **Fix**: Remove trailing slashes from links to avoid unnecessary redirects.\n\n'; + } + + commentBody += '---\n\n'; + commentBody += report; + } + + // Determine PR number + const prNumber = Number('${{ steps.pr-context.outputs.pr_number }}') || + context.payload.pull_request?.number; + + if (!prNumber) { + core.info('No PR number available, skipping comment'); + return; + } + + // Find existing comment + const { data: comments } = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + }); + + const existingComment = comments.find(comment => + comment.body?.includes(identifier) && comment.user?.login === 'github-actions[bot]' + ); + + if (existingComment) { + // Update existing comment + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existingComment.id, + body: commentBody + }); + } else { + // Create new comment + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: commentBody + }); + } diff --git a/.github/workflows/linkcheck-prod.yml b/.github/workflows/linkcheck-prod.yml index a72662d688..62f0d2dfc1 100644 --- a/.github/workflows/linkcheck-prod.yml +++ b/.github/workflows/linkcheck-prod.yml @@ -1,30 +1,44 @@ -name: Lychee production link checker +name: Link checker - production site + on: repository_dispatch: workflow_dispatch: schedule: - - cron: "5 0 1 * *" # In UTC, currently 12:05 AM on the 1st of each month + - cron: "5 0 1 * *" # Monthly on the 1st at 12:05 AM UTC jobs: linkChecker: runs-on: ubuntu-latest permissions: - issues: write # required for peter-evans/create-issue-from-file + issues: write # Required for creating issues steps: - # check URLs with Lychee - uses: actions/checkout@v6 + - name: Download and parse sitemap + run: | + echo "Fetching sitemap from https://docs.wandb.ai/sitemap.xml..." + curl -s https://docs.wandb.ai/sitemap.xml | \ + grep -o '[^<]*' | \ + sed 's///g; s/<\/loc>//g' > urls.txt + + URL_COUNT=$(wc -l < urls.txt | tr -d ' ') + echo "Found ${URL_COUNT} URLs in sitemap" + + # Show first few URLs for verification + echo "Sample URLs:" + head -5 urls.txt + - name: Link Checker id: lychee uses: lycheeverse/lychee-action@v2 with: - args: "--threads 5 --max-retries 5 --retry-wait-time 2 --include '^https?://' --include '^http?://' --base-url='http://docs.wandb.ai' 'http://docs.wandb.ai'" + # Configuration is in lychee.toml + # Check all URLs from sitemap + args: "urls.txt" output: ./lychee-report.md format: markdown fail: false - env: - # to be used in case rate limits are surpassed - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + token: ${{ secrets.GITHUB_TOKEN }} - name: Create Issue From File if: steps.lychee.outputs.exit_code != 0 diff --git a/lychee.toml b/lychee.toml new file mode 100644 index 0000000000..a62763ed06 --- /dev/null +++ b/lychee.toml @@ -0,0 +1,53 @@ +# Lychee link checker configuration +# See https://lychee.cli.rs/guides/config/ for full documentation + +# Base URL for resolving relative links +# This will be overridden at runtime by the workflows +base_url = 'https://docs.wandb.ai' + +# Don't check heading anchors (fragments) - Mintlify generates these dynamically +include_fragments = false + +# Suppress progress bars in CI for cleaner logs +no_progress = true + +# Exclude private/internal network links +exclude_all_private = true + +# Retry configuration for handling transient failures +max_retries = 5 +retry_wait_time = 2 + +# Accept these HTTP status codes as valid +accept = [ + 200, # OK + 429, # Too Many Requests (rate limit - treat as success) +] + +# Only check HTTP/HTTPS URLs +scheme = [ + "https", + "http", +] + +# Only check URLs matching these patterns (required when checking URL lists) +include = [ + '^https?://', # Match all http:// and https:// URLs +] + +# Logging verbosity +verbose = "info" + +# URL patterns to exclude from checking +exclude = [ + # Exclude images - Mintlify rewrites paths during build + '\.(png|jpg|jpeg|gif|svg|webp|ico)$', +] + +# File/directory paths to exclude from checking +exclude_path = [ + # Exclude non-documentation directories + "scripts", + "node_modules", + ".github", +] From f62870888a81c3693a6c02b0ef44cad233d95ec4 Mon Sep 17 00:00:00 2001 From: Matt Linville Date: Tue, 13 Jan 2026 16:55:35 -0800 Subject: [PATCH 2/3] Fix broken links to /weave/guides/core-types/ pages by using absolute paths --- weave/cookbooks/source/dspy_prompt_optimization.ipynb | 4 ++-- weave/guides/integrations/notdiamond.mdx | 4 ++-- .../reference/generated_typescript_docs/intro-notebook.mdx | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/weave/cookbooks/source/dspy_prompt_optimization.ipynb b/weave/cookbooks/source/dspy_prompt_optimization.ipynb index 14afde3f63..8ce172ec72 100644 --- a/weave/cookbooks/source/dspy_prompt_optimization.ipynb +++ b/weave/cookbooks/source/dspy_prompt_optimization.ipynb @@ -127,7 +127,7 @@ "source": [ "## Load the BIG-Bench Hard Dataset\n", "\n", - "We will load this dataset from HuggingFace Hub, split into training and validation sets, and [publish](../../guides/core-types/datasets.md) them on Weave, this will let us version the datasets, and also use [`weave.Evaluation`](../../guides/core-types/evaluations.md) to evaluate our prompting strategy." + "We will load this dataset from HuggingFace Hub, split into training and validation sets, and [publish](/weave/guides/core-types/datasets) them on Weave, this will let us version the datasets, and also use [`weave.Evaluation`](/weave/guides/core-types/evaluations) to evaluate our prompting strategy." ] }, { @@ -287,7 +287,7 @@ "source": [ "## Evaluating our DSPy Program\n", "\n", - "Now that we have a baseline prompting strategy, let's evaluate it on our validation set using [`weave.Evaluation`](../../guides/core-types/evaluations.md) on a simple metric that matches the predicted answer with the ground truth. Weave will take each example, pass it through your application and score the output on multiple custom scoring functions. By doing this, you'll have a view of the performance of your application, and a rich UI to drill into individual outputs and scores.\n", + "Now that we have a baseline prompting strategy, let's evaluate it on our validation set using [`weave.Evaluation`](/weave/guides/core-types/evaluations) on a simple metric that matches the predicted answer with the ground truth. Weave will take each example, pass it through your application and score the output on multiple custom scoring functions. By doing this, you'll have a view of the performance of your application, and a rich UI to drill into individual outputs and scores.\n", "\n", "First, we need to create a simple weave evaluation scoring function that tells whether the answer from the baseline module's output is the same as the ground truth answer or not. Scoring functions need to have a `model_output` keyword argument, but the other arguments are user defined and are taken from the dataset examples. It will only take the necessary keys by using a dictionary key based on the argument name." ] diff --git a/weave/guides/integrations/notdiamond.mdx b/weave/guides/integrations/notdiamond.mdx index 638b5c0c60..0fba392dfd 100644 --- a/weave/guides/integrations/notdiamond.mdx +++ b/weave/guides/integrations/notdiamond.mdx @@ -107,10 +107,10 @@ Visit the [docs] or [send us a message][support] for further support. [chat]: https://chat.notdiamond.ai [custom router]: https://docs.notdiamond.ai/docs/router-training-quickstart [docs]: https://docs.notdiamond.ai -[evals]: ../../guides/core-types/evaluations.mdx +[evals]: /weave/guides/core-types/evaluations [keys]: https://app.notdiamond.ai/keys [nd]: https://www.notdiamond.ai/ -[ops]: ../../guides/tracking/ops.mdx +[ops]: /weave/guides/tracking/ops [python]: https://github.com/Not-Diamond/notdiamond-python [quickstart guide]: https://docs.notdiamond.ai/docs/quickstart [support]: mailto:support@notdiamond.ai diff --git a/weave/reference/generated_typescript_docs/intro-notebook.mdx b/weave/reference/generated_typescript_docs/intro-notebook.mdx index e2fc3d080d..8fb47c5974 100644 --- a/weave/reference/generated_typescript_docs/intro-notebook.mdx +++ b/weave/reference/generated_typescript_docs/intro-notebook.mdx @@ -106,7 +106,7 @@ async function demonstrateNestedTracking() { ## Dataset management -You can create and manage datasets with Weave using the [`weave.Dataset`](../../guides/core-types/datasets.mdx) class. Similar to [Weave `Models`](../../guides/core-types/models.mdx), `weave.Dataset` helps: +You can create and manage datasets with Weave using the [`weave.Dataset`](/weave/guides/core-types/datasets) class. Similar to [Weave `Models`](/weave/guides/core-types/models), `weave.Dataset` helps: - Track and version your data - Organize test cases @@ -144,7 +144,7 @@ function createGrammarDataset(): weave.Dataset { ## Evaluation framework -Weave supports evaluation-driven development with the [`Evaluation` class](../../guides/core-types/evaluations.mdx). Evaluations help you reliably iterate on your GenAI application. The `Evaluation` class does the following: +Weave supports evaluation-driven development with the [`Evaluation` class](/weave/guides/core-types/evaluations). Evaluations help you reliably iterate on your GenAI application. The `Evaluation` class does the following: - Assesses `Model` performance on a `Dataset` - Applies custom scoring functions @@ -224,4 +224,4 @@ async function main() { console.error('Error running demonstrations:', error); } } -``` \ No newline at end of file +``` From ef326d8bd34ff3f1069017315c9d9b84c8d1f25d Mon Sep 17 00:00:00 2001 From: mdlinville <7674613+mdlinville@users.noreply.github.com> Date: Mon, 19 Jan 2026 09:43:51 +0000 Subject: [PATCH 3/3] chore: Update Training API documentation --- training/api-reference.mdx | 23 + training/api-reference/openapi.json | 1334 ++++++++++++++++++++------- 2 files changed, 1008 insertions(+), 349 deletions(-) diff --git a/training/api-reference.mdx b/training/api-reference.mdx index 8d69462fd5..8ca19e39bc 100644 --- a/training/api-reference.mdx +++ b/training/api-reference.mdx @@ -33,6 +33,29 @@ https://api.training.wandb.ai/v1 ### models +- **[POST /v1/preview/models](https://docs.wandb.ai/training/api-reference/models/create-model-v1-preview-models)** - Create Model +- **[DELETE /v1/preview/models/{model_id}](https://docs.wandb.ai/training/api-reference/models/delete-model-v1-preview-models--model-id-)** - Delete Model +- **[DELETE /v1/preview/models/{model_id}/checkpoints](https://docs.wandb.ai/training/api-reference/models/delete-model-checkpoints-v1-preview-models--model-id--checkpoints)** - Delete Model Checkpoints +- **[GET /v1/preview/models/{model_id}/checkpoints](https://docs.wandb.ai/training/api-reference/models/list-model-checkpoints-v1-preview-models--model-id--checkpoints)** - List Model Checkpoints +- **[POST /v1/preview/models/{model_id}/log](https://docs.wandb.ai/training/api-reference/models/log-v1-preview-models--model-id--log)** - Log + +### training-jobs + +- **[POST /v1/preview/training-jobs](https://docs.wandb.ai/training/api-reference/training-jobs/create-training-job-v1-preview-training-jobs)** - Create Training Job +- **[GET /v1/preview/training-jobs/{training_job_id}](https://docs.wandb.ai/training/api-reference/training-jobs/get-training-job-v1-preview-training-jobs--training-job-id-)** - Get Training Job +- **[GET /v1/preview/training-jobs/{training_job_id}/events](https://docs.wandb.ai/training/api-reference/training-jobs/get-training-job-events-v1-preview-training-jobs--training-job-id--events)** - Get Training Job Events + +### Uncategorized + +- **[GET /v1/health](https://docs.wandb.ai/training/api-reference/uncategorized/health-check-v1-health)** - Health Check +- **[GET /v1/system-check](https://docs.wandb.ai/training/api-reference/uncategorized/system-check-v1-system-check)** - System Check +### chat-completions + +- **[POST /v1/chat/completions](https://docs.wandb.ai/training/api-reference/chat-completions/create-chat-completion-v1-chat-completions)** - Create Chat Completion +- **[POST /v1/chat/completions/](https://docs.wandb.ai/training/api-reference/chat-completions/create-chat-completion-v1-chat-completions-)** - Create Chat Completion + +### models + - **[POST /v1/preview/models](https://docs.wandb.ai/training/api-reference/models/create-model-v1-preview-models)** - Create Model - **[DELETE /v1/preview/models/{model_id}/checkpoints](https://docs.wandb.ai/training/api-reference/models/delete-model-checkpoints-v1-preview-models--model-id--checkpoints)** - Delete Model Checkpoints - **[GET /v1/preview/models/{model_id}/checkpoints](https://docs.wandb.ai/training/api-reference/models/list-model-checkpoints-v1-preview-models--model-id--checkpoints)** - List Model Checkpoints diff --git a/training/api-reference/openapi.json b/training/api-reference/openapi.json index 73a07e7963..30b8fc5598 100644 --- a/training/api-reference/openapi.json +++ b/training/api-reference/openapi.json @@ -290,6 +290,54 @@ } } }, + "/v1/preview/models/{model_id}": { + "delete": { + "tags": [ + "models" + ], + "summary": "Delete Model", + "description": "Delete a model, all its checkpoints, artifacts, and the associated W&B run.", + "operationId": "delete_model_v1_preview_models__model_id__delete", + "security": [ + { + "HTTPBearer": [] + } + ], + "parameters": [ + { + "name": "model_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Model Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteModelResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, "/v1/preview/models/{model_id}/log": { "post": { "tags": [ @@ -566,7 +614,8 @@ "type", "url_citation" ], - "title": "Annotation" + "title": "Annotation", + "description": "A URL citation when using web search." }, "AnnotationURLCitation": { "properties": { @@ -595,7 +644,8 @@ "title", "url" ], - "title": "AnnotationURLCitation" + "title": "AnnotationURLCitation", + "description": "A URL citation when using web search." }, "Audio": { "properties": { @@ -604,11 +654,13 @@ "title": "Id" } }, + "additionalProperties": true, "type": "object", "required": [ "id" ], - "title": "Audio" + "title": "Audio", + "description": "Data about a previous audio response from the model.\n[Learn more](https://platform.openai.com/docs/guides/audio)." }, "AudioURL": { "properties": { @@ -617,16 +669,35 @@ "title": "Url" } }, + "additionalProperties": true, "type": "object", "required": [ "url" ], "title": "AudioURL" }, - "BaseModel": { - "properties": {}, + "Author": { + "properties": { + "role": { + "$ref": "#/components/schemas/Role" + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + } + }, "type": "object", - "title": "BaseModel" + "required": [ + "role" + ], + "title": "Author" }, "ChatCompletionAssistantMessageParam": { "properties": { @@ -672,7 +743,7 @@ "function_call": { "anyOf": [ { - "$ref": "#/components/schemas/openai__types__chat__chat_completion_assistant_message_param__FunctionCall" + "$ref": "#/components/schemas/FunctionCall-Input" }, { "type": "null" @@ -696,17 +767,26 @@ }, "tool_calls": { "items": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCallParam" + "anyOf": [ + { + "$ref": "#/components/schemas/ChatCompletionMessageFunctionToolCallParam" + }, + { + "$ref": "#/components/schemas/ChatCompletionMessageCustomToolCallParam" + } + ] }, "type": "array", "title": "Tool Calls" } }, + "additionalProperties": true, "type": "object", "required": [ "role" ], - "title": "ChatCompletionAssistantMessageParam" + "title": "ChatCompletionAssistantMessageParam", + "description": "Messages sent by the model in response to user messages." }, "ChatCompletionAudio": { "properties": { @@ -735,7 +815,51 @@ "expires_at", "transcript" ], - "title": "ChatCompletionAudio" + "title": "ChatCompletionAudio", + "description": "If the audio output modality is requested, this object contains data\nabout the audio response from the model. [Learn more](https://platform.openai.com/docs/guides/audio)." + }, + "ChatCompletionContentPartAudioEmbedsParam": { + "properties": { + "audio_embeds": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Audio Embeds" + }, + "type": { + "type": "string", + "const": "audio_embeds", + "title": "Type" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "type" + ], + "title": "ChatCompletionContentPartAudioEmbedsParam" }, "ChatCompletionContentPartAudioParam": { "properties": { @@ -748,6 +872,7 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "audio_url", @@ -767,6 +892,9 @@ "type": "string" }, "type": "object" + }, + { + "type": "null" } ], "title": "Image Embeds" @@ -775,11 +903,22 @@ "type": "string", "const": "image_embeds", "title": "Type" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" } }, + "additionalProperties": true, "type": "object", "required": [ - "image_embeds", "type" ], "title": "ChatCompletionContentPartImageEmbedsParam" @@ -795,12 +934,14 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "image_url", "type" ], - "title": "ChatCompletionContentPartImageParam" + "title": "ChatCompletionContentPartImageParam", + "description": "Learn about [image inputs](https://platform.openai.com/docs/guides/vision)." }, "ChatCompletionContentPartInputAudioParam": { "properties": { @@ -813,12 +954,14 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "input_audio", "type" ], - "title": "ChatCompletionContentPartInputAudioParam" + "title": "ChatCompletionContentPartInputAudioParam", + "description": "Learn about [audio inputs](https://platform.openai.com/docs/guides/audio)." }, "ChatCompletionContentPartRefusalParam": { "properties": { @@ -832,6 +975,7 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "refusal", @@ -851,12 +995,14 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "text", "type" ], - "title": "ChatCompletionContentPartTextParam" + "title": "ChatCompletionContentPartTextParam", + "description": "Learn about [text inputs](https://platform.openai.com/docs/guides/text-generation)." }, "ChatCompletionContentPartVideoParam": { "properties": { @@ -869,6 +1015,7 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "video_url", @@ -902,12 +1049,14 @@ "title": "Name" } }, + "additionalProperties": true, "type": "object", "required": [ "content", "role" ], - "title": "ChatCompletionDeveloperMessageParam" + "title": "ChatCompletionDeveloperMessageParam", + "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, `developer` messages\nreplace the previous `system` messages." }, "ChatCompletionFunctionMessageParam": { "properties": { @@ -932,6 +1081,7 @@ "title": "Role" } }, + "additionalProperties": true, "type": "object", "required": [ "content", @@ -940,6 +1090,26 @@ ], "title": "ChatCompletionFunctionMessageParam" }, + "ChatCompletionFunctionToolParam": { + "properties": { + "function": { + "$ref": "#/components/schemas/openai__types__shared_params__function_definition__FunctionDefinition" + }, + "type": { + "type": "string", + "const": "function", + "title": "Type" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "function", + "type" + ], + "title": "ChatCompletionFunctionToolParam", + "description": "A function tool that can be used to generate a response." + }, "ChatCompletionLogProb": { "properties": { "token": { @@ -1090,7 +1260,7 @@ "function_call": { "anyOf": [ { - "$ref": "#/components/schemas/openai__types__chat__chat_completion_message__FunctionCall" + "$ref": "#/components/schemas/FunctionCall-Input" }, { "type": "null" @@ -1101,7 +1271,14 @@ "anyOf": [ { "items": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCall" + "anyOf": [ + { + "$ref": "#/components/schemas/ChatCompletionMessageFunctionToolCall" + }, + { + "$ref": "#/components/schemas/ChatCompletionMessageCustomToolCall" + } + ] }, "type": "array" }, @@ -1117,16 +1294,67 @@ "required": [ "role" ], - "title": "ChatCompletionMessage" + "title": "ChatCompletionMessage", + "description": "A chat completion message generated by the model." + }, + "ChatCompletionMessageCustomToolCall": { + "properties": { + "id": { + "type": "string", + "title": "Id" + }, + "custom": { + "$ref": "#/components/schemas/Custom" + }, + "type": { + "type": "string", + "const": "custom", + "title": "Type" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "id", + "custom", + "type" + ], + "title": "ChatCompletionMessageCustomToolCall", + "description": "A call to a custom tool created by the model." + }, + "ChatCompletionMessageCustomToolCallParam": { + "properties": { + "id": { + "type": "string", + "title": "Id" + }, + "custom": { + "$ref": "#/components/schemas/Custom" + }, + "type": { + "type": "string", + "const": "custom", + "title": "Type" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "id", + "custom", + "type" + ], + "title": "ChatCompletionMessageCustomToolCallParam", + "description": "A call to a custom tool created by the model." }, - "ChatCompletionMessageToolCall": { + "ChatCompletionMessageFunctionToolCall": { "properties": { "id": { "type": "string", "title": "Id" }, "function": { - "$ref": "#/components/schemas/openai__types__chat__chat_completion_message_tool_call__Function" + "$ref": "#/components/schemas/Function" }, "type": { "type": "string", @@ -1141,16 +1369,17 @@ "function", "type" ], - "title": "ChatCompletionMessageToolCall" + "title": "ChatCompletionMessageFunctionToolCall", + "description": "A call to a function tool created by the model." }, - "ChatCompletionMessageToolCallParam": { + "ChatCompletionMessageFunctionToolCallParam": { "properties": { "id": { "type": "string", "title": "Id" }, "function": { - "$ref": "#/components/schemas/openai__types__chat__chat_completion_message_tool_call_param__Function" + "$ref": "#/components/schemas/Function" }, "type": { "type": "string", @@ -1158,13 +1387,15 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "id", "function", "type" ], - "title": "ChatCompletionMessageToolCallParam" + "title": "ChatCompletionMessageFunctionToolCallParam", + "description": "A call to a function tool created by the model." }, "ChatCompletionNamedFunction": { "properties": { @@ -1224,6 +1455,9 @@ }, { "$ref": "#/components/schemas/CustomChatCompletionMessageParam" + }, + { + "$ref": "#/components/schemas/Message" } ] }, @@ -1346,6 +1580,9 @@ { "$ref": "#/components/schemas/StructuralTagResponseFormat" }, + { + "$ref": "#/components/schemas/LegacyStructuralTagResponseFormat" + }, { "type": "null" } @@ -1465,39 +1702,49 @@ "title": "Tool Choice", "default": "none" }, - "parallel_tool_calls": { + "reasoning_effort": { "anyOf": [ { - "type": "boolean" + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] }, { "type": "null" } ], - "title": "Parallel Tool Calls", - "default": false + "title": "Reasoning Effort" }, - "user": { + "include_reasoning": { + "type": "boolean", + "title": "Include Reasoning", + "default": true + }, + "parallel_tool_calls": { "anyOf": [ { - "type": "string" + "type": "boolean" }, { "type": "null" } ], - "title": "User" + "title": "Parallel Tool Calls", + "default": true }, - "best_of": { + "user": { "anyOf": [ { - "type": "integer" + "type": "string" }, { "type": "null" } ], - "title": "Best Of" + "title": "User" }, "use_beam_search": { "type": "boolean", @@ -1586,7 +1833,7 @@ "anyOf": [ { "type": "integer", - "minimum": 1.0 + "minimum": -1.0 }, { "type": "null" @@ -1706,144 +1953,73 @@ "title": "Mm Processor Kwargs", "description": "Additional kwargs to pass to the HF processor." }, - "guided_json": { + "structured_outputs": { "anyOf": [ { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - }, - { - "$ref": "#/components/schemas/BaseModel" + "$ref": "#/components/schemas/StructuredOutputsParams" }, { "type": "null" } ], - "title": "Guided Json", - "description": "If specified, the output will follow the JSON schema." + "description": "Additional kwargs for structured outputs" + }, + "priority": { + "type": "integer", + "title": "Priority", + "description": "The priority of the request (lower means earlier handling; default: 0). Any priority other than 0 will raise an error if the served model does not use priority scheduling.", + "default": 0 + }, + "request_id": { + "type": "string", + "title": "Request Id", + "description": "The request_id related to this request. If the caller does not set it, a random_uuid will be generated. This id is used through out the inference process and return in response." }, - "guided_regex": { + "logits_processors": { "anyOf": [ { - "type": "string" + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/LogitsProcessorConstructor" + } + ] + }, + "type": "array" }, { "type": "null" } ], - "title": "Guided Regex", - "description": "If specified, the output will follow the regex pattern." + "title": "Logits Processors", + "description": "A list of either qualified names of logits processors, or constructor objects, to apply when sampling. A constructor is a JSON object with a required 'qualname' field specifying the qualified name of the processor class/factory, and optional 'args' and 'kwargs' fields containing positional and keyword arguments. For example: {'qualname': 'my_module.MyLogitsProcessor', 'args': [1, 2], 'kwargs': {'param': 'value'}}." }, - "guided_choice": { + "return_tokens_as_token_ids": { "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "type": "boolean" }, { "type": "null" } ], - "title": "Guided Choice", - "description": "If specified, the output will be exactly one of the choices." + "title": "Return Tokens As Token Ids", + "description": "If specified with 'logprobs', tokens are represented as strings of the form 'token_id:{token_id}' so that tokens that are not JSON-encodable can be identified." }, - "guided_grammar": { + "return_token_ids": { "anyOf": [ { - "type": "string" + "type": "boolean" }, { "type": "null" } ], - "title": "Guided Grammar", - "description": "If specified, the output will follow the context free grammar." - }, - "structural_tag": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Structural Tag", - "description": "If specified, the output will follow the structural tag schema." - }, - "guided_decoding_backend": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Guided Decoding Backend", - "description": "If specified, will override the default guided decoding backend of the server for this specific request. If set, must be either 'outlines' / 'lm-format-enforcer'" - }, - "guided_whitespace_pattern": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Guided Whitespace Pattern", - "description": "If specified, will override the default whitespace pattern for guided json decoding." - }, - "priority": { - "type": "integer", - "title": "Priority", - "description": "The priority of the request (lower means earlier handling; default: 0). Any priority other than 0 will raise an error if the served model does not use priority scheduling.", - "default": 0 - }, - "request_id": { - "type": "string", - "title": "Request Id", - "description": "The request_id related to this request. If the caller does not set it, a random_uuid will be generated. This id is used through out the inference process and return in response." - }, - "logits_processors": { - "anyOf": [ - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/LogitsProcessorConstructor" - } - ] - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Logits Processors", - "description": "A list of either qualified names of logits processors, or constructor objects, to apply when sampling. A constructor is a JSON object with a required 'qualname' field specifying the qualified name of the processor class/factory, and optional 'args' and 'kwargs' fields containing positional and keyword arguments. For example: {'qualname': 'my_module.MyLogitsProcessor', 'args': [1, 2], 'kwargs': {'param': 'value'}}." - }, - "return_tokens_as_token_ids": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Return Tokens As Token Ids", - "description": "If specified with 'logprobs', tokens are represented as strings of the form 'token_id:{token_id}' so that tokens that are not JSON-encodable can be identified." + "title": "Return Token Ids", + "description": "If specified, the result will include token IDs alongside the generated text. In streaming mode, prompt_token_ids is included only in the first chunk, and token_ids contains the delta tokens for each chunk. This is useful for debugging or when you need to map generated text back to input tokens." }, "cache_salt": { "anyOf": [ @@ -1855,7 +2031,7 @@ } ], "title": "Cache Salt", - "description": "If specified, the prefix cache will be salted with the provided string to prevent an attacker to guess prompts in multi-user environments. The salt should be random, protected from access by 3rd parties, and long enough to be unpredictable (e.g., 43 characters base64-encoded, corresponding to 256 bit). Not supported by vLLM engine V0." + "description": "If specified, the prefix cache will be salted with the provided string to prevent an attacker to guess prompts in multi-user environments. The salt should be random, protected from access by 3rd parties, and long enough to be unpredictable (e.g., 43 characters base64-encoded, corresponding to 256 bit)." }, "kv_transfer_params": { "anyOf": [ @@ -1883,6 +2059,22 @@ }, { "type": "number" + }, + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "number" + } + ] + }, + "type": "array" } ] }, @@ -1893,7 +2085,7 @@ } ], "title": "Vllm Xargs", - "description": "Additional request parameters with string or numeric values, used by custom extensions." + "description": "Additional request parameters with (list of) string or numeric values, used by custom extensions." } }, "additionalProperties": true, @@ -1986,6 +2178,20 @@ ], "title": "Prompt Logprobs" }, + "prompt_token_ids": { + "anyOf": [ + { + "items": { + "type": "integer" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Prompt Token Ids" + }, "kv_transfer_params": { "anyOf": [ { @@ -2053,6 +2259,20 @@ } ], "title": "Stop Reason" + }, + "token_ids": { + "anyOf": [ + { + "items": { + "type": "integer" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Token Ids" } }, "additionalProperties": true, @@ -2089,12 +2309,14 @@ "title": "Name" } }, + "additionalProperties": true, "type": "object", "required": [ "content", "role" ], - "title": "ChatCompletionSystemMessageParam" + "title": "ChatCompletionSystemMessageParam", + "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, use `developer` messages\nfor this purpose instead." }, "ChatCompletionTokenLogprob": { "properties": { @@ -2163,6 +2385,7 @@ "title": "Tool Call Id" } }, + "additionalProperties": true, "type": "object", "required": [ "content", @@ -2171,24 +2394,6 @@ ], "title": "ChatCompletionToolMessageParam" }, - "ChatCompletionToolParam": { - "properties": { - "function": { - "$ref": "#/components/schemas/openai__types__shared_params__function_definition__FunctionDefinition" - }, - "type": { - "type": "string", - "const": "function", - "title": "Type" - } - }, - "type": "object", - "required": [ - "function", - "type" - ], - "title": "ChatCompletionToolParam" - }, "ChatCompletionToolsParam": { "properties": { "type": { @@ -2198,7 +2403,7 @@ "default": "function" }, "function": { - "$ref": "#/components/schemas/vllm__entrypoints__openai__protocol__FunctionDefinition" + "$ref": "#/components/schemas/FunctionDefinition" } }, "additionalProperties": true, @@ -2247,12 +2452,14 @@ "title": "Name" } }, + "additionalProperties": true, "type": "object", "required": [ "content", "role" ], - "title": "ChatCompletionUserMessageParam" + "title": "ChatCompletionUserMessageParam", + "description": "Messages sent by an end user, containing prompts or additional context\ninformation." }, "ChatMessage": { "properties": { @@ -2319,6 +2526,17 @@ "type": "array", "title": "Tool Calls" }, + "reasoning": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reasoning" + }, "reasoning_content": { "anyOf": [ { @@ -2439,7 +2657,13 @@ }, "additionalProperties": true, "type": "object", - "title": "ChoiceLogprobs" + "title": "ChoiceLogprobs", + "description": "Log probability information for the choice." + }, + "Content": { + "properties": {}, + "type": "object", + "title": "Content" }, "CreateTrainingJob": { "properties": { @@ -2474,45 +2698,102 @@ "title": "CreateTrainingJob", "description": "Schema for creating a new TrainingJob." }, - "CustomChatCompletionContentSimpleAudioParam": { + "Custom": { "properties": { - "audio_url": { + "input": { "type": "string", - "title": "Audio Url" + "title": "Input" + }, + "name": { + "type": "string", + "title": "Name" } }, + "additionalProperties": true, "type": "object", "required": [ - "audio_url" + "input", + "name" ], + "title": "Custom", + "description": "The custom tool that the model called." + }, + "CustomChatCompletionContentSimpleAudioParam": { + "properties": { + "audio_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Audio Url" + } + }, + "additionalProperties": true, + "type": "object", "title": "CustomChatCompletionContentSimpleAudioParam", "description": "A simpler version of the param that only accepts a plain audio_url.\n\nExample:\n{\n \"audio_url\": \"https://example.com/audio.mp3\"\n}" }, "CustomChatCompletionContentSimpleImageParam": { "properties": { "image_url": { - "type": "string", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], "title": "Image Url" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" } }, + "additionalProperties": true, "type": "object", - "required": [ - "image_url" - ], "title": "CustomChatCompletionContentSimpleImageParam", "description": "A simpler version of the param that only accepts a plain image_url.\nThis is supported by OpenAI API, although it is not documented.\n\nExample:\n{\n \"image_url\": \"https://example.com/image.jpg\"\n}" }, "CustomChatCompletionContentSimpleVideoParam": { "properties": { "video_url": { - "type": "string", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], "title": "Video Url" + }, + "uuid": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Uuid" } }, + "additionalProperties": true, "type": "object", - "required": [ - "video_url" - ], "title": "CustomChatCompletionContentSimpleVideoParam", "description": "A simpler version of the param that only accepts a plain audio_url.\n\nExample:\n{\n \"video_url\": \"https://example.com/video.mp4\"\n}" }, @@ -2557,6 +2838,9 @@ { "$ref": "#/components/schemas/ChatCompletionContentPartImageEmbedsParam" }, + { + "$ref": "#/components/schemas/ChatCompletionContentPartAudioEmbedsParam" + }, { "$ref": "#/components/schemas/CustomChatCompletionContentSimpleAudioParam" }, @@ -2595,7 +2879,7 @@ "anyOf": [ { "items": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCallParam" + "$ref": "#/components/schemas/ChatCompletionMessageFunctionToolCallParam" }, "type": "array" }, @@ -2604,8 +2888,34 @@ } ], "title": "Tool Calls" + }, + "reasoning": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reasoning" + }, + "tools": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/ChatCompletionFunctionToolParam" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tools" } }, + "additionalProperties": true, "type": "object", "required": [ "role" @@ -2629,6 +2939,7 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "thinking", @@ -2676,9 +2987,34 @@ "title": "DeleteCheckpointsResponse", "description": "Schema for delete checkpoints response." }, + "DeleteModelResponse": { + "properties": { + "model_id": { + "type": "string", + "format": "uuid", + "title": "Model Id" + }, + "deleted_checkpoints": { + "type": "integer", + "title": "Deleted Checkpoints" + }, + "deleted_run": { + "type": "boolean", + "title": "Deleted Run" + } + }, + "type": "object", + "required": [ + "model_id", + "deleted_checkpoints", + "deleted_run" + ], + "title": "DeleteModelResponse", + "description": "Schema for delete model response." + }, "ExperimentalTrainingConfig": { "properties": { - "learning_rate": { + "advantage_balance": { "anyOf": [ { "type": "number" @@ -2687,27 +3023,132 @@ "type": "null" } ], - "title": "Learning Rate" + "title": "Advantage Balance" }, - "precalculate_logprobs": { + "epsilon": { "anyOf": [ { - "type": "boolean" + "type": "number" }, { "type": "null" } ], - "title": "Precalculate Logprobs" - } - }, - "type": "object", - "title": "ExperimentalTrainingConfig", - "description": "Schema for experimental training config." - }, - "File": { - "properties": { - "file": { + "title": "Epsilon" + }, + "epsilon_high": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Epsilon High" + }, + "importance_sampling_level": { + "anyOf": [ + { + "type": "string", + "enum": [ + "token", + "sequence", + "average", + "geometric_average" + ] + }, + { + "type": "null" + } + ], + "title": "Importance Sampling Level" + }, + "kimi_k2_tau": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Kimi K2 Tau" + }, + "learning_rate": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Learning Rate" + }, + "mask_prob_ratio": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mask Prob Ratio" + }, + "max_negative_advantage_importance_sampling_weight": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Max Negative Advantage Importance Sampling Weight" + }, + "ppo": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Ppo" + }, + "precalculate_logprobs": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Precalculate Logprobs" + }, + "scale_rewards": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Scale Rewards" + } + }, + "type": "object", + "title": "ExperimentalTrainingConfig", + "description": "Schema for experimental training config." + }, + "File": { + "properties": { + "file": { "$ref": "#/components/schemas/FileFile" }, "type": { @@ -2716,12 +3157,14 @@ "title": "Type" } }, + "additionalProperties": true, "type": "object", "required": [ "file", "type" ], - "title": "File" + "title": "File", + "description": "Learn about [file inputs](https://platform.openai.com/docs/guides/text) for text generation." }, "FileFile": { "properties": { @@ -2738,9 +3181,50 @@ "title": "Filename" } }, + "additionalProperties": true, "type": "object", "title": "FileFile" }, + "Function": { + "properties": { + "arguments": { + "type": "string", + "title": "Arguments" + }, + "name": { + "type": "string", + "title": "Name" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "arguments", + "name" + ], + "title": "Function", + "description": "The function that the model called." + }, + "FunctionCall-Input": { + "properties": { + "arguments": { + "type": "string", + "title": "Arguments" + }, + "name": { + "type": "string", + "title": "Name" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "arguments", + "name" + ], + "title": "FunctionCall", + "description": "Deprecated and replaced by `tool_calls`.\n\nThe name and arguments of a function that should be called, as generated by the model." + }, "FunctionCall-Output": { "properties": { "name": { @@ -2760,6 +3244,43 @@ ], "title": "FunctionCall" }, + "FunctionDefinition": { + "properties": { + "name": { + "type": "string", + "title": "Name" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "parameters": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Parameters" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "name" + ], + "title": "FunctionDefinition" + }, "HTTPValidationError": { "properties": { "detail": { @@ -2808,7 +3329,7 @@ "anyOf": [ { "items": { - "$ref": "#/components/schemas/ChatCompletionToolParam" + "$ref": "#/components/schemas/ChatCompletionFunctionToolParam" }, "type": "array" }, @@ -2841,6 +3362,7 @@ "title": "Detail" } }, + "additionalProperties": true, "type": "object", "required": [ "url" @@ -2862,6 +3384,7 @@ "title": "Format" } }, + "additionalProperties": true, "type": "object", "required": [ "data", @@ -2917,6 +3440,68 @@ ], "title": "JsonSchemaResponseFormat" }, + "LegacyStructuralTag": { + "properties": { + "begin": { + "type": "string", + "title": "Begin" + }, + "schema": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Schema" + }, + "end": { + "type": "string", + "title": "End" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "begin", + "end" + ], + "title": "LegacyStructuralTag" + }, + "LegacyStructuralTagResponseFormat": { + "properties": { + "type": { + "type": "string", + "const": "structural_tag", + "title": "Type" + }, + "structures": { + "items": { + "$ref": "#/components/schemas/LegacyStructuralTag" + }, + "type": "array", + "title": "Structures" + }, + "triggers": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Triggers" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "type", + "structures", + "triggers" + ], + "title": "LegacyStructuralTagResponseFormat" + }, "LogRequest": { "properties": { "split": { @@ -3012,6 +3597,58 @@ ], "title": "Logprob" }, + "Message": { + "properties": { + "author": { + "$ref": "#/components/schemas/Author" + }, + "content": { + "items": { + "$ref": "#/components/schemas/Content" + }, + "type": "array", + "title": "Content" + }, + "channel": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Channel" + }, + "recipient": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Recipient" + }, + "content_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Content Type" + } + }, + "type": "object", + "required": [ + "author" + ], + "title": "Message" + }, "ModelCreate": { "properties": { "entity": { @@ -3233,6 +3870,18 @@ ], "title": "ResponseFormat" }, + "Role": { + "type": "string", + "enum": [ + "user", + "assistant", + "system", + "developer", + "tool" + ], + "title": "Role", + "description": "The role of a message author (mirrors ``chat::Role``)." + }, "StreamOptions": { "properties": { "include_usage": { @@ -3264,14 +3913,32 @@ "type": "object", "title": "StreamOptions" }, - "StructuralTag": { + "StructuralTagResponseFormat": { "properties": { - "begin": { + "type": { "type": "string", - "title": "Begin" + "const": "structural_tag", + "title": "Type" }, - "schema": { + "format": { + "title": "Format" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "type", + "format" + ], + "title": "StructuralTagResponseFormat" + }, + "StructuredOutputsParams": { + "properties": { + "json": { "anyOf": [ + { + "type": "string" + }, { "additionalProperties": true, "type": "object" @@ -3280,51 +3947,111 @@ "type": "null" } ], - "title": "Schema" + "title": "Json" }, - "end": { - "type": "string", - "title": "End" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "begin", - "end" - ], - "title": "StructuralTag" - }, - "StructuralTagResponseFormat": { - "properties": { - "type": { - "type": "string", - "const": "structural_tag", - "title": "Type" + "regex": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Regex" }, - "structures": { - "items": { - "$ref": "#/components/schemas/StructuralTag" - }, - "type": "array", - "title": "Structures" + "choice": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Choice" }, - "triggers": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Triggers" + "grammar": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Grammar" + }, + "json_object": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Json Object" + }, + "disable_fallback": { + "type": "boolean", + "title": "Disable Fallback", + "default": false + }, + "disable_any_whitespace": { + "type": "boolean", + "title": "Disable Any Whitespace", + "default": false + }, + "disable_additional_properties": { + "type": "boolean", + "title": "Disable Additional Properties", + "default": false + }, + "whitespace_pattern": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Whitespace Pattern" + }, + "structural_tag": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Structural Tag" + }, + "_backend": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Backend" + }, + "_backend_was_auto": { + "type": "boolean", + "title": "Backend Was Auto", + "default": false } }, - "additionalProperties": true, "type": "object", - "required": [ - "type", - "structures", - "triggers" - ], - "title": "StructuralTagResponseFormat" + "title": "StructuredOutputsParams" }, "ToolCall": { "properties": { @@ -3468,7 +4195,7 @@ "anyOf": [ { "items": { - "$ref": "#/components/schemas/ChatCompletionToolParam" + "$ref": "#/components/schemas/ChatCompletionFunctionToolParam" }, "type": "array" }, @@ -3508,6 +4235,24 @@ "title": "Metrics", "default": {} }, + "auto_metrics": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + }, + "type": "object", + "title": "Auto Metrics", + "default": {} + }, "metadata": { "additionalProperties": { "anyOf": [ @@ -3648,86 +4393,13 @@ "title": "Url" } }, + "additionalProperties": true, "type": "object", "required": [ "url" ], "title": "VideoURL" }, - "openai__types__chat__chat_completion_assistant_message_param__FunctionCall": { - "properties": { - "arguments": { - "type": "string", - "title": "Arguments" - }, - "name": { - "type": "string", - "title": "Name" - } - }, - "type": "object", - "required": [ - "arguments", - "name" - ], - "title": "FunctionCall" - }, - "openai__types__chat__chat_completion_message__FunctionCall": { - "properties": { - "arguments": { - "type": "string", - "title": "Arguments" - }, - "name": { - "type": "string", - "title": "Name" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "arguments", - "name" - ], - "title": "FunctionCall" - }, - "openai__types__chat__chat_completion_message_tool_call__Function": { - "properties": { - "arguments": { - "type": "string", - "title": "Arguments" - }, - "name": { - "type": "string", - "title": "Name" - } - }, - "additionalProperties": true, - "type": "object", - "required": [ - "arguments", - "name" - ], - "title": "Function" - }, - "openai__types__chat__chat_completion_message_tool_call_param__Function": { - "properties": { - "arguments": { - "type": "string", - "title": "Arguments" - }, - "name": { - "type": "string", - "title": "Name" - } - }, - "type": "object", - "required": [ - "arguments", - "name" - ], - "title": "Function" - }, "openai__types__shared_params__function_definition__FunctionDefinition": { "properties": { "name": { @@ -3755,42 +4427,6 @@ "title": "Strict" } }, - "type": "object", - "required": [ - "name" - ], - "title": "FunctionDefinition" - }, - "vllm__entrypoints__openai__protocol__FunctionDefinition": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Description" - }, - "parameters": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Parameters" - } - }, "additionalProperties": true, "type": "object", "required": [