UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

74 lines 2.67 kB
"use strict"; 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