Update OpenPipeLLMService docstrings
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user