cucumber-ai
Version:
Write automated tests using natural language
40 lines • 1.53 kB
JavaScript
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
;