Merge pull request #2151 from pipecat-ai/mb/ollama-kwargs

OLLamaLLMService: Pass kwargs
This commit is contained in:
Mark Backman
2025-07-08 07:21:09 -07:00
committed by GitHub
2 changed files with 23 additions and 2 deletions

View File

@@ -16,6 +16,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
the value to False requires a custom processor before the `TTSService` to
aggregate LLM tokens.
- Added `kwargs` to the `OLLamaLLMService` to allow for configuration args to
be passed to Ollama.
- Added call hang-up error handling in `TwilioFrameSerializer`, which handles
the case where the user has hung up before the `TwilioFrameSerializer` hangs
up the call.

View File

@@ -6,6 +6,8 @@
"""OLLama LLM service implementation for Pipecat AI framework."""
from loguru import logger
from pipecat.services.openai.llm import OpenAILLMService
@@ -16,12 +18,28 @@ class OLLamaLLMService(OpenAILLMService):
providing a compatible interface for running large language models locally.
"""
def __init__(self, *, model: str = "llama2", base_url: str = "http://localhost:11434/v1"):
def __init__(
self, *, model: str = "llama2", base_url: str = "http://localhost:11434/v1", **kwargs
):
"""Initialize OLLama LLM service.
Args:
model: The OLLama model to use. Defaults to "llama2".
base_url: The base URL for the OLLama API endpoint.
Defaults to "http://localhost:11434/v1".
**kwargs: Additional keyword arguments passed to OpenAILLMService.
"""
super().__init__(model=model, base_url=base_url, api_key="ollama")
super().__init__(model=model, base_url=base_url, api_key="ollama", **kwargs)
def create_client(self, base_url=None, **kwargs):
"""Create OpenAI-compatible client for Ollama.
Args:
base_url: The base URL for the API. If None, uses instance base_url.
**kwargs: Additional keyword arguments passed to the parent create_client method.
Returns:
An OpenAI-compatible client configured for Ollama.
"""
logger.debug(f"Creating Ollama client with api {base_url}")
return super().create_client(base_url, **kwargs)