move distribution to yaml files

This commit is contained in:
Xi Yan 2024-09-14 15:02:22 -07:00
parent 3802d5acdc
commit 0068d059db
9 changed files with 78 additions and 49 deletions

View file

@ -40,7 +40,7 @@ class StackListDistributions(Subcommand):
rows = []
for spec in available_distribution_specs():
providers = {k.value: v for k, v in spec.providers.items()}
providers = {k: v for k, v in spec.providers.items()}
rows.append(
[
spec.distribution_type,

View file

@ -1,7 +1,7 @@
name: local-tgi-conda-example
distribution_spec:
distribution_type: local-plus-tgi-inference
description: Use TGI for running LLM inference
description: Use TGI (local or with Hugging Face Inference Endpoints for running LLM inference. When using HF Inference Endpoints, you must provide the name of the endpoint).
docker_image: null
providers:
inference: remote::tgi

View file

@ -0,0 +1,9 @@
distribution_type: local-ollama
description: Like local, but use ollama for running LLM inference
docker_image: null
providers:
inference: remote::ollama
safety: meta-reference
agentic_system: meta-reference
memory: meta-reference-faiss
telemetry: console

View file

@ -0,0 +1,9 @@
distribution_type: local-plus-fireworks-inference
description: Use Fireworks.ai for running LLM inference
docker_image: null
providers:
inference: remote::fireworks
safety: meta-reference
agentic_system: meta-reference
memory: meta-reference-faiss
telemetry: console

View file

@ -0,0 +1,8 @@
distribution_type: local-plus-tgi-inference
description: Use TGI (local or with Hugging Face Inference Endpoints for running LLM inference. When using HF Inference Endpoints, you must provide the name of the endpoint).
docker_image: null
providers:
inference: remote::tgi
safety: meta-reference
agentic_system: meta-reference
memory: meta-reference-faiss

View file

@ -0,0 +1,9 @@
distribution_type: local-plus-together-inference
description: Use Together.ai for running LLM inference
docker_image: null
providers:
inference: remote::together
safety: meta-reference
agentic_system: meta-reference
memory: meta-reference-faiss
telemetry: console

View file

@ -0,0 +1,9 @@
distribution_type: local
description: Use code from `llama_toolchain` itself to serve all llama stack APIs
docker_image: null
providers:
inference: meta-reference
memory: meta-reference-faiss
safety: meta-reference
agentic_system: meta-reference
telemetry: console

View file

@ -0,0 +1,21 @@
from llama_toolchain.core.distribution_registry import *
import json
import fire
import yaml
from llama_toolchain.common.serialize import EnumEncoder
def main():
for d in available_distribution_specs():
file_path = "./configs/distributions/distribution_registry/{}.yaml".format(
d.distribution_type
)
with open(file_path, "w") as f:
to_write = json.loads(json.dumps(d.dict(), cls=EnumEncoder))
f.write(yaml.dump(to_write, sort_keys=False))
if __name__ == "__main__":
fire.Fire(main)

View file

@ -5,55 +5,19 @@
# the root directory of this source tree.
from functools import lru_cache
from pathlib import Path
from typing import List, Optional
from .datatypes import * # noqa: F403
import yaml
@lru_cache()
# @lru_cache()
def available_distribution_specs() -> List[DistributionSpec]:
return [
DistributionSpec(
distribution_type="local",
description="Use code from `llama_toolchain` itself to serve all llama stack APIs",
providers={
"inference": "meta-reference",
"memory": "meta-reference-faiss",
"safety": "meta-reference",
"agentic_system": "meta-reference",
"telemetry": "console",
},
),
DistributionSpec(
distribution_type="local-ollama",
description="Like local, but use ollama for running LLM inference",
providers={
"inference": remote_provider_type("ollama"),
"safety": "meta-reference",
"agentic_system": "meta-reference",
"memory": "meta-reference-faiss",
"telemetry": "console",
},
),
DistributionSpec(
distribution_type="local-plus-fireworks-inference",
description="Use Fireworks.ai for running LLM inference",
providers={
"inference": remote_provider_type("fireworks"),
"safety": "meta-reference",
"agentic_system": "meta-reference",
"memory": "meta-reference-faiss",
"telemetry": "console",
},
),
DistributionSpec(
distribution_type="local-plus-tgi-inference",
description="Use TGI for running LLM inference",
providers={
"inference": remote_provider_type("tgi"),
"safety": "meta-reference",
"agentic_system": "meta-reference",
"memory": "meta-reference-faiss",
},
),
]
distribution_specs = []
for p in Path("llama_toolchain/configs/distributions/distribution_registry").rglob(
"*.yaml"
):
with open(p, "r") as f:
distribution_specs.append(DistributionSpec(**yaml.safe_load(f)))
return distribution_specs