chore(api): add mypy coverage to apis (#2648)

# What does this PR do?
<!-- Provide a short summary of what this PR does and why. Link to
relevant issues if applicable. -->
This PR adds static type coverage to `llama-stack/apis`

Part of https://github.com/meta-llama/llama-stack/issues/2647

<!-- If resolving an issue, uncomment and update the line below -->
<!-- Closes #[issue-number] -->

## Test Plan
<!-- Describe the tests you ran to verify your changes with result
summaries. *Provide clear instructions so the plan can be easily
re-executed.* -->

Signed-off-by: Mustafa Elbehery <melbeher@redhat.com>
This commit is contained in:
Mustafa Elbehery 2025-07-09 12:55:16 +02:00 committed by GitHub
parent 297cd8e0db
commit cd0ad21111
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 101 additions and 5 deletions

View file

@ -11132,8 +11132,38 @@
"title": "Trace" "title": "Trace"
}, },
"Checkpoint": { "Checkpoint": {
"description": "Checkpoint created during training runs", "type": "object",
"title": "Checkpoint" "properties": {
"identifier": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"epoch": {
"type": "integer"
},
"post_training_job_id": {
"type": "string"
},
"path": {
"type": "string"
},
"training_metrics": {
"$ref": "#/components/schemas/PostTrainingMetric"
}
},
"additionalProperties": false,
"required": [
"identifier",
"created_at",
"epoch",
"post_training_job_id",
"path"
],
"title": "Checkpoint",
"description": "Checkpoint created during training runs"
}, },
"PostTrainingJobArtifactsResponse": { "PostTrainingJobArtifactsResponse": {
"type": "object", "type": "object",
@ -11156,6 +11186,31 @@
"title": "PostTrainingJobArtifactsResponse", "title": "PostTrainingJobArtifactsResponse",
"description": "Artifacts of a finetuning job." "description": "Artifacts of a finetuning job."
}, },
"PostTrainingMetric": {
"type": "object",
"properties": {
"epoch": {
"type": "integer"
},
"train_loss": {
"type": "number"
},
"validation_loss": {
"type": "number"
},
"perplexity": {
"type": "number"
}
},
"additionalProperties": false,
"required": [
"epoch",
"train_loss",
"validation_loss",
"perplexity"
],
"title": "PostTrainingMetric"
},
"PostTrainingJobStatusResponse": { "PostTrainingJobStatusResponse": {
"type": "object", "type": "object",
"properties": { "properties": {

View file

@ -7838,8 +7838,30 @@ components:
- start_time - start_time
title: Trace title: Trace
Checkpoint: Checkpoint:
description: Checkpoint created during training runs type: object
properties:
identifier:
type: string
created_at:
type: string
format: date-time
epoch:
type: integer
post_training_job_id:
type: string
path:
type: string
training_metrics:
$ref: '#/components/schemas/PostTrainingMetric'
additionalProperties: false
required:
- identifier
- created_at
- epoch
- post_training_job_id
- path
title: Checkpoint title: Checkpoint
description: Checkpoint created during training runs
PostTrainingJobArtifactsResponse: PostTrainingJobArtifactsResponse:
type: object type: object
properties: properties:
@ -7855,6 +7877,24 @@ components:
- checkpoints - checkpoints
title: PostTrainingJobArtifactsResponse title: PostTrainingJobArtifactsResponse
description: Artifacts of a finetuning job. description: Artifacts of a finetuning job.
PostTrainingMetric:
type: object
properties:
epoch:
type: integer
train_loss:
type: number
validation_loss:
type: number
perplexity:
type: number
additionalProperties: false
required:
- epoch
- train_loss
- validation_loss
- perplexity
title: PostTrainingMetric
PostTrainingJobStatusResponse: PostTrainingJobStatusResponse:
type: object type: object
properties: properties:

View file

@ -19,8 +19,10 @@ class PostTrainingMetric(BaseModel):
perplexity: float perplexity: float
@json_schema_type(schema={"description": "Checkpoint created during training runs"}) @json_schema_type
class Checkpoint(BaseModel): class Checkpoint(BaseModel):
"""Checkpoint created during training runs"""
identifier: str identifier: str
created_at: datetime created_at: datetime
epoch: int epoch: int

View file

@ -225,7 +225,6 @@ follow_imports = "silent"
# to exclude the entire directory. # to exclude the entire directory.
exclude = [ exclude = [
# As we fix more and more of these, we should remove them from the list # As we fix more and more of these, we should remove them from the list
"^llama_stack/apis/common/training_types\\.py$",
"^llama_stack/cli/download\\.py$", "^llama_stack/cli/download\\.py$",
"^llama_stack/cli/stack/_build\\.py$", "^llama_stack/cli/stack/_build\\.py$",
"^llama_stack/distribution/build\\.py$", "^llama_stack/distribution/build\\.py$",