mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-12 02:02:13 +03:00
feat(providers): add LLMGateway and LLM Kiwi registries
This commit is contained in:
14
open-sse/config/providers/registry/llm-kiwi/index.ts
Normal file
14
open-sse/config/providers/registry/llm-kiwi/index.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import type { RegistryEntry } from "../../shared.ts";
|
||||
import { buildOpenAiCompatibleRegistryEntry } from "../../shared.ts";
|
||||
|
||||
export const llmKiwiProvider: RegistryEntry = buildOpenAiCompatibleRegistryEntry({
|
||||
id: "llm-kiwi",
|
||||
alias: "llmkiwi",
|
||||
baseUrl: "https://api.llm.kiwi/v1/chat/completions",
|
||||
modelsUrl: "https://api.llm.kiwi/v1/models",
|
||||
models: [
|
||||
{ id: "auto", name: "Auto" },
|
||||
{ id: "hrLLM", name: "hrLLM" },
|
||||
],
|
||||
passthroughModels: true,
|
||||
});
|
||||
11
open-sse/config/providers/registry/llmgateway/index.ts
Normal file
11
open-sse/config/providers/registry/llmgateway/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import type { RegistryEntry } from "../../shared.ts";
|
||||
import { buildOpenAiCompatibleRegistryEntry } from "../../shared.ts";
|
||||
|
||||
export const llmgatewayProvider: RegistryEntry = buildOpenAiCompatibleRegistryEntry({
|
||||
id: "llmgateway",
|
||||
alias: "llmgateway",
|
||||
baseUrl: "https://api.llmgateway.io/v1/chat/completions",
|
||||
modelsUrl: "https://api.llmgateway.io/v1/models",
|
||||
models: [],
|
||||
passthroughModels: true,
|
||||
});
|
||||
34
tests/unit/free-tier-providers-wave1-c.test.ts
Normal file
34
tests/unit/free-tier-providers-wave1-c.test.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
|
||||
import { llmKiwiProvider } from "../../open-sse/config/providers/registry/llm-kiwi/index.ts";
|
||||
import { llmgatewayProvider } from "../../open-sse/config/providers/registry/llmgateway/index.ts";
|
||||
|
||||
test("llmgateway uses a dynamic OpenAI-compatible Bearer API", () => {
|
||||
assert.equal(llmgatewayProvider.id, "llmgateway");
|
||||
assert.equal(llmgatewayProvider.alias, "llmgateway");
|
||||
assert.equal(llmgatewayProvider.format, "openai");
|
||||
assert.equal(llmgatewayProvider.executor, "default");
|
||||
assert.equal(llmgatewayProvider.authType, "apikey");
|
||||
assert.equal(llmgatewayProvider.authHeader, "bearer");
|
||||
assert.equal(llmgatewayProvider.baseUrl, "https://api.llmgateway.io/v1/chat/completions");
|
||||
assert.equal(llmgatewayProvider.modelsUrl, "https://api.llmgateway.io/v1/models");
|
||||
assert.equal(llmgatewayProvider.passthroughModels, true);
|
||||
assert.deepEqual(llmgatewayProvider.models, []);
|
||||
});
|
||||
|
||||
test("llm-kiwi seeds only its confirmed free models while retaining live discovery", () => {
|
||||
assert.equal(llmKiwiProvider.id, "llm-kiwi");
|
||||
assert.equal(llmKiwiProvider.alias, "llmkiwi");
|
||||
assert.equal(llmKiwiProvider.format, "openai");
|
||||
assert.equal(llmKiwiProvider.executor, "default");
|
||||
assert.equal(llmKiwiProvider.authType, "apikey");
|
||||
assert.equal(llmKiwiProvider.authHeader, "bearer");
|
||||
assert.equal(llmKiwiProvider.baseUrl, "https://api.llm.kiwi/v1/chat/completions");
|
||||
assert.equal(llmKiwiProvider.modelsUrl, "https://api.llm.kiwi/v1/models");
|
||||
assert.equal(llmKiwiProvider.passthroughModels, true);
|
||||
assert.deepEqual(llmKiwiProvider.models, [
|
||||
{ id: "auto", name: "Auto" },
|
||||
{ id: "hrLLM", name: "hrLLM" },
|
||||
]);
|
||||
});
|
||||
Reference in New Issue
Block a user