fix(ts-oss/together): honor TOGETHER_API_BASE in the embedder (#6572)
This commit is contained in:
@@ -17,7 +17,14 @@ export class TogetherEmbedder extends OpenAIEmbedder {
|
|||||||
super({
|
super({
|
||||||
...openAICompatibleConfig,
|
...openAICompatibleConfig,
|
||||||
apiKey,
|
apiKey,
|
||||||
baseURL: config.baseURL || config.url || DEFAULT_BASE_URL,
|
// Honor TOGETHER_API_BASE like the Together LLM does, so a user behind a
|
||||||
|
// gateway who sets it gets it for embeddings too instead of silently
|
||||||
|
// hitting api.together.ai.
|
||||||
|
baseURL:
|
||||||
|
config.baseURL ||
|
||||||
|
config.url ||
|
||||||
|
process.env.TOGETHER_API_BASE ||
|
||||||
|
DEFAULT_BASE_URL,
|
||||||
model: config.model || DEFAULT_MODEL,
|
model: config.model || DEFAULT_MODEL,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ describe("TogetherEmbedder (unit)", () => {
|
|||||||
jest.resetModules();
|
jest.resetModules();
|
||||||
process.env = { ...originalEnv };
|
process.env = { ...originalEnv };
|
||||||
delete process.env.TOGETHER_API_KEY;
|
delete process.env.TOGETHER_API_KEY;
|
||||||
|
delete process.env.TOGETHER_API_BASE;
|
||||||
mockOpenAI.mockClear();
|
mockOpenAI.mockClear();
|
||||||
mockEmbeddingsCreate.mockReset();
|
mockEmbeddingsCreate.mockReset();
|
||||||
mockEmbeddingsCreate.mockResolvedValue({
|
mockEmbeddingsCreate.mockResolvedValue({
|
||||||
@@ -81,6 +82,35 @@ describe("TogetherEmbedder (unit)", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("honors TOGETHER_API_BASE when no baseURL is configured", async () => {
|
||||||
|
process.env.TOGETHER_API_BASE = "https://gateway.example/v1";
|
||||||
|
|
||||||
|
const embedder = new TogetherEmbedder({ apiKey: "test-key" });
|
||||||
|
|
||||||
|
await embedder.embed("hello");
|
||||||
|
|
||||||
|
expect(mockOpenAI).toHaveBeenCalledWith({
|
||||||
|
apiKey: "test-key",
|
||||||
|
baseURL: "https://gateway.example/v1",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("prefers an explicit baseURL over TOGETHER_API_BASE", async () => {
|
||||||
|
process.env.TOGETHER_API_BASE = "https://gateway.example/v1";
|
||||||
|
|
||||||
|
const embedder = new TogetherEmbedder({
|
||||||
|
apiKey: "test-key",
|
||||||
|
baseURL: "https://explicit.example/v1",
|
||||||
|
});
|
||||||
|
|
||||||
|
await embedder.embed("hello");
|
||||||
|
|
||||||
|
expect(mockOpenAI).toHaveBeenCalledWith({
|
||||||
|
apiKey: "test-key",
|
||||||
|
baseURL: "https://explicit.example/v1",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it("uses url as a baseURL fallback", async () => {
|
it("uses url as a baseURL fallback", async () => {
|
||||||
const embedder = new TogetherEmbedder({
|
const embedder = new TogetherEmbedder({
|
||||||
apiKey: "test-key",
|
apiKey: "test-key",
|
||||||
|
|||||||
Reference in New Issue
Block a user