mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-03 19:57:35 +00:00
docs: adding supplementary markdown content to API specs
This commit is contained in:
parent
b6a5bccadf
commit
3225ce1a26
10 changed files with 2969 additions and 5115 deletions
|
@ -548,6 +548,84 @@ class Generator:
|
|||
|
||||
return extra_tags
|
||||
|
||||
def _get_api_group_for_operation(self, op) -> str | None:
|
||||
"""
|
||||
Determine the API group for an operation based on its route path.
|
||||
|
||||
Args:
|
||||
op: The endpoint operation
|
||||
|
||||
Returns:
|
||||
The API group name derived from the route, or None if unable to determine
|
||||
"""
|
||||
if not hasattr(op, 'webmethod') or not op.webmethod or not hasattr(op.webmethod, 'route'):
|
||||
return None
|
||||
|
||||
route = op.webmethod.route
|
||||
if not route or not route.startswith('/'):
|
||||
return None
|
||||
|
||||
# Extract API group from route path
|
||||
# Examples: /v1/agents/list -> agents-api
|
||||
# /v1/responses -> responses-api
|
||||
# /v1/models -> models-api
|
||||
path_parts = route.strip('/').split('/')
|
||||
|
||||
if len(path_parts) < 2:
|
||||
return None
|
||||
|
||||
# Skip version prefix (v1, v1alpha, v1beta, etc.)
|
||||
if path_parts[0].startswith('v1'):
|
||||
if len(path_parts) < 2:
|
||||
return None
|
||||
api_segment = path_parts[1]
|
||||
else:
|
||||
api_segment = path_parts[0]
|
||||
|
||||
# Convert to supplementary file naming convention
|
||||
# agents -> agents-api, responses -> responses-api, etc.
|
||||
return f"{api_segment}-api"
|
||||
|
||||
def _load_supplemental_content(self, api_group: str | None) -> str:
|
||||
"""
|
||||
Load supplemental content for an API group based on stability level.
|
||||
|
||||
Follows this resolution order:
|
||||
1. docs/supplementary/{stability}/{api_group}.md
|
||||
2. docs/supplementary/shared/{api_group}.md (fallback)
|
||||
3. Empty string if no files found
|
||||
|
||||
Args:
|
||||
api_group: The API group name (e.g., "agents-responses-api"), or None if no mapping exists
|
||||
|
||||
Returns:
|
||||
The supplemental content as markdown string, or empty string if not found
|
||||
"""
|
||||
if not api_group:
|
||||
return ""
|
||||
|
||||
base_path = Path(__file__).parent.parent.parent / "supplementary"
|
||||
|
||||
# Try stability-specific content first if stability filter is set
|
||||
if self.options.stability_filter:
|
||||
stability_path = base_path / self.options.stability_filter / f"{api_group}.md"
|
||||
if stability_path.exists():
|
||||
try:
|
||||
return stability_path.read_text(encoding="utf-8")
|
||||
except Exception as e:
|
||||
print(f"Warning: Could not read stability-specific supplemental content from {stability_path}: {e}")
|
||||
|
||||
# Fall back to shared content
|
||||
shared_path = base_path / "shared" / f"{api_group}.md"
|
||||
if shared_path.exists():
|
||||
try:
|
||||
return shared_path.read_text(encoding="utf-8")
|
||||
except Exception as e:
|
||||
print(f"Warning: Could not read shared supplemental content from {shared_path}: {e}")
|
||||
|
||||
# No supplemental content found
|
||||
return ""
|
||||
|
||||
def _build_operation(self, op: EndpointOperation) -> Operation:
|
||||
if op.defining_class.__name__ in [
|
||||
"SyntheticDataGeneration",
|
||||
|
@ -799,10 +877,14 @@ class Generator:
|
|||
else:
|
||||
callbacks = None
|
||||
|
||||
description = "\n".join(
|
||||
# Build base description from docstring
|
||||
base_description = "\n".join(
|
||||
filter(None, [doc_string.short_description, doc_string.long_description])
|
||||
)
|
||||
|
||||
# Individual endpoints get clean descriptions only
|
||||
description = base_description
|
||||
|
||||
return Operation(
|
||||
tags=[
|
||||
getattr(op.defining_class, "API_NAMESPACE", op.defining_class.__name__)
|
||||
|
@ -959,10 +1041,21 @@ class Generator:
|
|||
if hasattr(cls, "API_NAMESPACE") and cls.API_NAMESPACE != cls.__name__:
|
||||
continue
|
||||
|
||||
# Add supplemental content to tag pages
|
||||
api_group = f"{cls.__name__.lower()}-api"
|
||||
supplemental_content = self._load_supplemental_content(api_group)
|
||||
|
||||
tag_description = doc_string.long_description or ""
|
||||
if supplemental_content:
|
||||
if tag_description:
|
||||
tag_description = f"{tag_description}\n\n{supplemental_content}"
|
||||
else:
|
||||
tag_description = supplemental_content
|
||||
|
||||
operation_tags.append(
|
||||
Tag(
|
||||
name=cls.__name__,
|
||||
description=doc_string.long_description,
|
||||
description=tag_description,
|
||||
displayName=doc_string.short_description,
|
||||
)
|
||||
)
|
||||
|
|
1475
docs/static/deprecated-llama-stack-spec.html
vendored
1475
docs/static/deprecated-llama-stack-spec.html
vendored
File diff suppressed because it is too large
Load diff
1103
docs/static/deprecated-llama-stack-spec.yaml
vendored
1103
docs/static/deprecated-llama-stack-spec.yaml
vendored
File diff suppressed because it is too large
Load diff
1475
docs/static/experimental-llama-stack-spec.html
vendored
1475
docs/static/experimental-llama-stack-spec.html
vendored
File diff suppressed because it is too large
Load diff
1127
docs/static/experimental-llama-stack-spec.yaml
vendored
1127
docs/static/experimental-llama-stack-spec.yaml
vendored
File diff suppressed because it is too large
Load diff
1545
docs/static/llama-stack-spec.html
vendored
1545
docs/static/llama-stack-spec.html
vendored
File diff suppressed because it is too large
Load diff
1192
docs/static/llama-stack-spec.yaml
vendored
1192
docs/static/llama-stack-spec.yaml
vendored
File diff suppressed because it is too large
Load diff
9
docs/supplementary/deprecated/agents-api.md
Normal file
9
docs/supplementary/deprecated/agents-api.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
## Deprecated APIs
|
||||
|
||||
> **⚠️ DEPRECATED**: These APIs are provided for migration reference and will be removed in future versions. Not recommended for new projects.
|
||||
|
||||
### Migration Guidance
|
||||
|
||||
If you are using deprecated versions of the Agents or Responses APIs, please migrate to:
|
||||
|
||||
- **Responses API**: Use the stable v1 Responses API endpoints
|
21
docs/supplementary/experimental/agents-api.md
Normal file
21
docs/supplementary/experimental/agents-api.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
## Agents API (Experimental)
|
||||
|
||||
> **🧪 EXPERIMENTAL**: This API is in preview and may change based on user feedback. Great for exploring new capabilities and providing feedback to influence the final design.
|
||||
|
||||
Main functionalities provided by this API:
|
||||
|
||||
- Create agents with specific instructions and ability to use tools.
|
||||
- Interactions with agents are grouped into sessions ("threads"), and each interaction is called a "turn".
|
||||
- Agents can be provided with various tools (see the ToolGroups and ToolRuntime APIs for more details).
|
||||
- Agents can be provided with various shields (see the Safety API for more details).
|
||||
- Agents can also use Memory to retrieve information from knowledge bases. See the RAG Tool and Vector IO APIs for more details.
|
||||
|
||||
### 🧪 Feedback Welcome
|
||||
|
||||
This API is actively being developed. We welcome feedback on:
|
||||
- API design and usability
|
||||
- Performance characteristics
|
||||
- Missing features or capabilities
|
||||
- Integration patterns
|
||||
|
||||
**Provide Feedback**: [GitHub Discussions](https://github.com/llamastack/llama-stack/discussions) or [GitHub Issues](https://github.com/llamastack/llama-stack/issues)
|
40
docs/supplementary/stable/agents-api.md
Normal file
40
docs/supplementary/stable/agents-api.md
Normal file
|
@ -0,0 +1,40 @@
|
|||
## Responses API
|
||||
|
||||
The Responses API provides OpenAI-compatible functionality with enhanced capabilities for dynamic, stateful interactions.
|
||||
|
||||
> **✅ STABLE**: This API is production-ready with backward compatibility guarantees. Recommended for production applications.
|
||||
|
||||
### ✅ Supported Tools
|
||||
|
||||
The Responses API supports the following tool types:
|
||||
|
||||
- **`web_search`**: Search the web for current information and real-time data
|
||||
- **`file_search`**: Search through uploaded files and vector stores
|
||||
- Supports dynamic `vector_store_ids` per call
|
||||
- Compatible with OpenAI file search patterns
|
||||
- **`function`**: Call custom functions with JSON schema validation
|
||||
- **`mcp_tool`**: Model Context Protocol integration
|
||||
|
||||
### ✅ Supported Fields & Features
|
||||
|
||||
**Core Capabilities:**
|
||||
- **Dynamic Configuration**: Switch models, vector stores, and tools per request without pre-configuration
|
||||
- **Conversation Branching**: Use `previous_response_id` to branch conversations and explore different paths
|
||||
- **Rich Annotations**: Automatic file citations, URL citations, and container file citations
|
||||
- **Status Tracking**: Monitor tool call execution status and handle failures gracefully
|
||||
|
||||
### 🚧 Work in Progress
|
||||
|
||||
- Full real-time response streaming support
|
||||
- `tool_choice` parameter
|
||||
- `max_tool_calls` parameter
|
||||
- Built-in tools (code interpreter, containers API)
|
||||
- Safety & guardrails
|
||||
- `reasoning` capabilities
|
||||
- `service_tier`
|
||||
- `logprobs`
|
||||
- `max_output_tokens`
|
||||
- `metadata` handling
|
||||
- `instructions`
|
||||
- `incomplete_details`
|
||||
- `background`
|
Loading…
Add table
Add a link
Reference in a new issue