Engines API Reference
Base Engine
BaseEngine
Abstract base class for all engines.
from promptkit.engines.base import BaseEngine
class BaseEngine(ABC):
def __init__(self, model: str = "default"):
self.model = model
@abstractmethod
def generate(self, prompt: str) -> str:
pass
async def generate_async(self, prompt: str) -> str:
return self.generate(prompt)
def get_model_info(self) -> dict[str, Any]:
return {"engine": self.__class__.__name__, "model": self.model}
def estimate_cost(self, input_tokens: int, output_tokens: int) -> Optional[float]:
return None
EngineError
Exception for engine errors.
from promptkit.engines.base import EngineError
raise EngineError("API request failed")
OpenAI Engine
OpenAIEngine
from promptkit import OpenAIEngine
engine = OpenAIEngine(
api_key="sk-...",
model="gpt-4o-mini",
temperature=0.7,
max_tokens=1000,
base_url="https://api.openai.com/v1"
)
Parameters
api_key: OpenAI API keymodel: Model name (default: “gpt-4o-mini”)temperature: Sampling temperature 0.0-2.0 (default: 0.7)max_tokens: Max tokens to generate (optional)base_url: API base URL (for compatible APIs)
Methods
generate(prompt: str) -> str
Generate a response synchronously.
generate_async(prompt: str) -> str
Generate a response asynchronously.
estimate_cost(input_tokens: int, output_tokens: int) -> Optional[float]
Estimate cost in USD.
cost = engine.estimate_cost(1000, 500)
Ollama Engine
OllamaEngine
from promptkit.engines import OllamaEngine
engine = OllamaEngine(
model="llama2",
base_url="http://localhost:11434",
temperature=0.7,
max_tokens=1000
)
Parameters
model: Ollama model name (default: “llama2”)base_url: Ollama API URL (default: “http://localhost:11434”)temperature: Sampling temperature 0.0-1.0 (default: 0.7)max_tokens: Max tokens to generate (optional)
Methods
Same as OpenAIEngine.
Creating Custom Engines
from promptkit.engines.base import BaseEngine, EngineError
class MyEngine(BaseEngine):
def __init__(self, api_key: str, model: str = "default"):
super().__init__(model)
self.api_key = api_key
def generate(self, prompt: str) -> str:
# Implement API call
return "response"