UNPKG

@genkit-ai/compat-oai

Version:

Genkit AI framework plugin for OpenAI APIs.

329 lines (325 loc) 17.4 kB
import { z } from 'genkit'; import { ModelInfo, ModelReference } from 'genkit/model'; import { ModelRequestBuilder } from '../model.js'; import 'openai'; import 'openai/resources/index.mjs'; /** * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** XAI Custom configuration schema. */ declare const XaiChatCompletionConfigSchema: z.ZodObject<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>; /** XAI ModelRef helper, with XAI specific config. */ declare function xaiModelRef(params: { name: string; info?: ModelInfo; config?: any; }): ModelReference<typeof XaiChatCompletionConfigSchema>; declare const grokRequestBuilder: ModelRequestBuilder; declare const SUPPORTED_LANGUAGE_MODELS: { 'grok-3': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; 'grok-3-fast': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; 'grok-3-mini': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; 'grok-3-mini-fast': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; 'grok-2-vision-1212': ModelReference<z.ZodObject<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ version: z.ZodOptional<z.ZodString>; maxOutputTokens: z.ZodOptional<z.ZodNumber>; topK: z.ZodOptional<z.ZodNumber>; topP: z.ZodOptional<z.ZodNumber>; stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; } & { temperature: z.ZodOptional<z.ZodNumber>; frequencyPenalty: z.ZodOptional<z.ZodNumber>; logProbs: z.ZodOptional<z.ZodBoolean>; presencePenalty: z.ZodOptional<z.ZodNumber>; topLogProbs: z.ZodOptional<z.ZodNumber>; } & { deferred: z.ZodOptional<z.ZodBoolean>; reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>; webSearchOptions: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; }; export { SUPPORTED_LANGUAGE_MODELS, XaiChatCompletionConfigSchema, grokRequestBuilder, xaiModelRef };