Provider Integration Skill
When to use this skill
Use when:
- Configuring LLM providers
- Switching between providers
- Adding new provider support
- Testing with different models
- Managing API keys and credentials
Provider Configuration
# .parac/providers/providers.yaml
providers:
openai:
api_key: ${OPENAI_API_KEY}
default_model: gpt-4
models:
- gpt-4
- gpt-4-turbo
- gpt-3.5-turbo
anthropic:
api_key: ${ANTHROPIC_API_KEY}
default_model: claude-3-sonnet
models:
- claude-3-opus
- claude-3-sonnet
- claude-3-haiku
azure:
api_key: ${AZURE_API_KEY}
endpoint: ${AZURE_ENDPOINT}
api_version: \"2024-02-01\"
deployments:
gpt4: gpt-4-deployment-name
ollama:
base_url: http://localhost:11434
models:
- llama2
- codellama
- mistral
default_provider: openai
Agent Provider Assignment
# Specify provider per agent
name: openai-agent
model: gpt-4
provider: openai
# Or use different provider
name: claude-agent
model: claude-3-sonnet
provider: anthropic
# Use local model
name: local-agent
model: llama2
provider: ollama
Provider Implementation
# packages/paracle_providers/custom_provider.py
from paracle_providers.base import Provider
from typing import AsyncIterator
class CustomProvider(Provider):
\"\"\"Custom LLM provider implementation.\"\"\"
def __init__(self, api_key: str, base_url: str):
self.api_key = api_key
self.base_url = base_url
async def generate(
self,
prompt: str,
model: str,
temperature: float = 0.7,
**kwargs,
) -> str:
\"\"\"Generate completion.\"\"\"
response = await self._call_api(
prompt=prompt,
model=model,
temperature=temperature,
)
return response[\"text\"]
async def stream(
self,
prompt: str,
model: str,
**kwargs,
) -> AsyncIterator[str]:
\"\"\"Stream completion.\"\"\"
async for chunk in self._stream_api(prompt, model):
yield chunk[\"text\"]
Best Practices
- Use environment variables for API keys
- Test with multiple providers for compatibility
- Implement retries for API failures
- Monitor costs across providers
- Cache responses when appropriate
Resources
- Providers:
packages/paracle_providers/ - Configuration:
.parac/providers/providers.yaml
Converted and distributed by TomeVault — claim your Tome and manage your conversions.