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
JavaScript
;
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";
}