Update SambaNovaLLMService docstrings

This commit is contained in:
Mark Backman
2025-06-26 11:00:40 -04:00
parent c018eb2f0e
commit efbf574613

View File

@@ -4,6 +4,8 @@
# SPDX-License-Identifier: BSD 2-Clause License
#
"""SambaNova LLM service implementation using OpenAI-compatible interface."""
import json
from typing import Any, Dict, List, Optional
@@ -24,12 +26,14 @@ from pipecat.utils.watchdog_async_iterator import WatchdogAsyncIterator
class SambaNovaLLMService(OpenAILLMService): # type: ignore
"""A service for interacting with SambaNova using the OpenAI-compatible interface.
This service extends OpenAILLMService to connect to SambaNova's API endpoint while
maintaining full compatibility with OpenAI's interface and functionality.
Args:
api_key (str): The API key for accessing SambaNova API.
model (str, optional): The model identifier to use. Defaults to "Meta-Llama-3.3-70B-Instruct".
base_url (str, optional): The base URL for SambaNova API. Defaults to "https://api.sambanova.ai/v1".
api_key: The API key for accessing SambaNova API.
model: The model identifier to use. Defaults to "Llama-4-Maverick-17B-128E-Instruct".
base_url: The base URL for SambaNova API. Defaults to "https://api.sambanova.ai/v1".
**kwargs: Additional keyword arguments passed to OpenAILLMService.
"""
@@ -49,16 +53,31 @@ class SambaNovaLLMService(OpenAILLMService): # type: ignore
base_url: Optional[str] = None,
**kwargs: Dict[Any, Any],
) -> Any:
"""Create OpenAI-compatible client for SambaNova API endpoint."""
"""Create OpenAI-compatible client for SambaNova API endpoint.
Args:
api_key: API key for authentication. If None, uses instance default.
base_url: Base URL for the API endpoint. If None, uses instance default.
**kwargs: Additional keyword arguments for client configuration.
Returns:
Configured OpenAI-compatible client instance.
"""
logger.debug(f"Creating SambaNova client with API {base_url}")
return super().create_client(api_key, base_url, **kwargs)
async def get_chat_completions(
self, context: OpenAILLMContext, messages: List[ChatCompletionMessageParam]
) -> Any:
"""Get chat completions from SambaNova API endpoint."""
"""Get chat completions from SambaNova API endpoint.
Args:
context: OpenAI LLM context containing tools and configuration.
messages: List of chat completion message parameters.
Returns:
Chat completion response stream from SambaNova API.
"""
params = {
"model": self.model_name,
"stream": True,
@@ -79,8 +98,18 @@ class SambaNovaLLMService(OpenAILLMService): # type: ignore
@traced_llm # type: ignore
async def _process_context(self, context: OpenAILLMContext) -> AsyncStream[ChatCompletionChunk]:
"""Redefine this method until SambaNova API introduces indexing in tool calls."""
"""Process OpenAI LLM context and stream chat completion chunks.
This method handles the streaming response from SambaNova API, including
function call processing and text frame generation. It includes special
handling for SambaNova's API limitations with tool call indexing.
Args:
context: OpenAI LLM context containing conversation state and tools.
Returns:
Async stream of chat completion chunks.
"""
functions_list = []
arguments_list = []
tool_id_list = []