@victor-software-house/pi-openai-proxy 4.0.6 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +18 -24
- package/extensions/proxy.ts +7 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1283,31 +1283,25 @@ async function piStream(model, context, request, options) {
|
|
|
1283
1283
|
}
|
|
1284
1284
|
//#endregion
|
|
1285
1285
|
//#region src/server/routes.ts
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
*/
|
|
1289
|
-
function buildExposureConfig(config) {
|
|
1286
|
+
function fileConfigReader() {
|
|
1287
|
+
const file = loadConfigFromFile();
|
|
1290
1288
|
return {
|
|
1291
|
-
publicModelIdMode:
|
|
1292
|
-
modelExposureMode:
|
|
1293
|
-
scopedProviders:
|
|
1294
|
-
customModels:
|
|
1295
|
-
providerPrefixes:
|
|
1289
|
+
publicModelIdMode: file.publicModelIdMode,
|
|
1290
|
+
modelExposureMode: file.modelExposureMode,
|
|
1291
|
+
scopedProviders: file.scopedProviders,
|
|
1292
|
+
customModels: file.customModels,
|
|
1293
|
+
providerPrefixes: file.providerPrefixes
|
|
1296
1294
|
};
|
|
1297
1295
|
}
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
if (!outcome.ok) throw new Error(`Model exposure configuration error: ${outcome.message}`);
|
|
1305
|
-
return outcome;
|
|
1306
|
-
}
|
|
1307
|
-
function createRoutes(config) {
|
|
1296
|
+
function createRoutes(config, configReader = fileConfigReader) {
|
|
1297
|
+
function getExposure() {
|
|
1298
|
+
const outcome = computeModelExposure(getAvailableModels(), getAllModels(), configReader());
|
|
1299
|
+
if (!outcome.ok) throw new Error(`Model exposure configuration error: ${outcome.message}`);
|
|
1300
|
+
return outcome;
|
|
1301
|
+
}
|
|
1308
1302
|
const routes = new Hono();
|
|
1309
1303
|
routes.get("/v1/models", (c) => {
|
|
1310
|
-
const exposure = getExposure(
|
|
1304
|
+
const exposure = getExposure();
|
|
1311
1305
|
return c.json(buildModelList(exposure.models));
|
|
1312
1306
|
});
|
|
1313
1307
|
routes.get("/v1/models/*", (c) => {
|
|
@@ -1316,7 +1310,7 @@ function createRoutes(config) {
|
|
|
1316
1310
|
const modelIdEncoded = rawPath.slice(11);
|
|
1317
1311
|
if (modelIdEncoded.length === 0) return c.json(modelNotFound(""), 404);
|
|
1318
1312
|
const modelId = decodeURIComponent(modelIdEncoded);
|
|
1319
|
-
const resolved = resolveExposedModel(getExposure(
|
|
1313
|
+
const resolved = resolveExposedModel(getExposure(), modelId);
|
|
1320
1314
|
if (resolved === void 0) return c.json(modelNotFound(modelId), 404);
|
|
1321
1315
|
return c.json(toOpenAIModel(resolved));
|
|
1322
1316
|
});
|
|
@@ -1336,7 +1330,7 @@ function createRoutes(config) {
|
|
|
1336
1330
|
return c.json(invalidRequest(validation.message, validation.param ?? void 0), 400);
|
|
1337
1331
|
}
|
|
1338
1332
|
const request = validation.data;
|
|
1339
|
-
const resolved = resolveExposedModel(getExposure(
|
|
1333
|
+
const resolved = resolveExposedModel(getExposure(), request.model);
|
|
1340
1334
|
if (resolved === void 0) return c.json(modelNotFound(request.model), 404);
|
|
1341
1335
|
const model = resolved.model;
|
|
1342
1336
|
const canonicalModelId = resolved.canonicalId;
|
|
@@ -1422,13 +1416,13 @@ function createRoutes(config) {
|
|
|
1422
1416
|
}
|
|
1423
1417
|
//#endregion
|
|
1424
1418
|
//#region src/server/app.ts
|
|
1425
|
-
function createApp(config) {
|
|
1419
|
+
function createApp(config, configReader) {
|
|
1426
1420
|
const app = new Hono();
|
|
1427
1421
|
app.use("*", requestIdMiddleware());
|
|
1428
1422
|
app.use("*", disconnectMiddleware());
|
|
1429
1423
|
app.use("*", bodySizeLimitMiddleware(config));
|
|
1430
1424
|
app.use("/v1/*", proxyAuthMiddleware(config));
|
|
1431
|
-
app.route("/", createRoutes(config));
|
|
1425
|
+
app.route("/", createRoutes(config, configReader));
|
|
1432
1426
|
return app;
|
|
1433
1427
|
}
|
|
1434
1428
|
//#endregion
|
package/extensions/proxy.ts
CHANGED
|
@@ -134,6 +134,7 @@ export default function proxyExtension(pi: ExtensionAPI): void {
|
|
|
134
134
|
const SUBCOMMANDS = [
|
|
135
135
|
"start",
|
|
136
136
|
"stop",
|
|
137
|
+
"restart",
|
|
137
138
|
"status",
|
|
138
139
|
"verify",
|
|
139
140
|
"config",
|
|
@@ -142,7 +143,7 @@ export default function proxyExtension(pi: ExtensionAPI): void {
|
|
|
142
143
|
"reset",
|
|
143
144
|
"help",
|
|
144
145
|
];
|
|
145
|
-
const USAGE = "/proxy [start|stop|status|verify|config|show|path|reset|help]";
|
|
146
|
+
const USAGE = "/proxy [start|stop|restart|status|verify|config|show|path|reset|help]";
|
|
146
147
|
|
|
147
148
|
pi.registerCommand("proxy", {
|
|
148
149
|
description: "Manage the OpenAI-compatible proxy",
|
|
@@ -161,6 +162,11 @@ export default function proxyExtension(pi: ExtensionAPI): void {
|
|
|
161
162
|
case "stop":
|
|
162
163
|
await stopProxy(ctx);
|
|
163
164
|
return;
|
|
165
|
+
case "restart":
|
|
166
|
+
await stopProxy(ctx);
|
|
167
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
168
|
+
await startProxy(ctx);
|
|
169
|
+
return;
|
|
164
170
|
case "status":
|
|
165
171
|
await showStatus(ctx);
|
|
166
172
|
return;
|
package/package.json
CHANGED