keirolabs
v0.1.4
Published
Official JavaScript SDK for KeiroLabs API - Search, Research, and Web Crawling
Downloads
32
Maintainers
Readme
KeiroLabs JavaScript SDK
Installation
npm install keirolabsRequirements: Node.js >= 14.0.0
Quick Start
const { Keiro } = require('keirolabs');
const client = new Keiro("your-api-key");
async function main() {
// Search
const result = await client.search("machine learning trends 2024");
console.log(result.data);
console.log(`Credits remaining: ${result.creditsRemaining}`);
}
main();Get your API key: https://www.keirolabs.cloud/
TypeScript Support
Full TypeScript support with type definitions included:
import { Keiro, SearchResult, KeiroAuthError } from 'keirolabs';
const client = new Keiro(process.env.KEIRO_API_KEY!);
const result: SearchResult = await client.search("TypeScript best practices");API Methods
| Method | Description | Credits |
|--------|-------------|---------|
| search(query) | Neural search | 1 |
| searchPro(query) | Advanced search | Variable |
| searchEngine(query) | Search engine | Variable |
| answer(query) | AI-powered answers | 5 |
| research(query) | Topic research | Variable |
| researchPro(query) | Advanced research | Variable |
| webCrawler(url) | Extract web data | Variable |
| healthCheck() | Server status | Free |
| validateApiKey() | Key validation | Free |
Usage Examples
Basic Search
const result = await client.search("Python best practices");
console.log(`Found ${result.data.length} results`);
console.log(`Credits: ${result.creditsRemaining}`);
result.data.forEach(item => {
console.log(item.title);
console.log(item.url);
});Generate Answers
const answer = await client.answer("What is reinforcement learning?");
console.log(answer.data);
console.log(`Credits: ${answer.creditsRemaining}`);Research Topics
const research = await client.research("climate change solutions");
console.log(research.data);Web Crawler
const data = await client.webCrawler("https://example.com/article");
console.log(data.data.content);
console.log(data.data.title);Error Handling
const {
Keiro,
KeiroAuthError,
KeiroRateLimitError,
KeiroValidationError,
KeiroConnectionError
} = require('keirolabs');
const client = new Keiro(process.env.KEIRO_API_KEY);
try {
const result = await client.search("query");
} catch (error) {
if (error instanceof KeiroAuthError) {
console.log("Invalid API key");
} else if (error instanceof KeiroRateLimitError) {
console.log("Out of credits");
} else if (error instanceof KeiroValidationError) {
console.log(`Invalid parameters: ${error.message}`);
} else if (error instanceof KeiroConnectionError) {
console.log("Network error");
} else {
console.log(`Error: ${error.message}`);
}
}Exception Types
| Exception | Description |
|-----------|-------------|
| KeiroError | Base exception class |
| KeiroAuthError | Invalid API key |
| KeiroRateLimitError | Out of credits |
| KeiroValidationError | Invalid parameters |
| KeiroConnectionError | Network issues |
| KeiroAPIError | General API errors |
Configuration
Simple Initialization
const client = new Keiro("your-api-key");With Options
const client = new Keiro({
apiKey: "your-api-key",
timeout: 60000, // 60 seconds
baseUrl: "http://localhost:8000/api" // For local development
});Environment Variables (Recommended)
require('dotenv').config();
const client = new Keiro(process.env.KEIRO_API_KEY);Create .env file:
KEIRO_API_KEY=your-api-key-hereDynamic Base URL
const client = new Keiro(process.env.KEIRO_API_KEY);
client.setBaseUrl("https://custom-api.example.com/api");Advanced Examples
Batch Processing
const queries = ["Python", "JavaScript", "TypeScript"];
const results = await Promise.all(
queries.map(query => client.search(query))
);
results.forEach((result, index) => {
console.log(`Query: ${queries[index]}`);
console.log(`Results: ${result.data.length}`);
console.log(`Credits: ${result.creditsRemaining}\n`);
});Error Handling with Retry
async function searchWithRetry(query, maxRetries = 3) {
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
return await client.search(query);
} catch (error) {
if (error instanceof KeiroRateLimitError) {
throw error; // Don't retry on rate limit
}
if (attempt === maxRetries) throw error;
console.log(`Attempt ${attempt} failed, retrying...`);
await new Promise(r => setTimeout(r, 1000 * attempt));
}
}
}API Types
interface SearchResult {
data: any;
creditsRemaining: number;
}
interface HealthCheckResult {
status: string;
environment: string;
database?: string;
service?: string;
}
interface ValidateApiKeyResult {
valid: boolean;
message: string;
server_status: string;
environment: string;
}Links
| Resource | URL | |----------|-----| | Homepage | https://www.keirolabs.cloud/ | | npm | https://www.npmjs.com/package/keirolabs | | Python SDK | https://pypi.org/project/keirolabs | | Support | [email protected] |
License
MIT License - see LICENSE file for details.
