Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ yarn-debug.log*
yarn-error.log*
lerna-debug.log*

.tshy-build
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

Expand Down
3 changes: 2 additions & 1 deletion packages/inference/.eslintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
dist
tapes.json
src/vendor
src/vendor
.tshy-build
3 changes: 2 additions & 1 deletion packages/inference/.prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ pnpm-lock.yaml
README.md
dist
test/tapes.json
src/vendor
src/vendor
.tshy-build
8 changes: 8 additions & 0 deletions packages/inference/.tshy/build.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"rootDir": "../src",
"module": "nodenext",
"moduleResolution": "nodenext"
}
}
16 changes: 16 additions & 0 deletions packages/inference/.tshy/commonjs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"extends": "./build.json",
"include": [
"../src/**/*.ts",
"../src/**/*.cts",
"../src/**/*.tsx",
"../src/**/*.json"
],
"exclude": [
"../src/**/*.mts",
"../src/package.json"
],
"compilerOptions": {
"outDir": "../.tshy-build/commonjs"
}
}
15 changes: 15 additions & 0 deletions packages/inference/.tshy/esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"extends": "./build.json",
"include": [
"../src/**/*.ts",
"../src/**/*.mts",
"../src/**/*.tsx",
"../src/**/*.json"
],
"exclude": [
"../src/package.json"
],
"compilerOptions": {
"outDir": "../.tshy-build/esm"
}
}
32 changes: 23 additions & 9 deletions packages/inference/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,18 @@
"!src/snippets/templates/**/*.jinja"
],
"source": "src/index.ts",
"types": "./dist/src/index.d.ts",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"exports": {
"types": "./dist/src/index.d.ts",
"require": "./dist/index.cjs",
"import": "./dist/index.js"
"types": "./dist/commonjs/index.d.ts",
"main": "./dist/commonjs/index.js",
"module": "./dist/esm/index.js",
"tshy": {
"exports": {
"./package.json": "./package.json",
".": "./src/index.ts"
}
},
"type": "module",
"scripts": {
"build": "pnpm run export-templates && tsup src/index.ts --format cjs,esm --clean && tsc --emitDeclarationOnly --declaration",
"build": "pnpm run export-templates && tshy",
"dts": "tsx scripts/generate-dts.ts && tsc --noEmit dist/index.d.ts",
"lint": "eslint --quiet --fix --ext .cjs,.ts .",
"lint:check": "eslint --ext .cjs,.ts .",
Expand All @@ -61,5 +62,18 @@
"devDependencies": {
"@types/node": "18.13.0"
},
"resolutions": {}
"resolutions": {},
"exports": {
"./package.json": "./package.json",
".": {
"import": {
"types": "./dist/esm/index.d.ts",
"default": "./dist/esm/index.js"
},
"require": {
"types": "./dist/commonjs/index.d.ts",
"default": "./dist/commonjs/index.js"
}
}
}
}
9 changes: 5 additions & 4 deletions packages/inference/src/InferenceClient.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import * as tasks from "./tasks";
import type { Options } from "./types";
import { omit } from "./utils/omit";
import { typedEntries } from "./utils/typedEntries";
import * as tasks from "./tasks/index.js";
import type { Options } from "./types.js";
import { omit } from "./utils/omit.js";
import { typedEntries } from "./utils/typedEntries.js";

/import\s+([^\s]+)\s+from\s+(['"])(\.{1,2}\/[^'"]+?)(?<!\.js)\2/g;
/* eslint-disable @typescript-eslint/no-empty-interface */
/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */

Expand Down
8 changes: 4 additions & 4 deletions packages/inference/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export { InferenceClient, InferenceClientEndpoint, HfInference } from "./InferenceClient";
export { InferenceOutputError } from "./lib/InferenceOutputError";
export * from "./types";
export * from "./tasks";
export { InferenceClient, InferenceClientEndpoint, HfInference } from "./InferenceClient.js";
export { InferenceOutputError } from "./lib/InferenceOutputError.js";
export * from "./types.js";
export * from "./tasks/index.js";
import * as snippets from "./snippets/index.js";

export { snippets };
4 changes: 2 additions & 2 deletions packages/inference/src/lib/getDefaultTask.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { HF_HUB_URL } from "../config";
import { isUrl } from "./isUrl";
import { HF_HUB_URL } from "../config.js";
import { isUrl } from "./isUrl.js";

/**
* We want to make calls to the huggingface hub the least possible, eg if
Expand Down
10 changes: 5 additions & 5 deletions packages/inference/src/lib/getInferenceProviderMapping.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { WidgetType } from "@huggingface/tasks";
import { HF_HUB_URL } from "../config";
import { HARDCODED_MODEL_INFERENCE_MAPPING } from "../providers/consts";
import { EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS } from "../providers/hf-inference";
import type { InferenceProvider, InferenceProviderOrPolicy, ModelId } from "../types";
import { typedInclude } from "../utils/typedInclude";
import { HF_HUB_URL } from "../config.js";
import { HARDCODED_MODEL_INFERENCE_MAPPING } from "../providers/consts.js";
import { EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS } from "../providers/hf-inference.js";
import type { InferenceProvider, InferenceProviderOrPolicy, ModelId } from "../types.js";
import { typedInclude } from "../utils/typedInclude.js";

export const inferenceProviderMappingCache = new Map<ModelId, InferenceProviderMapping>();

Expand Down
38 changes: 19 additions & 19 deletions packages/inference/src/lib/getProviderHelper.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import * as BlackForestLabs from "../providers/black-forest-labs";
import * as Cerebras from "../providers/cerebras";
import * as Cohere from "../providers/cohere";
import * as FalAI from "../providers/fal-ai";
import * as FeatherlessAI from "../providers/featherless-ai";
import * as Fireworks from "../providers/fireworks-ai";
import * as Groq from "../providers/groq";
import * as HFInference from "../providers/hf-inference";
import * as Hyperbolic from "../providers/hyperbolic";
import * as Nebius from "../providers/nebius";
import * as Novita from "../providers/novita";
import * as Nscale from "../providers/nscale";
import * as OpenAI from "../providers/openai";
import * as OvhCloud from "../providers/ovhcloud";
import * as BlackForestLabs from "../providers/black-forest-labs.js";
import * as Cerebras from "../providers/cerebras.js";
import * as Cohere from "../providers/cohere.js";
import * as FalAI from "../providers/fal-ai.js";
import * as FeatherlessAI from "../providers/featherless-ai.js";
import * as Fireworks from "../providers/fireworks-ai.js";
import * as Groq from "../providers/groq.js";
import * as HFInference from "../providers/hf-inference.js";
import * as Hyperbolic from "../providers/hyperbolic.js";
import * as Nebius from "../providers/nebius.js";
import * as Novita from "../providers/novita.js";
import * as Nscale from "../providers/nscale.js";
import * as OpenAI from "../providers/openai.js";
import * as OvhCloud from "../providers/ovhcloud.js";
import type {
AudioClassificationTaskHelper,
AudioToAudioTaskHelper,
Expand Down Expand Up @@ -43,11 +43,11 @@ import type {
VisualQuestionAnsweringTaskHelper,
ZeroShotClassificationTaskHelper,
ZeroShotImageClassificationTaskHelper,
} from "../providers/providerHelper";
import * as Replicate from "../providers/replicate";
import * as Sambanova from "../providers/sambanova";
import * as Together from "../providers/together";
import type { InferenceProvider, InferenceProviderOrPolicy, InferenceTask } from "../types";
} from "../providers/providerHelper.js";
import * as Replicate from "../providers/replicate.js";
import * as Sambanova from "../providers/sambanova.js";
import * as Together from "../providers/together.js";
import type { InferenceProvider, InferenceProviderOrPolicy, InferenceTask } from "../types.js";

export const PROVIDERS: Record<InferenceProvider, Partial<Record<InferenceTask, TaskProviderHelper>>> = {
"black-forest-labs": {
Expand Down
18 changes: 10 additions & 8 deletions packages/inference/src/lib/makeRequestOptions.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { name as packageName, version as packageVersion } from "../../package.json";
import { HF_HEADER_X_BILL_TO, HF_HUB_URL } from "../config";
import type { InferenceTask, Options, RequestArgs } from "../types";
import type { InferenceProviderModelMapping } from "./getInferenceProviderMapping";
import { getInferenceProviderMapping } from "./getInferenceProviderMapping";
import type { getProviderHelper } from "./getProviderHelper";
import { isUrl } from "./isUrl";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore this works or not depending on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
import pkg from "../../package.json" with { type: "json" };
import { HF_HEADER_X_BILL_TO, HF_HUB_URL } from "../config.js";
import type { InferenceTask, Options, RequestArgs } from "../types.js";
import type { InferenceProviderModelMapping } from "./getInferenceProviderMapping.js";
import { getInferenceProviderMapping } from "./getInferenceProviderMapping.js";
import type { getProviderHelper } from "./getProviderHelper.js";
import { isUrl } from "./isUrl.js";

/**
* Lazy-loaded from huggingface.co/api/tasks when needed
Expand Down Expand Up @@ -158,7 +160,7 @@ export function makeRequestOptionsFromResolvedModel(

// Add user-agent to headers
// e.g. @huggingface/inference/3.1.3
const ownUserAgent = `${packageName}/${packageVersion}`;
const ownUserAgent = `${pkg.name}/${pkg.version}`;
const userAgent = [ownUserAgent, typeof navigator !== "undefined" ? navigator.userAgent : undefined]
.filter((x) => x !== undefined)
.join(" ");
Expand Down
10 changes: 5 additions & 5 deletions packages/inference/src/providers/black-forest-labs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
*
* Thanks!
*/
import { InferenceOutputError } from "../lib/InferenceOutputError";
import type { BodyParams, HeaderParams, UrlParams } from "../types";
import { delay } from "../utils/delay";
import { omit } from "../utils/omit";
import { TaskProviderHelper, type TextToImageTaskHelper } from "./providerHelper";
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
import type { BodyParams, HeaderParams, UrlParams } from "../types.js";
import { delay } from "../utils/delay.js";
import { omit } from "../utils/omit.js";
import { TaskProviderHelper, type TextToImageTaskHelper } from "./providerHelper.js";

const BLACK_FOREST_LABS_AI_API_BASE_URL = "https://api.us1.bfl.ai";
interface BlackForestLabsResponse {
Expand Down
2 changes: 1 addition & 1 deletion packages/inference/src/providers/cerebras.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* Thanks!
*/

import { BaseConversationalTask } from "./providerHelper";
import { BaseConversationalTask } from "./providerHelper.js";

export class CerebrasConversationalTask extends BaseConversationalTask {
constructor() {
Expand Down
2 changes: 1 addition & 1 deletion packages/inference/src/providers/cohere.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
*
* Thanks!
*/
import { BaseConversationalTask } from "./providerHelper";
import { BaseConversationalTask } from "./providerHelper.js";

export class CohereConversationalTask extends BaseConversationalTask {
constructor() {
Expand Down
6 changes: 3 additions & 3 deletions packages/inference/src/providers/consts.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { InferenceProviderModelMapping } from "../lib/getInferenceProviderMapping";
import type { InferenceProvider } from "../types";
import { type ModelId } from "../types";
import type { InferenceProviderModelMapping } from "../lib/getInferenceProviderMapping.js";
import type { InferenceProvider } from "../types.js";
import { type ModelId } from "../types.js";

/**
* If you want to try to run inference for a new model locally before it's registered on huggingface.co
Expand Down
18 changes: 9 additions & 9 deletions packages/inference/src/providers/fal-ai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,22 @@
*
* Thanks!
*/
import { base64FromBytes } from "../utils/base64FromBytes";
import { base64FromBytes } from "../utils/base64FromBytes.js";

import type { AutomaticSpeechRecognitionOutput } from "@huggingface/tasks";
import { InferenceOutputError } from "../lib/InferenceOutputError";
import { isUrl } from "../lib/isUrl";
import type { BodyParams, HeaderParams, ModelId, RequestArgs, UrlParams } from "../types";
import { delay } from "../utils/delay";
import { omit } from "../utils/omit";
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
import { isUrl } from "../lib/isUrl.js";
import type { BodyParams, HeaderParams, ModelId, RequestArgs, UrlParams } from "../types.js";
import { delay } from "../utils/delay.js";
import { omit } from "../utils/omit.js";
import {
type AutomaticSpeechRecognitionTaskHelper,
TaskProviderHelper,
type TextToImageTaskHelper,
type TextToVideoTaskHelper,
} from "./providerHelper";
import { HF_HUB_URL } from "../config";
import type { AutomaticSpeechRecognitionArgs } from "../tasks/audio/automaticSpeechRecognition";
} from "./providerHelper.js";
import { HF_HUB_URL } from "../config.js";
import type { AutomaticSpeechRecognitionArgs } from "../tasks/audio/automaticSpeechRecognition.js";

export interface FalAiQueueOutput {
request_id: string;
Expand Down
6 changes: 3 additions & 3 deletions packages/inference/src/providers/featherless-ai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import type {
TextGenerationOutput,
TextGenerationOutputFinishReason,
} from "@huggingface/tasks";
import { InferenceOutputError } from "../lib/InferenceOutputError";
import type { BodyParams } from "../types";
import { BaseConversationalTask, BaseTextGenerationTask } from "./providerHelper";
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
import type { BodyParams } from "../types.js";
import { BaseConversationalTask, BaseTextGenerationTask } from "./providerHelper.js";

interface FeatherlessAITextCompletionOutput extends Omit<ChatCompletionOutput, "choices"> {
choices: Array<{
Expand Down
2 changes: 1 addition & 1 deletion packages/inference/src/providers/fireworks-ai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
*
* Thanks!
*/
import { BaseConversationalTask } from "./providerHelper";
import { BaseConversationalTask } from "./providerHelper.js";

export class FireworksConversationalTask extends BaseConversationalTask {
constructor() {
Expand Down
2 changes: 1 addition & 1 deletion packages/inference/src/providers/groq.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { BaseConversationalTask, BaseTextGenerationTask } from "./providerHelper";
import { BaseConversationalTask, BaseTextGenerationTask } from "./providerHelper.js";

/**
* See the registered mapping of HF model ID => Groq model ID here:
Expand Down
22 changes: 11 additions & 11 deletions packages/inference/src/providers/hf-inference.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ import type {
ZeroShotClassificationOutput,
ZeroShotImageClassificationOutput,
} from "@huggingface/tasks";
import { HF_ROUTER_URL } from "../config";
import { InferenceOutputError } from "../lib/InferenceOutputError";
import type { TabularClassificationOutput } from "../tasks/tabular/tabularClassification";
import type { BodyParams, RequestArgs, UrlParams } from "../types";
import { toArray } from "../utils/toArray";
import { HF_ROUTER_URL } from "../config.js";
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
import type { TabularClassificationOutput } from "../tasks/tabular/tabularClassification.js";
import type { BodyParams, RequestArgs, UrlParams } from "../types.js";
import { toArray } from "../utils/toArray.js";
import type {
AudioClassificationTaskHelper,
AudioToAudioTaskHelper,
Expand Down Expand Up @@ -67,13 +67,13 @@ import type {
VisualQuestionAnsweringTaskHelper,
ZeroShotClassificationTaskHelper,
ZeroShotImageClassificationTaskHelper,
} from "./providerHelper";
} from "./providerHelper.js";

import { TaskProviderHelper } from "./providerHelper";
import { base64FromBytes } from "../utils/base64FromBytes";
import type { ImageToImageArgs } from "../tasks/cv/imageToImage";
import type { AutomaticSpeechRecognitionArgs } from "../tasks/audio/automaticSpeechRecognition";
import { omit } from "../utils/omit";
import { TaskProviderHelper } from "./providerHelper.js";
import { base64FromBytes } from "../utils/base64FromBytes.js";
import type { ImageToImageArgs } from "../tasks/cv/imageToImage.js";
import type { AutomaticSpeechRecognitionArgs } from "../tasks/audio/automaticSpeechRecognition.js";
import { omit } from "../utils/omit.js";
interface Base64ImageGeneration {
data: Array<{
b64_json: string;
Expand Down
Loading
Loading