56 lines
4.1 KiB
JavaScript
56 lines
4.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.createClient = void 0;
|
|
const openai_1 = require("openai");
|
|
const index_1 = require("./index");
|
|
const config_1 = require("./config");
|
|
const createClient = (options) => {
|
|
const config = (0, config_1.loadConfig)(options);
|
|
let apiKey = options.api_key;
|
|
if (!config) {
|
|
index_1.logger.error("Config not found in $HOME/.osr/config.json. " +
|
|
"Optionally, export OSR_CONFIG with the path to the configuration file, ");
|
|
return undefined;
|
|
}
|
|
const router = options.router ?? "openrouter";
|
|
let baseURL = options.baseURL;
|
|
if (!options.baseURL) {
|
|
switch (router) {
|
|
case "openrouter":
|
|
apiKey = apiKey || config?.openrouter?.key;
|
|
if (!options.baseURL) {
|
|
baseURL = "https://openrouter.ai/api/v1";
|
|
}
|
|
break;
|
|
case "openai":
|
|
apiKey = apiKey || config?.openai?.key;
|
|
break;
|
|
case "deepseek":
|
|
apiKey = apiKey || config?.deepseek?.key;
|
|
if (!options.baseURL) {
|
|
baseURL = "https://api.deepseek.com";
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
if (!apiKey) {
|
|
index_1.logger.error(`No ${router} key found. Please provide an "api_key", set it in the config, or pass it via JSON config.`);
|
|
return undefined;
|
|
}
|
|
if (router === "openrouter" && !options.model) {
|
|
options.model = "anthropic/claude-3.5-sonnet";
|
|
}
|
|
if (router === "openai" && !options.model) {
|
|
options.model = "gpt-4o";
|
|
}
|
|
if (router === "deepseek" && !options.model) {
|
|
options.model = "deepseek-chat";
|
|
}
|
|
index_1.logger.info(`Creating client with ${router} router, model ${options.model}, and API key ${apiKey} at ${baseURL}`);
|
|
return new openai_1.OpenAI({
|
|
apiKey,
|
|
baseURL,
|
|
});
|
|
};
|
|
exports.createClient = createClient;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBK0I7QUFDL0IsbUNBQWdDO0FBQ2hDLHFDQUFxQztBQUc5QixNQUFNLFlBQVksR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFBLG1CQUFVLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDbEMsSUFBSSxNQUFNLEdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQTtJQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixjQUFNLENBQUMsS0FBSyxDQUNSLDhDQUE4QztZQUM5Qyx5RUFBeUUsQ0FDNUUsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFBO0lBQ3BCLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQTtJQUM3QyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO0lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNiLEtBQUssWUFBWTtnQkFDYixNQUFNLEdBQUcsTUFBTSxJQUFJLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNuQixPQUFPLEdBQUcsOEJBQThCLENBQUE7Z0JBQzVDLENBQUM7Z0JBQ0QsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxNQUFNLEdBQUcsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1YsS0FBSyxVQUFVO2dCQUNYLE1BQU0sR0FBRyxNQUFNLElBQUksTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ25CLE9BQU8sR0FBRywwQkFBMEIsQ0FBQTtnQkFDeEMsQ0FBQztnQkFDRCxNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixjQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sTUFBTSw0RkFBNEYsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLE1BQU0sS0FBSyxZQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUMsT0FBTyxDQUFDLEtBQUssR0FBRyw2QkFBNkIsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsSUFBSSxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFBO0lBQzVCLENBQUM7SUFFRCxJQUFJLE1BQU0sS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUMsT0FBTyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUE7SUFDbkMsQ0FBQztJQUVELGNBQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLE1BQU0sa0JBQWtCLE9BQU8sQ0FBQyxLQUFLLGlCQUFpQixNQUFNLE9BQU8sT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNqSCxPQUFPLElBQUksZUFBTSxDQUFDO1FBQ2QsTUFBTTtRQUNOLE9BQU87S0FDVixDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUF0RFksUUFBQSxZQUFZLGdCQXNEeEIifQ==
|