@genkit-ai/compat-oai
Version:
Genkit AI framework plugin for OpenAI APIs.
66 lines • 1.65 kB
JavaScript
import { z } from "genkit";
import {
ChatCompletionCommonConfigSchema,
compatOaiModelRef
} from "../model.mjs";
const XAI_LANGUGAGE_MODEL_INFO = {
supports: {
multiturn: true,
tools: true,
media: false,
systemRole: true,
output: ["text", "json"]
}
};
const XaiChatCompletionConfigSchema = ChatCompletionCommonConfigSchema.extend({
deferred: z.boolean().optional(),
reasoningEffort: z.enum(["low", "medium", "high"]).optional(),
webSearchOptions: z.object({}).passthrough().optional()
});
function xaiModelRef(params) {
return compatOaiModelRef({
...params,
info: params.info ?? XAI_LANGUGAGE_MODEL_INFO,
configSchema: XaiChatCompletionConfigSchema,
namespace: "xai"
});
}
const grokRequestBuilder = (req, params) => {
const { deferred, webSearchOptions, reasoningEffort } = req.config ?? {};
params.web_search_options = webSearchOptions;
params.reasoning_effort = reasoningEffort;
params.deferred = deferred;
};
const SUPPORTED_LANGUAGE_MODELS = {
"grok-3": xaiModelRef({
name: "grok-3"
}),
"grok-3-fast": xaiModelRef({
name: "grok-3-fast"
}),
"grok-3-mini": xaiModelRef({
name: "grok-3-mini"
}),
"grok-3-mini-fast": xaiModelRef({
name: "grok-3-mini-fast"
}),
"grok-2-vision-1212": xaiModelRef({
name: "grok-2-vision-1212",
info: {
supports: {
multiturn: false,
tools: true,
media: true,
systemRole: false,
output: ["text", "json"]
}
}
})
};
export {
SUPPORTED_LANGUAGE_MODELS,
XaiChatCompletionConfigSchema,
grokRequestBuilder,
xaiModelRef
};
//# sourceMappingURL=grok.mjs.map