assistan-ts
Version:
A typesafe and code-first library to define and run OpenAI assistants
50 lines • 3.03 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.assistant = void 0;
const definition_1 = require("./definition");
const run_1 = require("./run");
const toolbox_1 = require("./toolbox");
const assistant = ({ definition, tools, toolOptions, toolBoxOverride: overrideToolbox, }) => {
const toolbox = (0, toolbox_1.toolbox)(definition.functionTools, tools, toolOptions);
const setupRun = (run, overriddenToolbox) => ({
run,
toolsRequired: (opts) => __awaiter(void 0, void 0, void 0, function* () {
return (0, run_1.waitForRequiredAction)(run, Object.assign({ toolbox: overriddenToolbox !== null && overriddenToolbox !== void 0 ? overriddenToolbox : toolbox, openai: definition.openai }, opts), opts === null || opts === void 0 ? void 0 : opts.timeout);
}),
complete: (opts) => __awaiter(void 0, void 0, void 0, function* () {
return (0, run_1.waitForComplete)(run, Object.assign({ toolbox: overriddenToolbox !== null && overriddenToolbox !== void 0 ? overriddenToolbox : toolbox, openai: definition.openai }, opts), opts === null || opts === void 0 ? void 0 : opts.timeout);
}),
});
return {
definition,
toolbox: toolbox,
run: {
create: (params) => __awaiter(void 0, void 0, void 0, function* () {
const { threadId, body, options } = params;
const overriddenToolbox = overrideToolbox === null || overrideToolbox === void 0 ? void 0 : overrideToolbox(toolbox);
const run = yield definition.openai.beta.threads.runs.create(threadId, Object.assign(Object.assign({ assistant_id: definition.id }, (body !== null && body !== void 0 ? body : {})), { tools: overriddenToolbox
? (0, definition_1.toolsToPayload)({
functionTools: overriddenToolbox.toolDefs,
retrieval: definition.retrieval,
codeInterpreter: definition.codeInterpreter,
})
: undefined }), options);
return setupRun(run, overriddenToolbox);
}),
load: (run) => {
return setupRun(run);
},
},
};
};
exports.assistant = assistant;
//# sourceMappingURL=assistant.js.map