Quick Reference
Common code snippets and patterns for quick access.
Installation
bash
npm install modelpilotInitialization
javascript
import ModelPilot from 'modelpilot';
const client = new ModelPilot({
apiKey: process.env.MODELPILOT_API_KEY,
routerId: process.env.MODELPILOT_ROUTER_ID,
});Common Patterns
Basic Chat Completion
javascript
const completion = await client.chat.completions.create({
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' }
],
});
console.log(completion.choices[0].message.content);Streaming Response
javascript
const stream = await client.chat.completions.create({
messages: [{ role: 'user', content: 'Tell me a story' }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || '';
process.stdout.write(content);
}With Parameters
javascript
const completion = await client.chat.completions.create({
messages: [{ role: 'user', content: 'Explain quantum computing' }],
temperature: 0.7,
max_tokens: 500,
top_p: 0.9,
});Error Handling
javascript
try {
const completion = await client.chat.completions.create({
messages: [{ role: 'user', content: 'Hello!' }],
});
} catch (error) {
if (error.status === 429) {
console.error('Rate limit exceeded');
} else if (error.status === 401) {
console.error('Authentication failed');
} else {
console.error('Error:', error.message);
}
}Response Structure
json
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"_metadata": {
"modelUsed": "openai:gpt-5",
"selectionScore": 0.94,
"cost": 0.00026,
"latency": 342
}
}Environment Variables
bash
MODELPILOT_API_KEY=mp_your_api_key_here
MODELPILOT_ROUTER_ID=your_router_id_hereCommon Parameters
messages
RequiredArray of message objects with role and content
temperature
Optional0-2, controls randomness (default: 1.0)
max_tokens
OptionalMaximum tokens to generate
stream
OptionalEnable streaming responses (default: false)
top_p
Optional0-1, nucleus sampling (default: 1.0)
presence_penalty
Optional-2 to 2, penalize new topics (default: 0)