UNPKG

taskforce-aiagent

Version:

TaskForce is a modular, open-source, production-ready TypeScript agent framework for orchestrating AI agents, LLM-powered autonomous agents, task pipelines, dynamic toolchains, RAG workflows and memory/retrieval systems.

39 lines (38 loc) 1.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.callOpenAIFunction = callOpenAIFunction; const openai_1 = __importDefault(require("openai")); const telemetry_helper_js_1 = require("./telemetry.helper.js"); const openai = new openai_1.default({ apiKey: process.env.OPENAI_API_KEY }); /** * Unified call for OpenAI chat model with optional structured message input. */ async function callOpenAIFunction({ model, messages, system, user, temperature = 0.3, }) { const finalMessages = messages ?? [ { role: "system", content: system || "", }, { role: "user", content: user || "", }, ]; const startTime = Date.now(); const res = await openai.chat.completions.create({ model, messages: finalMessages, temperature, }); const duration = Date.now() - startTime; if (process.env.TELEMETRY_MODE === "none") { return res.choices[0].message.content?.trim() || "N/A"; } // Approximate token usage const totalTokens = Math.round(JSON.stringify(finalMessages).length / 4); (0, telemetry_helper_js_1.recordLLMCall)("system", totalTokens, duration, model); return res.choices[0].message.content?.trim() || "N/A"; }