Update OpenPipeLLMService docstrings

This commit is contained in:
Mark Backman
2025-06-26 10:53:05 -04:00
parent 8b8a37ae7c
commit 769f8c8f34

View File

@@ -4,6 +4,12 @@
# SPDX-License-Identifier: BSD 2-Clause License
#
"""OpenPipe LLM service implementation for Pipecat.
This module provides an OpenPipe-specific implementation of the OpenAI LLM service,
enabling integration with OpenPipe's fine-tuning and monitoring capabilities.
"""
from typing import Dict, List, Optional
from loguru import logger
@@ -22,6 +28,22 @@ except ModuleNotFoundError as e:
class OpenPipeLLMService(OpenAILLMService):
"""OpenPipe-powered Large Language Model service.
Extends OpenAI's LLM service to integrate with OpenPipe's fine-tuning and
monitoring platform. Provides enhanced request logging and tagging capabilities
for model training and evaluation.
Args:
model: The model name to use. Defaults to "gpt-4.1".
api_key: OpenAI API key for authentication. If None, reads from environment.
base_url: Custom OpenAI API endpoint URL. Uses default if None.
openpipe_api_key: OpenPipe API key for enhanced features. If None, reads from environment.
openpipe_base_url: OpenPipe API endpoint URL. Defaults to "https://app.openpipe.ai/api/v1".
tags: Optional dictionary of tags to apply to all requests for tracking.
**kwargs: Additional arguments passed to parent OpenAILLMService.
"""
def __init__(
self,
*,
@@ -44,6 +66,16 @@ class OpenPipeLLMService(OpenAILLMService):
self._tags = tags
def create_client(self, api_key=None, base_url=None, **kwargs):
"""Create an OpenPipe client instance.
Args:
api_key: OpenAI API key for authentication.
base_url: OpenAI API base URL.
**kwargs: Additional arguments including openpipe_api_key and openpipe_base_url.
Returns:
Configured OpenPipe AsyncOpenAI client instance.
"""
openpipe_api_key = kwargs.get("openpipe_api_key") or ""
openpipe_base_url = kwargs.get("openpipe_base_url") or ""
client = OpenPipeAI(
@@ -56,6 +88,15 @@ class OpenPipeLLMService(OpenAILLMService):
async def get_chat_completions(
self, context: OpenAILLMContext, messages: List[ChatCompletionMessageParam]
) -> AsyncStream[ChatCompletionChunk]:
"""Generate streaming chat completions with OpenPipe logging.
Args:
context: The OpenAI LLM context containing conversation state.
messages: List of chat completion message parameters.
Returns:
Async stream of chat completion chunks.
"""
chunks = await self._client.chat.completions.create(
model=self.model_name,
stream=True,