experiment(confidence-engine): route UI journey provider centrally
This commit is contained in:
@@ -4,6 +4,7 @@ import {
|
||||
createOpenAIStrictSchema,
|
||||
createOpenAIReconstructionProvider,
|
||||
getProvider,
|
||||
getProviderModelName,
|
||||
normaliseOpenAITransportResponse,
|
||||
reconstructionJsonSchema,
|
||||
} from "@/lib/llm/provider.js";
|
||||
@@ -11,6 +12,48 @@ import { reconstructionV2Schema } from "@/lib/reconstruction/schema.js";
|
||||
import { z } from "zod";
|
||||
|
||||
describe("OllamaLlmProvider chat capability detection", () => {
|
||||
it("keeps Ollama and its configured model when no experiment provider is selected", () => {
|
||||
const previousExperimentProvider = process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER;
|
||||
const previousModel = process.env.OLLAMA_MODEL;
|
||||
const previousOpenAIKey = process.env.OPENAI_API_KEY;
|
||||
delete process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER;
|
||||
process.env.OLLAMA_MODEL = "qwen-default";
|
||||
process.env.OPENAI_API_KEY = "present-but-not-selected";
|
||||
|
||||
try {
|
||||
expect(getProvider().constructor.name).toBe("OllamaLlmProvider");
|
||||
expect(getProviderModelName()).toBe("qwen-default");
|
||||
} finally {
|
||||
if (previousExperimentProvider === undefined) delete process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER;
|
||||
else process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER = previousExperimentProvider;
|
||||
if (previousModel === undefined) delete process.env.OLLAMA_MODEL;
|
||||
else process.env.OLLAMA_MODEL = previousModel;
|
||||
if (previousOpenAIKey === undefined) delete process.env.OPENAI_API_KEY;
|
||||
else process.env.OPENAI_API_KEY = previousOpenAIKey;
|
||||
}
|
||||
});
|
||||
|
||||
it("selects the existing OpenAI provider and Terra only for the explicit experiment configuration", () => {
|
||||
const previousExperimentProvider = process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER;
|
||||
const previousModel = process.env.OLLAMA_MODEL;
|
||||
const previousOpenAIKey = process.env.OPENAI_API_KEY;
|
||||
process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER = "openai";
|
||||
process.env.OPENAI_API_KEY = "test-key";
|
||||
process.env.OLLAMA_MODEL = "qwen-default";
|
||||
|
||||
try {
|
||||
expect(getProvider().constructor.name).toBe("OpenAIReconstructionProvider");
|
||||
expect(getProviderModelName()).toBe("gpt-5.6-terra");
|
||||
} finally {
|
||||
if (previousExperimentProvider === undefined) delete process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER;
|
||||
else process.env.CONFIDENCE_ENGINE_EXPERIMENT_PROVIDER = previousExperimentProvider;
|
||||
if (previousModel === undefined) delete process.env.OLLAMA_MODEL;
|
||||
else process.env.OLLAMA_MODEL = previousModel;
|
||||
if (previousOpenAIKey === undefined) delete process.env.OPENAI_API_KEY;
|
||||
else process.env.OPENAI_API_KEY = previousOpenAIKey;
|
||||
}
|
||||
});
|
||||
|
||||
it("uses the configured model for the chat probe and keeps the chat path", async () => {
|
||||
const originalBaseUrl = process.env.OLLAMA_BASE_URL;
|
||||
const fetchSpy = vi.fn()
|
||||
|
||||
Reference in New Issue
Block a user