UNPKG

cucumber-ai

Version:

Write automated tests using natural language

40 lines 1.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LLM = void 0; const openai_1 = __importDefault(require("openai")); class LLM { constructor() { this.client = new openai_1.default({ apiKey: process.env.LLM_API_KEY, baseURL: process.env.LLM_BASE_URL || "https://api.openai.com/v1", defaultHeaders: { "HTTP-Referrer": "https://github.com/zbcjackson/cucumber-ai", "X-Title": "cucumber-ai", }, }); } async ask(params) { const { messages, tools = [], schema } = params; console.log("Request: "); console.dir(messages, { depth: null }); const start = Date.now(); const responseFormat = schema ? { type: "json_schema", json_schema: schema } : { type: "json_object" }; const response = await this.client.chat.completions.create({ model: process.env.LLM_MODEL_NAME, messages, tools: tools.length > 0 ? tools : undefined, temperature: 0, response_format: responseFormat, }); console.log(`Response(${(Date.now() - start) / 1000}s): `); console.dir(response.choices[0].message, { depth: null }); return response.choices[0].message; } } exports.LLM = LLM; //# sourceMappingURL=openai.js.map