UNPKG

assistan-ts

Version:

A typesafe and code-first library to define and run OpenAI assistants

50 lines 3.03 kB
"use strict"; 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