Skip to content

Commit ba01d73

Browse files
committed
throw error instead
1 parent cb15db8 commit ba01d73

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

packages/inference/src/providers/hf-inference.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import type {
3636
ZeroShotImageClassificationOutput,
3737
} from "@huggingface/tasks";
3838
import { HF_ROUTER_URL } from "../config.js";
39-
import { InferenceClientProviderOutputError } from "../errors.js";
39+
import { InferenceClientInputError, InferenceClientProviderOutputError } from "../errors.js";
4040
import type { TabularClassificationOutput } from "../tasks/tabular/tabularClassification.js";
4141
import type { BodyParams, RequestArgs, UrlParams } from "../types.js";
4242
import { toArray } from "../utils/toArray.js";
@@ -141,10 +141,9 @@ export class HFInferenceTextToImageTask extends HFInferenceTask implements TextT
141141
if ("data" in response && Array.isArray(response.data) && response.data[0].b64_json) {
142142
const base64Data = response.data[0].b64_json;
143143
if (outputType === "url") {
144-
console.warn(
145-
"hf-inference provider does not support URL output for this model, returning base64 data URL instead"
144+
throw new InferenceClientInputError(
145+
"hf-inference provider does not support URL output for this model. Use outputType 'blob' or 'json' instead."
146146
);
147-
return `data:image/jpeg;base64,${base64Data}`;
148147
}
149148
const base64Response = await fetch(`data:image/jpeg;base64,${base64Data}`);
150149
return await base64Response.blob();
@@ -159,12 +158,14 @@ export class HFInferenceTextToImageTask extends HFInferenceTask implements TextT
159158
}
160159
}
161160
if (response instanceof Blob) {
162-
if (outputType === "url" || outputType === "json") {
163-
console.warn(
164-
"hf-inference provider does not support URL output for this model, returning base64 data URL instead"
161+
if (outputType === "url") {
162+
throw new InferenceClientInputError(
163+
"hf-inference provider does not support URL output for this model. Use outputType 'blob' or 'json' instead."
165164
);
165+
}
166+
if (outputType === "json") {
166167
const b64 = await response.arrayBuffer().then((buf) => Buffer.from(buf).toString("base64"));
167-
return outputType === "url" ? `data:image/jpeg;base64,${b64}` : { output: `data:image/jpeg;base64,${b64}` };
168+
return { output: `data:image/jpeg;base64,${b64}` };
168169
}
169170
return response;
170171
}

packages/inference/src/providers/hyperbolic.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
TaskProviderHelper,
2424
type TextToImageTaskHelper,
2525
} from "./providerHelper.js";
26-
import { InferenceClientProviderOutputError } from "../errors.js";
26+
import { InferenceClientInputError, InferenceClientProviderOutputError } from "../errors.js";
2727
const HYPERBOLIC_API_BASE_URL = "https://api.hyperbolic.xyz";
2828

2929
export interface HyperbolicTextCompletionOutput extends Omit<ChatCompletionOutput, "choices"> {
@@ -118,8 +118,9 @@ export class HyperbolicTextToImageTask extends TaskProviderHelper implements Tex
118118
return { ...response };
119119
}
120120
if (outputType === "url") {
121-
console.warn("hyperbolic provider does not support URL output, returning base64 data URL instead");
122-
return `data:image/jpeg;base64,${response.images[0].image}`;
121+
throw new InferenceClientInputError(
122+
"hyperbolic provider does not support URL output. Use outputType 'blob' or 'json' instead."
123+
);
123124
}
124125
return fetch(`data:image/jpeg;base64,${response.images[0].image}`).then((res) => res.blob());
125126
}

packages/inference/src/providers/nscale.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import type { TextToImageInput } from "@huggingface/tasks";
1818
import type { BodyParams } from "../types.js";
1919
import { omit } from "../utils/omit.js";
2020
import { BaseConversationalTask, TaskProviderHelper, type TextToImageTaskHelper } from "./providerHelper.js";
21-
import { InferenceClientProviderOutputError } from "../errors.js";
21+
import { InferenceClientInputError, InferenceClientProviderOutputError } from "../errors.js";
2222

2323
const NSCALE_API_BASE_URL = "https://inference.api.nscale.com";
2424

@@ -72,8 +72,9 @@ export class NscaleTextToImageTask extends TaskProviderHelper implements TextToI
7272
}
7373
const base64Data = response.data[0].b64_json;
7474
if (outputType === "url") {
75-
console.warn("nscale provider does not support URL output, returning base64 data URL instead");
76-
return `data:image/jpeg;base64,${base64Data}`;
75+
throw new InferenceClientInputError(
76+
"nscale provider does not support URL output. Use outputType 'blob' or 'json' instead."
77+
);
7778
}
7879
return fetch(`data:image/jpeg;base64,${base64Data}`).then((res) => res.blob());
7980
}

0 commit comments

Comments
 (0)