nmlr-sdk
v1.0.1
Published
Provider-agnostic AI reasoning orchestration layer
Maintainers
Readme
NMLR SDK (Node.js/TypeScript)
Overview
NMLR SDK (Node.js/TypeScript) is the JavaScript/TypeScript implementation of the reasoning orchestration layer. It mirrors the functionality of the Python SDK and provides:
- Candidate Generation: Generate multiple reasoning paths
- Optional Robustness Scoring: Evaluate candidates with counterpoints
- Synthesis: Merge top candidates into final answer
This SDK is provider-agnostic - users provide their own AI API keys.
Installation
npm install nmlr-sdkQuick Start
import { NMLREngine, AnthropicAdapter } from 'nmlr-sdk';
// Initialize with your API key
const adapter = new AnthropicAdapter(
'sk-ant-your-key-here',
'claude-3-sonnet-20240229'
);
// Create NMLR engine
const nmlr = new NMLREngine(adapter, { nPaths: 3 });
// Ask a question
const result = await nmlr.ask('What are the key considerations for distributed systems?');
// Access results
console.log(result.answer);
console.log(result.confidence);
console.log(result.scores);API Reference
Core Classes
| Class | Description |
|-------|-------------|
| LLMAdapter | Abstract base class for LLM providers |
| MockAdapter | Mock adapter for testing |
| AnthropicAdapter | Adapter for Anthropic Claude |
| NMLREngine | Core orchestration engine |
NMLREngine Methods
class NMLREngine {
constructor(adapter: LLMAdapter, config?: NMLREngineConfig);
// Main entry point
ask(query: string): Promise<NMLRResult>;
// Generate candidate paths
generateCandidates(query: string): Promise<Candidate[]>;
// Evaluate candidate robustness
robustnessScore(candidate: Candidate, query: string): Promise<CandidateScore>;
// Merge top candidates
synthesize(candidates: Candidate[], query: string): Promise<string>;
// Extensibility
setNPaths(nPaths: number): void;
addScoringAxis(name: string, description: string): void;
registerCustomEvaluator(fn: Function): void;
}Examples
See examples/basicUsage.ts for complete examples.
With Environment Variable
export ANTHROPIC_API_KEY="sk-ant-..."
npx ts-node examples/basicUsage.tsUsing Mock Adapter
import { NMLREngine, MockAdapter } from 'nmlr-sdk';
const adapter = new MockAdapter();
const nmlr = new NMLREngine(adapter);
const result = await nmlr.ask('Test question');
console.log(result.answer);Requirements
- Node.js 18+
- TypeScript 5.0+ (for development)
License
MIT License - See LICENSE for details.
Disclaimer
This SDK is a reasoning orchestration layer that works with user-provided API keys. It does not host or supply AI access - users must provide their own keys from their chosen LLM provider.
