mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-06-28 02:53:30 +00:00
This adds a `builtin::document_conversion` tool for converting documents when used with file_search that uses meta-llama/synthetic-data-kit. I also have another local implementation that uses Docling, but need to debug some segfault issues I'm hitting locally with that so pushing this first as a simpler reference implementation. Long-term I think we'll want a remote implemention here as well - like perhaps docling-serve or unstructured.io - but need to look more into that. This passes the existing `tests/verifications/openai_api/test_responses.py` but doesn't yet add any new tests for file types besides text and pdf. Signed-off-by: Ben Browning <bbrownin@redhat.com>
95 lines
4.1 KiB
Python
95 lines
4.1 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 (
|
|
AdapterSpec,
|
|
Api,
|
|
InlineProviderSpec,
|
|
ProviderSpec,
|
|
remote_provider_spec,
|
|
)
|
|
|
|
|
|
def available_providers() -> list[ProviderSpec]:
|
|
return [
|
|
InlineProviderSpec(
|
|
api=Api.tool_runtime,
|
|
provider_type="inline::rag-runtime",
|
|
pip_packages=[
|
|
"chardet",
|
|
"pypdf",
|
|
"tqdm",
|
|
"numpy",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"nltk",
|
|
"sentencepiece",
|
|
"transformers",
|
|
],
|
|
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],
|
|
),
|
|
InlineProviderSpec(
|
|
api=Api.tool_runtime,
|
|
provider_type="inline::synthetic-data-kit",
|
|
pip_packages=["synthetic-data-kit"],
|
|
module="llama_stack.providers.inline.tool_runtime.synthetic-data-kit",
|
|
config_class="llama_stack.providers.inline.tool_runtime.synthetic-data-kit.config.SyntheticDataKitToolRuntimeConfig",
|
|
api_dependencies=[Api.files],
|
|
),
|
|
remote_provider_spec(
|
|
api=Api.tool_runtime,
|
|
adapter=AdapterSpec(
|
|
adapter_type="brave-search",
|
|
module="llama_stack.providers.remote.tool_runtime.brave_search",
|
|
config_class="llama_stack.providers.remote.tool_runtime.brave_search.config.BraveSearchToolConfig",
|
|
pip_packages=["requests"],
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.brave_search.BraveSearchToolProviderDataValidator",
|
|
),
|
|
),
|
|
remote_provider_spec(
|
|
api=Api.tool_runtime,
|
|
adapter=AdapterSpec(
|
|
adapter_type="bing-search",
|
|
module="llama_stack.providers.remote.tool_runtime.bing_search",
|
|
config_class="llama_stack.providers.remote.tool_runtime.bing_search.config.BingSearchToolConfig",
|
|
pip_packages=["requests"],
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.bing_search.BingSearchToolProviderDataValidator",
|
|
),
|
|
),
|
|
remote_provider_spec(
|
|
api=Api.tool_runtime,
|
|
adapter=AdapterSpec(
|
|
adapter_type="tavily-search",
|
|
module="llama_stack.providers.remote.tool_runtime.tavily_search",
|
|
config_class="llama_stack.providers.remote.tool_runtime.tavily_search.config.TavilySearchToolConfig",
|
|
pip_packages=["requests"],
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.tavily_search.TavilySearchToolProviderDataValidator",
|
|
),
|
|
),
|
|
remote_provider_spec(
|
|
api=Api.tool_runtime,
|
|
adapter=AdapterSpec(
|
|
adapter_type="wolfram-alpha",
|
|
module="llama_stack.providers.remote.tool_runtime.wolfram_alpha",
|
|
config_class="llama_stack.providers.remote.tool_runtime.wolfram_alpha.config.WolframAlphaToolConfig",
|
|
pip_packages=["requests"],
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.wolfram_alpha.WolframAlphaToolProviderDataValidator",
|
|
),
|
|
),
|
|
remote_provider_spec(
|
|
api=Api.tool_runtime,
|
|
adapter=AdapterSpec(
|
|
adapter_type="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",
|
|
pip_packages=["mcp"],
|
|
provider_data_validator="llama_stack.providers.remote.tool_runtime.model_context_protocol.config.MCPProviderDataValidator",
|
|
),
|
|
),
|
|
]
|