distill-pipeline / src /providers /provider.mjs
htaf's picture
added mock of llms and full pipeline test
936c57a
// src/providers/provider.mjs
import { OllamaProvider } from "./ollama_provider.mjs";
import { OpenAIProvider } from "./openai_provider.mjs";
import { HttpProvider } from "./http_provider.mjs";
import { MockProvider } from "./mock_provider.mjs";
/**
* Load provider for a specific pipeline stage:
* stage = 'generator' | 'verifier' | 'reward'
*
* Uses env vars:
* GENERATOR_PROVIDER, VERIFIER_PROVIDER, REWARD_PROVIDER
* falling back to PROVIDER_TYPE.
*/
export function loadProviderFor(stage) {
const key = `${stage.toUpperCase()}_PROVIDER`;
const type = process.env[key] || process.env.PROVIDER_TYPE || "ollama";
switch (type) {
case "mock":
return new MockProvider(stage);
case "ollama":
return new OllamaProvider(stage);
case "openai":
return new OpenAIProvider(stage);
case "http":
return new HttpProvider(stage);
default:
throw new Error(`Unknown provider type "${type}" for stage "${stage}".`);
}
}
/**
* Backwards compatibility for older modules/tests.
*/
export function loadProvider() {
const type = process.env.PROVIDER_TYPE || "ollama";
switch (type) {
case "ollama":
return new OllamaProvider("generator");
case "openai":
return new OpenAIProvider("generator");
case "http":
return new HttpProvider("generator");
default:
throw new Error(`Unknown provider type: ${type}`);
}
}
// DEVELOPMENT TOOL
export function debugLoad() {
const p = loadProvider();
console.log("Loaded provider:", p);
console.log("typeof generate:", typeof p.generate);
}