Skip to content

Commit

Permalink
Add missing tests for ML APIs (search and delete)
Browse files Browse the repository at this point in the history
Signed-off-by: Nathalie Jonathan <[email protected]>
  • Loading branch information
nathaliellenaa committed Nov 14, 2024
1 parent 6bb1fed commit f5f1213
Show file tree
Hide file tree
Showing 3 changed files with 151 additions and 9 deletions.
111 changes: 102 additions & 9 deletions spec/schemas/ml._common.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,48 @@ components:
required:
- query
- size
BaseResponse:
type: object
properties:
_version:
type: integer
description: The version.
_seq_no:
type: integer
description: The sequence number.
_primary_term:
type: integer
description: The primary term.
SearchModelsResponse:
type: object
properties:
took:
type: integer
description: The time taken to execute the search.
timed_out:
type: boolean
description: Whether the search timed out.
_shards:
$ref: '#/components/schemas/SearchModelsShardsResponse'
hits:
$ref: '#/components/schemas/SearchModelsHits'
required:
- hits
SearchModelsShardsResponse:
type: object
properties:
total:
type: integer
description: The total number of shards.
successful:
type: integer
description: The number of successful shards.
skipped:
type: integer
description: The number of skipped shards.
failed:
type: integer
description: The number of failed shards.
SearchModelsHits:
type: object
properties:
Expand All @@ -35,6 +70,9 @@ components:
type: array
items:
$ref: '#/components/schemas/SearchModelsHitsHit'
max_score:
type: number
description: The maximum score.
required:
- hits
- total
Expand All @@ -51,20 +89,75 @@ components:
- relation
- value
SearchModelsHitsHit:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
_index:
type: string
description: The index.
_id:
type: string
description: The hit ID.
_score:
type: number
description: The score.
_source:
$ref: '#/components/schemas/Source'
model_id:
type: string
description: The model ID.
required:
- _score
Source:
type: object
properties:
_index:
last_deployed_time:
type: number
description: The last deployed time.
model_version:
type: string
description: The index.
_id:
description: The model version.
created_time:
type: number
description: The created time.
deploy_to_all_nodes:
type: boolean
description: Whether to deploy to all nodes.
is_hidden:
type: boolean
description: Whether the model is hidden.
description:
type: string
description: The hit ID.
model_id:
description: The model description.
model_state:
type: string
description: The model ID.
required:
- _id
- model_id
description: The model state.
planning_worker_node_count:
type: number
description: The planning worker node count.
last_updated_time:
type: number
description: The last updated time.
name:
type: string
description: The model name.
connector_id:
type: string
description: The connector ID.
current_worker_node_count:
type: number
description: The current worker node count.
model_group_id:
type: string
description: The model group ID.
planning_worker_nodes:
type: array
items:
$ref: '_common.yaml#/components/schemas/NodeIds'
algorithm:
type: string
description: The algorithm.
ModelGroupRegistration:
type: object
properties:
Expand Down
17 changes: 17 additions & 0 deletions tests/plugins/ml/ml/models.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,23 @@ chapters:
status: 200
output:
task_id: payload.task_id
- synopsis: Search model.
id: search_model
path: /_plugins/_ml/models/_search
method: GET
request:
payload:
query:
match_all: {}
size: 1000
response:
status: 200
payload:
hits:
hits:
- _score: 1
output:
search_id: payload.hits.hits[0]._id
- synopsis: Wait to get completed task.
id: get_completed_task
path: /_plugins/_ml/tasks/{task_id}
Expand Down
32 changes: 32 additions & 0 deletions tests/plugins/ml/ml/tasks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test the creation of tasks.
distributions:
excluded:
- amazon-managed
- amazon-serverless
version: '>= 2.11'
warnings:
multiple-paths-detected: false
chapters:
- synopsis: Register model.
id: register_model
path: /_plugins/_ml/models/_register
method: POST
request:
payload:
name: huggingface/sentence-transformers/msmarco-distilbert-base-tas-b
version: 1.0.1
model_format: TORCH_SCRIPT
response:
status: 200
output:
task_id: payload.task_id
- synopsis: Delete task.
id: delete_task
path: /_plugins/_ml/tasks/{task_id}
method: DELETE
parameters:
task_id: ${register_model.task_id}
response:
status: 200

0 comments on commit f5f1213

Please sign in to comment.