6a992a1995
* Support tasks with remote callbacks * Add common integration tsconfig * Add Replicate integration * Basic job catalog example * Integration catalog entry * Check for callbackUrl during executeTask * Fix getAll * Improve JSDoc * Bump version * Remove named queue * Simplify runTask types * Trust the types * Fail tasks on timeout * Callback timeout as param * Mess with types * performRunExecutionV1 * Update runTask docs * Shorten callback task methods * Fix run method return type * Image processing jobs * Replicate docs * Text output example * Changeset * Version bump * Roll back ugly types * Remove missing types * Quicker return when waiting on remote callback * Remote callback example * Bump version * Remove schema parsing * Only schedule positive callback timeout * Decrease callback secret length * Explicit default timeouts * Import deployments tasks * JSDoc * Deployments docs * Fix runTask examples, mention wrappers --------- Co-authored-by: Eric Allam <eric@trigger.dev>
83 lines
1.8 KiB
TypeScript
83 lines
1.8 KiB
TypeScript
import { IntegrationTaskKey } from "@trigger.dev/sdk";
|
|
import { Model, ModelVersion } from "replicate";
|
|
|
|
import { ReplicateRunTask } from "./index";
|
|
import { modelProperties } from "./utils";
|
|
import { ReplicateReturnType } from "./types";
|
|
|
|
export class Models {
|
|
constructor(private runTask: ReplicateRunTask) {}
|
|
|
|
/** Get information about a model. */
|
|
get(
|
|
key: IntegrationTaskKey,
|
|
params: {
|
|
model_owner: string;
|
|
model_name: string;
|
|
}
|
|
): ReplicateReturnType<Model> {
|
|
return this.runTask(
|
|
key,
|
|
(client) => {
|
|
return client.models.get(params.model_owner, params.model_name);
|
|
},
|
|
{
|
|
name: "Get Model",
|
|
params,
|
|
properties: modelProperties(params),
|
|
}
|
|
);
|
|
}
|
|
|
|
get versions() {
|
|
return new Versions(this.runTask);
|
|
}
|
|
}
|
|
|
|
class Versions {
|
|
constructor(private runTask: ReplicateRunTask) {}
|
|
|
|
/** Get a specific model version. */
|
|
get(
|
|
key: IntegrationTaskKey,
|
|
params: {
|
|
model_owner: string;
|
|
model_name: string;
|
|
version_id: string;
|
|
}
|
|
): ReplicateReturnType<ModelVersion> {
|
|
return this.runTask(
|
|
key,
|
|
(client) => {
|
|
return client.models.versions.get(params.model_owner, params.model_name, params.version_id);
|
|
},
|
|
{
|
|
name: "Get Model Version",
|
|
params,
|
|
properties: modelProperties(params),
|
|
}
|
|
);
|
|
}
|
|
|
|
/** List model versions. */
|
|
list(
|
|
key: IntegrationTaskKey,
|
|
params: {
|
|
model_owner: string;
|
|
model_name: string;
|
|
}
|
|
): ReplicateReturnType<ModelVersion[]> {
|
|
return this.runTask(
|
|
key,
|
|
(client) => {
|
|
return client.models.versions.list(params.model_owner, params.model_name);
|
|
},
|
|
{
|
|
name: "List Models",
|
|
params,
|
|
properties: modelProperties(params),
|
|
}
|
|
);
|
|
}
|
|
}
|