Enable sane naming of registered objects with defaults (#429)

# What does this PR do? 

This is a follow-up to #425. That PR allows for specifying models in the
registry, but each entry needs to look like:

```yaml
- identifier: ...
  provider_id: ...
  provider_resource_identifier: ...
```

This is headache-inducing.

The current PR makes this situation better by adopting the shape of our
APIs. Namely, we need the user to only specify `model-id`. The rest
should be optional and figured out by the Stack. You can always override
it.

Here's what example `ollama` "full stack" registry looks like (we still
need to kill or simplify shield_type crap):
```yaml
models:
- model_id: Llama3.2-3B-Instruct
- model_id: Llama-Guard-3-1B
shields:
- shield_id: llama_guard
  shield_type: llama_guard
```

## Test Plan

See test plan for #425. Re-ran it.
This commit is contained in:
Ashwin Bharambe 2024-11-12 11:18:05 -08:00 committed by GitHub
parent d9d271a684
commit 09269e2a44
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 295 additions and 207 deletions

View file

@ -21,7 +21,7 @@
"info": {
"title": "[DRAFT] Llama Stack Specification",
"version": "0.0.1",
"description": "This is the specification of the llama stack that provides\n a set of endpoints and their corresponding interfaces that are tailored to\n best leverage Llama Models. The specification is still in draft and subject to change.\n Generated at 2024-11-11 18:44:30.967321"
"description": "This is the specification of the llama stack that provides\n a set of endpoints and their corresponding interfaces that are tailored to\n best leverage Llama Models. The specification is still in draft and subject to change.\n Generated at 2024-11-12 11:16:58.657871"
},
"servers": [
{
@ -5778,8 +5778,7 @@
"provider_resource_id",
"provider_id",
"type",
"shield_type",
"params"
"shield_type"
],
"title": "A safety shield resource that can be used to check content"
},
@ -7027,7 +7026,7 @@
"provider_id": {
"type": "string"
},
"provider_memorybank_id": {
"provider_memory_bank_id": {
"type": "string"
}
},
@ -7854,59 +7853,59 @@
}
],
"tags": [
{
"name": "Datasets"
},
{
"name": "Telemetry"
},
{
"name": "PostTraining"
},
{
"name": "MemoryBanks"
},
{
"name": "Eval"
},
{
"name": "Memory"
},
{
"name": "EvalTasks"
},
{
"name": "Models"
},
{
"name": "Scoring"
},
{
"name": "Inference"
},
{
"name": "Shields"
},
{
"name": "DatasetIO"
},
{
"name": "Safety"
},
{
"name": "Agents"
},
{
"name": "SyntheticDataGeneration"
"name": "Telemetry"
},
{
"name": "Eval"
},
{
"name": "Models"
},
{
"name": "Inspect"
},
{
"name": "EvalTasks"
},
{
"name": "ScoringFunctions"
},
{
"name": "BatchInference"
"name": "Memory"
},
{
"name": "Inspect"
"name": "Safety"
},
{
"name": "DatasetIO"
},
{
"name": "MemoryBanks"
},
{
"name": "Shields"
},
{
"name": "PostTraining"
},
{
"name": "Datasets"
},
{
"name": "Scoring"
},
{
"name": "SyntheticDataGeneration"
},
{
"name": "BatchInference"
},
{
"name": "BuiltinTool",

View file

@ -2068,7 +2068,7 @@ components:
- $ref: '#/components/schemas/GraphMemoryBankParams'
provider_id:
type: string
provider_memorybank_id:
provider_memory_bank_id:
type: string
required:
- memory_bank_id
@ -2710,7 +2710,6 @@ components:
- provider_id
- type
- shield_type
- params
title: A safety shield resource that can be used to check content
type: object
ShieldCallStep:
@ -3398,7 +3397,7 @@ info:
description: "This is the specification of the llama stack that provides\n \
\ a set of endpoints and their corresponding interfaces that are tailored\
\ to\n best leverage Llama Models. The specification is still in\
\ draft and subject to change.\n Generated at 2024-11-11 18:44:30.967321"
\ draft and subject to change.\n Generated at 2024-11-12 11:16:58.657871"
title: '[DRAFT] Llama Stack Specification'
version: 0.0.1
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
@ -4762,24 +4761,24 @@ security:
servers:
- url: http://any-hosted-llama-stack.com
tags:
- name: Datasets
- name: Telemetry
- name: PostTraining
- name: MemoryBanks
- name: Eval
- name: Memory
- name: EvalTasks
- name: Models
- name: Scoring
- name: Inference
- name: Shields
- name: DatasetIO
- name: Safety
- name: Agents
- name: SyntheticDataGeneration
- name: ScoringFunctions
- name: BatchInference
- name: Telemetry
- name: Eval
- name: Models
- name: Inspect
- name: EvalTasks
- name: ScoringFunctions
- name: Memory
- name: Safety
- name: DatasetIO
- name: MemoryBanks
- name: Shields
- name: PostTraining
- name: Datasets
- name: Scoring
- name: SyntheticDataGeneration
- name: BatchInference
- description: <SchemaDefinition schemaRef="#/components/schemas/BuiltinTool" />
name: BuiltinTool
- description: <SchemaDefinition schemaRef="#/components/schemas/CompletionMessage"