openlit
Version:
OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications, facilitating the integration of observability into your GenAI-driven projects
52 lines • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.llmResponseOpenAI = llmResponseOpenAI;
async function llmResponseOpenAI({ prompt, model, apiKey, baseUrl }) {
let OpenAI;
try {
// eslint-disable-next-line @typescript-eslint/no-var-requires
OpenAI = require('openai').default;
}
catch {
throw new Error("openlit guard/eval features require the 'openai' package. Install it with: npm install openai");
}
const client = new OpenAI({
apiKey,
baseURL: baseUrl || 'https://api.openai.com/v1',
});
const usedModel = model || 'gpt-4o';
const response = await client.chat.completions.create({
model: usedModel,
messages: [
{ role: 'user', content: prompt }
],
temperature: 0.0,
response_format: { type: 'json_object' }
});
if (!response) {
console.error('OpenAI API did not return a response object:', response);
throw new Error('OpenAI API did not return a response object.');
}
if (!response.choices) {
console.error('OpenAI API response missing "choices":', response);
throw new Error('OpenAI API response missing "choices".');
}
if (!Array.isArray(response.choices) || response.choices.length === 0) {
console.error('OpenAI API response "choices" is empty or not an array:', response.choices);
throw new Error('OpenAI API response "choices" is empty or not an array.');
}
if (!response.choices[0]) {
console.error('OpenAI API response "choices[0]" is missing:', response.choices);
throw new Error('OpenAI API response "choices[0]" is missing.');
}
if (!response.choices[0].message) {
console.error('OpenAI API response "choices[0].message" is missing:', response.choices[0]);
throw new Error('OpenAI API response "choices[0].message" is missing.');
}
if (typeof response.choices[0].message.content !== 'string') {
console.error('OpenAI API response "choices[0].message.content" is missing or not a string:', response.choices[0].message);
throw new Error('OpenAI API response "choices[0].message.content" is missing or not a string.');
}
return response.choices[0].message.content || '';
}
//# sourceMappingURL=openai.js.map