Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add missing tests for ML APIs (search and delete) #672

Merged
merged 10 commits into from
Nov 16, 2024
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:
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
type: object
properties:
_version:
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
type: integer
description: The version.
_seq_no:
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
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:
dblock marked this conversation as resolved.
Show resolved Hide resolved
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
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
description: The index.
_id:
type: string
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
description: The hit ID.
_score:
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
type: number
description: The score.
_source:
$ref: '#/components/schemas/Source'
model_id:
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
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:
dblock marked this conversation as resolved.
Show resolved Hide resolved
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:
dblock marked this conversation as resolved.
Show resolved Hide resolved
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:
dblock marked this conversation as resolved.
Show resolved Hide resolved
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
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
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
nathaliellenaa marked this conversation as resolved.
Show resolved Hide resolved
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
Loading