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
|
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:
|
def _build_operation(self, op: EndpointOperation) -> Operation:
|
||||||
if op.defining_class.__name__ in [
|
if op.defining_class.__name__ in [
|
||||||
"SyntheticDataGeneration",
|
"SyntheticDataGeneration",
|
||||||
|
@ -799,10 +877,14 @@ class Generator:
|
||||||
else:
|
else:
|
||||||
callbacks = None
|
callbacks = None
|
||||||
|
|
||||||
description = "\n".join(
|
# Build base description from docstring
|
||||||
|
base_description = "\n".join(
|
||||||
filter(None, [doc_string.short_description, doc_string.long_description])
|
filter(None, [doc_string.short_description, doc_string.long_description])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Individual endpoints get clean descriptions only
|
||||||
|
description = base_description
|
||||||
|
|
||||||
return Operation(
|
return Operation(
|
||||||
tags=[
|
tags=[
|
||||||
getattr(op.defining_class, "API_NAMESPACE", op.defining_class.__name__)
|
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__:
|
if hasattr(cls, "API_NAMESPACE") and cls.API_NAMESPACE != cls.__name__:
|
||||||
continue
|
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(
|
operation_tags.append(
|
||||||
Tag(
|
Tag(
|
||||||
name=cls.__name__,
|
name=cls.__name__,
|
||||||
description=doc_string.long_description,
|
description=tag_description,
|
||||||
displayName=doc_string.short_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