@arizeai/phoenix-client
Version:
A client for the Phoenix API
74 lines • 2.67 kB
JavaScript
;
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.toSDK = exports.PROVIDER_TO_SDK = void 0;
const assertUnreachable_1 = require("../../utils/assertUnreachable");
const toAI_1 = require("./toAI");
const toAnthropic_1 = require("./toAnthropic");
const toOpenAI_1 = require("./toOpenAI");
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
/**
* Map of SDK names to their corresponding conversion functions
*/
exports.PROVIDER_TO_SDK = {
openai: toOpenAI_1.toOpenAI,
anthropic: toAnthropic_1.toAnthropic,
ai: toAI_1.toAI,
};
/**
* Get the conversion function for a specific SDK name
*/
const getTargetSDK = (sdk) => {
switch (sdk) {
case "openai":
return exports.PROVIDER_TO_SDK.openai;
case "anthropic":
return exports.PROVIDER_TO_SDK.anthropic;
case "ai":
return exports.PROVIDER_TO_SDK.ai;
default:
(0, assertUnreachable_1.assertUnreachable)(sdk);
}
};
/**
* Convert a Phoenix prompt to a specific SDK's parameters
*
* @example quickstart
* ```ts
* // Get a prompt from Phoenix, use it via openai sdk
* const prompt = await getPrompt({ prompt: { name: "my-prompt" } });
* const openaiParams = toSDK({ sdk: "openai", prompt });
* const response = await openai.chat.completions.create(openaiParams);
* ```
*
* @example type safety
* ```ts
* // Enforce variable types via Generic argument
* const prompt = await getPrompt({ prompt: { name: "my-prompt" } });
* const openaiParams = toSDK<"openai", { name: string }>({ sdk: "openai", prompt, variables: { name: "John" } });
* ```
*
* @param params - The parameters to convert a prompt to an SDK's parameters
* @returns The SDK's parameters
*/
const toSDK = (_a) => {
var { sdk: _sdk } = _a, rest = __rest(_a, ["sdk"]);
const sdk = getTargetSDK(_sdk);
(0, tiny_invariant_1.default)(sdk, `No SDK found for provider ${_sdk}`);
return sdk(rest);
};
exports.toSDK = toSDK;
//# sourceMappingURL=toSDK.js.map