mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-04 04:04:14 +00:00
currently providers have a `pip_package` list. Rather than make our own form of python dependency management, we should use `pyproject.toml` files in each provider declaring the dependencies in a more trackable manner. Each provider can then be installed using the already in place `module` field in the ProviderSpec, pointing to the directory the provider lives in we can then simply `uv pip install` this directory as opposed to installing the dependencies one by one Signed-off-by: Charlie Doern <cdoern@redhat.com>
71 lines
3.8 KiB
Python
71 lines
3.8 KiB
Python
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
|
|
|
|
from llama_stack.providers.datatypes import (
|
|
Api,
|
|
InlineProviderSpec,
|
|
ProviderSpec,
|
|
RemoteProviderSpec,
|
|
)
|
|
|
|
|
|
def available_providers() -> list[ProviderSpec]:
|
|
return [
|
|
InlineProviderSpec(
|
|
api=Api.tool_runtime,
|
|
provider_type="inline::rag-runtime",
|
|
module="llama_stack.providers.inline.tool_runtime.rag",
|
|
config_class="llama_stack.providers.inline.tool_runtime.rag.config.RagToolRuntimeConfig",
|
|
api_dependencies=[Api.vector_io, Api.inference, Api.files],
|
|
description="RAG (Retrieval-Augmented Generation) tool runtime for document ingestion, chunking, and semantic search.",
|
|
),
|
|
RemoteProviderSpec(
|
|
api=Api.tool_runtime,
|
|
adapter_type="brave-search",
|
|
provider_type="remote::brave-search",
|
|
module="llama_stack.providers.remote.tool_runtime.brave_search",
|
|
config_class="llama_stack.providers.remote.tool_runtime.brave_search.config.BraveSearchToolConfig",
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.brave_search.BraveSearchToolProviderDataValidator",
|
|
description="Brave Search tool for web search capabilities with privacy-focused results.",
|
|
),
|
|
RemoteProviderSpec(
|
|
api=Api.tool_runtime,
|
|
adapter_type="bing-search",
|
|
provider_type="remote::bing-search",
|
|
module="llama_stack.providers.remote.tool_runtime.bing_search",
|
|
config_class="llama_stack.providers.remote.tool_runtime.bing_search.config.BingSearchToolConfig",
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.bing_search.BingSearchToolProviderDataValidator",
|
|
description="Bing Search tool for web search capabilities using Microsoft's search engine.",
|
|
),
|
|
RemoteProviderSpec(
|
|
api=Api.tool_runtime,
|
|
adapter_type="tavily-search",
|
|
provider_type="remote::tavily-search",
|
|
module="llama_stack.providers.remote.tool_runtime.tavily_search",
|
|
config_class="llama_stack.providers.remote.tool_runtime.tavily_search.config.TavilySearchToolConfig",
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.tavily_search.TavilySearchToolProviderDataValidator",
|
|
description="Tavily Search tool for AI-optimized web search with structured results.",
|
|
),
|
|
RemoteProviderSpec(
|
|
api=Api.tool_runtime,
|
|
adapter_type="wolfram-alpha",
|
|
provider_type="remote::wolfram-alpha",
|
|
module="llama_stack.providers.remote.tool_runtime.wolfram_alpha",
|
|
config_class="llama_stack.providers.remote.tool_runtime.wolfram_alpha.config.WolframAlphaToolConfig",
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.wolfram_alpha.WolframAlphaToolProviderDataValidator",
|
|
description="Wolfram Alpha tool for computational knowledge and mathematical calculations.",
|
|
),
|
|
RemoteProviderSpec(
|
|
api=Api.tool_runtime,
|
|
adapter_type="model-context-protocol",
|
|
provider_type="remote::model-context-protocol",
|
|
module="llama_stack.providers.remote.tool_runtime.model_context_protocol",
|
|
config_class="llama_stack.providers.remote.tool_runtime.model_context_protocol.config.MCPProviderConfig",
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.model_context_protocol.config.MCPProviderDataValidator",
|
|
description="Model Context Protocol (MCP) tool for standardized tool calling and context management.",
|
|
),
|
|
]
|