diff --git a/frontend/app/(authRoutes)/projects/[id]/playground/components/Input/InputCardActionsRow.tsx b/frontend/app/(authRoutes)/projects/[id]/playground/components/Input/InputCardActionsRow.tsx
index f2a6cc7..870e587 100644
--- a/frontend/app/(authRoutes)/projects/[id]/playground/components/Input/InputCardActionsRow.tsx
+++ b/frontend/app/(authRoutes)/projects/[id]/playground/components/Input/InputCardActionsRow.tsx
@@ -19,6 +19,7 @@ import MaterialIcon from "@/components/MaterialIcon";
import { MainConfig } from "@/config/config";
import { PLAYGROUND_CUSTOM_INPUT_NAME } from "@/config/constants";
import { usePlaygroundContext } from "@/hooks/usePlaygroundContext";
+import { useParams } from "next/navigation";
import {
continueChatBSxSQuery,
inferenceChatCompletionQuery,
@@ -92,6 +93,12 @@ export default function InputCardActionsRow() {
setIsNewChat,
} = usePlaygroundContext();
const { projectState, isSideBySide } = useProjectContext();
+ const params = useParams<{ id: string }>();
+ const activeProjectId =
+ projectState?.projectId ||
+ projectState?.project?.project_id ||
+ (params?.id as string) ||
+ "";
const allCustomInputs = useMemo(() => {
return inputs
@@ -145,7 +152,7 @@ export default function InputCardActionsRow() {
return inferenceChatCompletionQuery(
payload,
- projectState?.project?.project_id || "",
+ activeProjectId,
);
},
onSuccess: (response: ChatCompletionResponse) => {
@@ -208,7 +215,7 @@ export default function InputCardActionsRow() {
}
await inferenceChatCompletionStreamingConnection(
- projectState?.project?.project_id || "",
+ activeProjectId,
{
payload,
onStart: () => {
@@ -326,7 +333,7 @@ export default function InputCardActionsRow() {
model_id_b: models?.[1]?.id || null,
prompts: [...allCustomInputs],
},
- projectState?.project?.project_id || "",
+ activeProjectId,
pairId || "",
),
onSuccess: (response) => {
@@ -359,7 +366,7 @@ export default function InputCardActionsRow() {
})),
variables: variables || {},
},
- projectState?.project?.project_id || "",
+ activeProjectId,
),
onSuccess: (response) => {
onSxSQuerySuccess(response);
@@ -427,6 +434,7 @@ export default function InputCardActionsRow() {
!firstItem.hidden;
return (
+ !activeProjectId || // Disable generate output when project is not resolved
generateOutputNoInputsPresent || // Disable generate output when there are no inputs
generateOutputNoModelsPresent || // Disable generate output when there are missing models
isChatStartingWithAssistant || // Disable generate output when the chat is starting with an assistant
@@ -434,11 +442,20 @@ export default function InputCardActionsRow() {
generateOutputEmptyUserInputs || // Disable generate output when there are empty user inputs
!isPlaygroundModified
);
- }, [isSideBySide, models, inputs]);
+ }, [
+ activeProjectId,
+ generateOutputNoInputsPresent,
+ generateOutputNoModelsPresent,
+ generateOutputEmptyUserInputs,
+ isPlaygroundModified,
+ inputs,
+ ]);
const generateOutputTooltip = useMemo(() => {
let tooltip = "";
- if (generateOutputNoInputsPresent) {
+ if (!activeProjectId) {
+ tooltip = "Project is still loading or invalid.";
+ } else if (generateOutputNoInputsPresent) {
tooltip = "There are no inputs to generate an output.";
} else if (generateOutputNoModelsPresent) {
tooltip = "There are no selected models to generate an output.";
@@ -450,6 +467,7 @@ export default function InputCardActionsRow() {
return tooltip;
}, [
+ activeProjectId,
generateOutputNoInputsPresent,
generateOutputNoModelsPresent,
generateOutputEmptyUserInputs,
diff --git a/frontend/app/(authRoutes)/projects/[id]/playground/components/Output/OutputCardEvaluator.tsx b/frontend/app/(authRoutes)/projects/[id]/playground/components/Output/OutputCardEvaluator.tsx
index 34faa6b..59dedb2 100644
--- a/frontend/app/(authRoutes)/projects/[id]/playground/components/Output/OutputCardEvaluator.tsx
+++ b/frontend/app/(authRoutes)/projects/[id]/playground/components/Output/OutputCardEvaluator.tsx
@@ -27,12 +27,19 @@ import { GAevents } from "@/types";
import logGAevent from "@/utils/logGAevent";
import { Text, UnstyledButton } from "@mantine/core";
import { useMutation } from "@tanstack/react-query";
+import { useParams } from "next/navigation";
import { useMemo } from "react";
import { CHAT_THUMBS, SIDE_BY_SIDE_EVAL_OPTIONS } from "../../consts";
export default function OutputCardEvaluator() {
const { projectState, isSideBySide } = useProjectContext();
+ const params = useParams<{ id: string }>();
+ const activeProjectId =
+ projectState?.projectId ||
+ projectState?.project?.project_id ||
+ (params?.id as string) ||
+ "";
const { feedbackEvalId } = useHumanEvalsContext();
const {
outputs,
@@ -107,7 +114,7 @@ export default function OutputCardEvaluator() {
if (isSideBySide) {
const rating = thumb.value as HUMAN_SXS_RATING;
humanEvalSxSMutation.mutate({
- projectId: projectState?.project?.project_id || "",
+ projectId: activeProjectId,
pairId,
rating:
rating && rating === humanEvaluator?.value
diff --git a/frontend/app/(authRoutes)/projects/[id]/playground/components/PromptCleaningModal.tsx b/frontend/app/(authRoutes)/projects/[id]/playground/components/PromptCleaningModal.tsx
index dee877c..abc2690 100644
--- a/frontend/app/(authRoutes)/projects/[id]/playground/components/PromptCleaningModal.tsx
+++ b/frontend/app/(authRoutes)/projects/[id]/playground/components/PromptCleaningModal.tsx
@@ -23,7 +23,7 @@ import { usePlaygroundContext } from "@/hooks/usePlaygroundContext";
import LocalStorage from "@/utils/LocalStorage";
import { Button, Group, Modal, Text } from "@mantine/core";
import Image from "next/image";
-import { useRouter } from "next/navigation";
+import { useParams, useRouter } from "next/navigation";
import { useCallback } from "react";
import { useProjectContext } from "../../../hooks/useProjectContext";
@@ -36,11 +36,17 @@ export default function PromptCleaningModal({
}: PromptCleaningModalProps) {
const hasSeen = LocalStorage.get(SHOW_PLAYGROUND_INFO_BAR);
const { projectState } = useProjectContext();
+ const params = useParams<{ id: string }>();
+ const activeProjectId =
+ projectState?.projectId ||
+ projectState?.project?.project_id ||
+ (params?.id as string) ||
+ "";
const { resetPlayground } = usePlaygroundContext();
const router = useRouter();
const onNavigateToProject = useCallback(() => {
- router.push(`${routes.projects}/${projectState?.project?.project_id}`);
- }, [router, projectState?.project?.project_id]);
+ router.push(`${routes.projects}/${activeProjectId}`);
+ }, [router, activeProjectId]);
const handleClose = useCallback(() => {
onClose();
diff --git a/frontend/app/(authRoutes)/projects/[id]/playground/page.tsx b/frontend/app/(authRoutes)/projects/[id]/playground/page.tsx
index 6db51c9..7805661 100644
--- a/frontend/app/(authRoutes)/projects/[id]/playground/page.tsx
+++ b/frontend/app/(authRoutes)/projects/[id]/playground/page.tsx
@@ -26,7 +26,7 @@ import { usePlaygroundContext } from "@/hooks/usePlaygroundContext";
import { Model } from "@/queries/types";
import { InferenceChatCompletionPromptRole } from "@/types";
import { Group, ScrollArea, Text } from "@mantine/core";
-import { useRouter } from "next/navigation";
+import { useParams, useRouter } from "next/navigation";
import { useCallback, useEffect, useMemo, useState } from "react";
import { useProjectContext } from "../../hooks/useProjectContext";
@@ -43,6 +43,12 @@ import { InputCardItemProps, PROMPTS } from "./types";
export default function ProjectPlayground() {
const { projectState, isSideBySide } = useProjectContext();
+ const params = useParams<{ id: string }>();
+ const activeProjectId =
+ projectState?.projectId ||
+ projectState?.project?.project_id ||
+ (params?.id as string) ||
+ "";
const {
isPromptCleaningModalOpen,
closePromptCleaningModalOpen,
@@ -96,8 +102,8 @@ export default function ProjectPlayground() {
const router = useRouter();
const onNavigateTo = useCallback(() => {
- router.push(`${routes.projects}/${projectState?.project?.project_id}`);
- }, [router, projectState?.project?.project_id]);
+ router.push(`${routes.projects}/${activeProjectId}`);
+ }, [router, activeProjectId]);
const onDeleteInput = (id: string) => {
const customInputs = inputs.filter((input) =>
@@ -180,7 +186,7 @@ export default function ProjectPlayground() {
/>
diff --git a/frontend/app/(authRoutes)/projects/hooks/useProjectContext.tsx b/frontend/app/(authRoutes)/projects/hooks/useProjectContext.tsx
index 19e4cac..bffd8d0 100644
--- a/frontend/app/(authRoutes)/projects/hooks/useProjectContext.tsx
+++ b/frontend/app/(authRoutes)/projects/hooks/useProjectContext.tsx
@@ -27,6 +27,7 @@ import { useProjectsContext } from "@/hooks/useProjectsContext";
import {
SxsHumanEvalPassRateQuery,
getPointwiseEvalAnalyticsQuery,
+ getProjectByIdQuery,
getProjectQuery,
getProjectSxSQuery,
getSxSEvalAnalyticsQuery,
@@ -70,6 +71,7 @@ import { getProjectModals } from "../[id]/utils/projectModals";
type ProjectMetricsData = MetricsSummaryResponse | SxsInferenceMetricsResponse;
interface ProjectState {
+ projectId: string;
project: Project | null;
activeStep: number;
metricsData: ProjectMetricsData | undefined;
@@ -293,12 +295,27 @@ export const ProjectProvider = (props: PropsWithChildren) => {
}, [projectData?.total_size, totalSize]);
useEffect(() => {
- if (projectId && allProjects && allProjects.length > 0) {
+ if (!projectId) return;
+
+ if (allProjects && allProjects.length > 0) {
const foundProject = allProjects.find(
(proj) => proj.project_id === projectId,
);
- setProject(foundProject || null);
+ if (foundProject) {
+ setProject(foundProject);
+ return;
+ }
}
+
+ getProjectByIdQuery(projectId)
+ .then((proj) => {
+ if (proj) {
+ setProject(proj);
+ }
+ })
+ .catch((err) => {
+ console.error("Failed to load project by ID", err);
+ });
}, [projectId, allProjects]);
const resetMetrics = () => {
@@ -494,6 +511,7 @@ export const ProjectProvider = (props: PropsWithChildren) => {
const projectContext: ProjectContextType = {
projectState: {
+ projectId: projectId || project?.project_id || "",
project,
activeStep,
metricsData,
diff --git a/frontend/app/api/[...anyRoutes]/route.tsx b/frontend/app/api/[...anyRoutes]/route.tsx
index c141a14..8eb9777 100644
--- a/frontend/app/api/[...anyRoutes]/route.tsx
+++ b/frontend/app/api/[...anyRoutes]/route.tsx
@@ -46,7 +46,7 @@ async function handle(request: Request) {
const config: AxiosRequestConfig = {
method: request.method.toUpperCase(),
url: relativeEndpoint,
- baseURL: process.env.NEXT_PUBLIC_API_BASE_URL,
+ baseURL: process.env.NEXT_PUBLIC_API_BASE_URL || "http://localhost:8080",
headers,
timeout: 180000, // 3 minutes timeout
};
diff --git a/frontend/config/constants.tsx b/frontend/config/constants.tsx
index 36c1abf..184e3c1 100644
--- a/frontend/config/constants.tsx
+++ b/frontend/config/constants.tsx
@@ -94,7 +94,7 @@ export const getModelDetails = (
}
};
-export const DEFAULT_EVALUATOR_MODEL = "gemini-2.5-flash";
+export const DEFAULT_EVALUATOR_MODEL = "gemini-flash-latest";
export const getProviders = (): ModelProvider[] => [
{
diff --git a/frontend/next.config.js b/frontend/next.config.js
index 4a554c7..030f88a 100644
--- a/frontend/next.config.js
+++ b/frontend/next.config.js
@@ -80,13 +80,12 @@ const nextConfig = {
},
];
},
+ experimental: {
+ proxyTimeout: 300000,
+ },
async rewrites() {
const backendUrl = process.env.NEXT_PUBLIC_API_BASE_URL || "http://localhost:8080";
return [
- {
- source: "/api/:path*",
- destination: `${backendUrl}/:path*`,
- },
{
source: "/streaming/:path*",
destination: `${backendUrl}/streaming/:path*`,
diff --git a/frontend/queries/clientQueries.ts b/frontend/queries/clientQueries.ts
index 3a38b47..f123910 100644
--- a/frontend/queries/clientQueries.ts
+++ b/frontend/queries/clientQueries.ts
@@ -118,6 +118,12 @@ export const getProjectsQuery = async (params: GetProjectsParams = {}) => {
)) as ProjectsDto;
};
+export const getProjectByIdQuery = async (projectId: string) => {
+ return (await getRequest(
+ `${backendEndpoints.PROJECTS.INDEX}/${projectId}`,
+ )) as Project;
+};
+
export const createProjectQuery = async (data: Project) =>
(await postRequest(backendEndpoints.PROJECTS.INDEX, data)) as Project;
@@ -289,20 +295,28 @@ export const deleteModelQuery = async (id: string) => {
export const inferenceChatCompletionQuery = async (
payload: InferenceChatCompletionPayload,
projectId: string,
-) =>
- (await postRequest(
+) => {
+ if (!projectId) {
+ throw new Error("Cannot execute chat completion: Project ID is required.");
+ }
+ return (await postRequest(
`inference/projects/${projectId}/${backendEndpoints.INFERENCE.QUICK_COMPARE_CHAT_COMPLETION}`,
payload,
)) as ChatCompletionResponse;
+};
export const inferenceAllChatCompletionBulkQuery = async (
payload: any,
projectId: string,
-) =>
- (await postRequest(
+) => {
+ if (!projectId) {
+ throw new Error("Cannot execute bulk inference: Project ID is required.");
+ }
+ return (await postRequest(
`/inference/projects/${projectId}/bulk/all`,
payload,
)) as ChatCompletionResponse;
+};
export const deleteUserDataQuery = () =>
deleteRequest(backendEndpoints.AUTH.DELETE_USER_DATA);
@@ -656,21 +670,29 @@ export const getSxsProjectBulkExport = async (
export const inferenceChatCompletionSxSQuery = async (
payload: InferenceChatCompletionSxSPayload,
projectId: string,
-) =>
- (await postRequest(
+) => {
+ if (!projectId) {
+ throw new Error("Cannot execute SxS inference: Project ID is required.");
+ }
+ return (await postRequest(
`sxs/${backendEndpoints.CONTAINERS}/${projectId}/inference`,
payload,
)) as ChatCompletionSxSResponse;
+};
export const continueChatBSxSQuery = async (
payload: ContinueChatBSxSQueryPayload,
projectId: string,
pairId: string,
-) =>
- (await postRequest(
+) => {
+ if (!projectId) {
+ throw new Error("Cannot continue SxS chat: Project ID is required.");
+ }
+ return (await postRequest(
`sxs/${backendEndpoints.CONTAINERS}/${projectId}/${pairId}/continue`,
payload,
)) as ChatCompletionSxSResponse;
+};
export const uploadDatasetFileQuery = async (
datasetId: string,
diff --git a/server/src/main/java/com/planck/planck/config/IntegrationTestSecurityConfiguration.java b/server/src/main/java/com/planck/planck/config/IntegrationTestSecurityConfiguration.java
index 806d855..4170af9 100644
--- a/server/src/main/java/com/planck/planck/config/IntegrationTestSecurityConfiguration.java
+++ b/server/src/main/java/com/planck/planck/config/IntegrationTestSecurityConfiguration.java
@@ -64,16 +64,19 @@ protected void doFilterInternal(
String email = PlanckConstants.DEFAULT_USER;
String firstName = PlanckConstants.DEFAULT_USER_FIRSTNAME;
String lastName = PlanckConstants.DEFAULT_USER_LASTNAME;
- User user =
- userService
- .findByEmail(email)
- .orElseGet(
- () -> {
- User newUser = new User(firstName, lastName, email, Role.USER);
- userService.save(newUser);
- humanEvaluatorService.createUserThumbsEvaluator(newUser);
- return newUser;
- });
+ User user;
+ synchronized (IntegrationTestSecurityConfiguration.class) {
+ user =
+ userService
+ .findByEmail(email)
+ .orElseGet(
+ () -> {
+ User newUser = new User(firstName, lastName, email, Role.USER);
+ userService.save(newUser);
+ humanEvaluatorService.createUserThumbsEvaluator(newUser);
+ return newUser;
+ });
+ }
UsernamePasswordAuthenticationToken auth =
new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(auth);
diff --git a/server/src/main/java/com/planck/planck/domain/inference/service/InferenceServiceImpl.java b/server/src/main/java/com/planck/planck/domain/inference/service/InferenceServiceImpl.java
index 5a504d4..12ca5d9 100644
--- a/server/src/main/java/com/planck/planck/domain/inference/service/InferenceServiceImpl.java
+++ b/server/src/main/java/com/planck/planck/domain/inference/service/InferenceServiceImpl.java
@@ -332,7 +332,7 @@ public boolean reRunInferenceAndUpdateResponse(InferenceDTO dto) {
user, chatResponse, model, project, previousMonitoring);
successful = true;
} catch (Exception e) {
- log.error("Exception while communicating with LLM: {}", e);
+ log.error("Exception while communicating with LLM", e);
dto.setReason(e.getMessage());
}
@@ -528,7 +528,7 @@ private ChatResponseWithLatency executeInferenceWithModel(
try {
return providerStrategy.chat(chatPrompt);
} catch (Exception e) {
- log.error("Exception while communicating with LLM: {}", e);
+ log.error("Exception while communicating with LLM", e);
dto.setReason(e.getMessage());
InferenceStatus inferenceStatus =
inferenceStatusService.createOrUpdateInferenceStatus(dto, InferenceStatusEnum.FAILED);
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/AnthropicStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/AnthropicStrategy.java
index abc96eb..72ab870 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/AnthropicStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/AnthropicStrategy.java
@@ -53,7 +53,8 @@ public Flux streamChat(List prompts) {
@SuppressWarnings("unchecked")
private AnthropicChatModel buildClientWithOptions() {
- var optionsBuilder = AnthropicChatModel.builder().apiKey(apiKey).modelName(modelName);
+ String resolvedModel = resolveModelName(modelName);
+ var optionsBuilder = AnthropicChatModel.builder().apiKey(apiKey).modelName(resolvedModel);
optionsBuilder.maxRetries(0);
if (this.properties.get("stop_sequences") != null
@@ -73,8 +74,14 @@ private AnthropicChatModel buildClientWithOptions() {
optionsBuilder.topK(Integer.valueOf(this.properties.get("top_k").toString()));
}
- if (this.properties.get("max_tokens") != null) {
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Object maxTokens =
+ this.properties.get("max_output_tokens") != null
+ ? this.properties.get("max_output_tokens")
+ : this.properties.get("max_tokens");
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(Integer.valueOf(maxTokens.toString()));
+ } else {
+ optionsBuilder.maxTokens(4096);
}
return optionsBuilder.build();
@@ -82,7 +89,9 @@ private AnthropicChatModel buildClientWithOptions() {
@SuppressWarnings("unchecked")
private StreamingChatModel buildStreamingClientWithOptions() {
- var optionsBuilder = AnthropicStreamingChatModel.builder().apiKey(apiKey).modelName(modelName);
+ String resolvedModel = resolveModelName(modelName);
+ var optionsBuilder =
+ AnthropicStreamingChatModel.builder().apiKey(apiKey).modelName(resolvedModel);
if (this.properties.get("stop_sequences") != null
&& !((List) this.properties.get("stop_sequences")).isEmpty()) {
@@ -101,10 +110,45 @@ private StreamingChatModel buildStreamingClientWithOptions() {
optionsBuilder.topK(Integer.valueOf(this.properties.get("top_k").toString()));
}
- if (this.properties.get("max_tokens") != null) {
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Object maxTokens =
+ this.properties.get("max_output_tokens") != null
+ ? this.properties.get("max_output_tokens")
+ : this.properties.get("max_tokens");
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(Integer.valueOf(maxTokens.toString()));
+ } else {
+ optionsBuilder.maxTokens(4096);
}
return optionsBuilder.build();
}
+
+ private String resolveModelName(String name) {
+ if (name == null || name.isBlank()) {
+ return "claude-3-5-sonnet-20241022";
+ }
+ switch (name) {
+ case "claude-3.7-sonnet":
+ case "claude-3-7-sonnet":
+ return "claude-3-7-sonnet-20250219";
+ case "claude-3.5-sonnet":
+ case "claude-3-5-sonnet":
+ return "claude-3-5-sonnet-20241022";
+ case "claude-3.5-haiku":
+ case "claude-3-5-haiku":
+ return "claude-3-5-haiku-20241022";
+ case "claude-3-opus":
+ return "claude-3-opus-20240229";
+ case "claude-3-haiku":
+ return "claude-3-haiku-20240307";
+ case "claude-3-sonnet":
+ return "claude-3-sonnet-20240229";
+ case "claude-opus-4-20250514":
+ return "claude-opus-4";
+ case "claude-sonnet-4-20250514":
+ return "claude-sonnet-4";
+ default:
+ return name;
+ }
+ }
}
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/DeepSeekStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/DeepSeekStrategy.java
index 054d507..0f67bdc 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/DeepSeekStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/DeepSeekStrategy.java
@@ -37,12 +37,15 @@ public class DeepSeekStrategy extends OpenAiCommonStrategy {
protected OpenAiChatModel buildClientWithOptions() {
var optionsBuilder = getBuilderWithCommonOptions();
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(maxTokens);
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Double frequencyPenalty = resolveFrequencyPenalty();
+ if (frequencyPenalty != null) {
+ optionsBuilder.frequencyPenalty(frequencyPenalty);
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
@@ -63,12 +66,15 @@ protected OpenAiChatModel buildClientWithOptions() {
protected StreamingChatModel buildStreamingClientWithOptions() {
var optionsBuilder = getStreamingBuilderWithCommonOptions();
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(maxTokens);
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Double frequencyPenalty = resolveFrequencyPenalty();
+ if (frequencyPenalty != null) {
+ optionsBuilder.frequencyPenalty(frequencyPenalty);
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GoogleStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GoogleStrategy.java
index f76aee1..6e99688 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GoogleStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GoogleStrategy.java
@@ -37,6 +37,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
+import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@@ -45,6 +46,7 @@
@Component("google")
@Scope("prototype")
+@Slf4j
public class GoogleStrategy extends ChatProviderStrategy {
@Autowired private DefaultRetryProperties defaultRetryProperties;
@@ -55,16 +57,26 @@ public ChatResponseWithLatency chat(List prompts) {
Content systemInstruction = null;
List contents = new ArrayList<>();
for (Prompt prompt : prompts) {
- if (prompt.getRole() == InputRole.SYSTEM && prompts.size() > 1) {
- systemInstruction = Content.fromParts(Part.fromText(prompt.getText()));
+ if (prompt.getRole() == InputRole.SYSTEM || prompt.getRole() == InputRole.DEVELOPER) {
+ if (prompt.getText() != null && !prompt.getText().trim().isEmpty()) {
+ systemInstruction = Content.fromParts(Part.fromText(prompt.getText()));
+ }
continue;
}
- contents.add(Content.fromParts(Part.fromText(prompt.getText())));
+ if (prompt.getText() != null && !prompt.getText().trim().isEmpty()) {
+ String role = prompt.getRole() == InputRole.ASSISTANT ? "model" : "user";
+ contents.add(
+ Content.builder().role(role).parts(List.of(Part.fromText(prompt.getText()))).build());
+ }
+ }
+ if (contents.isEmpty()) {
+ contents.add(Content.builder().role("user").parts(List.of(Part.fromText(" "))).build());
}
GenerateContentConfig config = getGenerationConfig(systemInstruction);
- return getResponseWithRetry(client, model.getName(), contents, config);
+ String targetModel = resolveModelName(model.getName());
+ return getResponseWithRetry(client, targetModel, contents, config);
}
@Override
@@ -74,18 +86,41 @@ public Flux streamChat(List prompts) {
Content systemInstruction = null;
List contents = new ArrayList<>();
for (Prompt prompt : prompts) {
- if (prompt.getRole() == InputRole.SYSTEM && prompts.size() > 1) {
- systemInstruction = Content.fromParts(Part.fromText(prompt.getText()));
+ if (prompt.getRole() == InputRole.SYSTEM || prompt.getRole() == InputRole.DEVELOPER) {
+ if (prompt.getText() != null && !prompt.getText().trim().isEmpty()) {
+ systemInstruction = Content.fromParts(Part.fromText(prompt.getText()));
+ }
continue;
}
- contents.add(Content.fromParts(Part.fromText(prompt.getText())));
+ if (prompt.getText() != null && !prompt.getText().trim().isEmpty()) {
+ String role = prompt.getRole() == InputRole.ASSISTANT ? "model" : "user";
+ contents.add(
+ Content.builder().role(role).parts(List.of(Part.fromText(prompt.getText()))).build());
+ }
+ }
+ if (contents.isEmpty()) {
+ contents.add(Content.builder().role("user").parts(List.of(Part.fromText(" "))).build());
}
GenerateContentConfig config = getGenerationConfig(systemInstruction);
long startTime = System.currentTimeMillis();
ResponseStream streamResponse;
+ String targetModel = resolveModelName(model.getName());
try {
- streamResponse = client.models.generateContentStream(model.getName(), contents, config);
+ try {
+ streamResponse = client.models.generateContentStream(targetModel, contents, config);
+ } catch (ApiException e) {
+ if (e.code() == 404) {
+ String fallbackModel = resolveAvailableGeminiModel(client, targetModel);
+ if (!fallbackModel.equals(targetModel)) {
+ streamResponse = client.models.generateContentStream(fallbackModel, contents, config);
+ } else {
+ throw e;
+ }
+ } else {
+ throw e;
+ }
+ }
} catch (Exception e) {
throw new LlmProviderException(
"Error while sending request to Gemini API: " + e.getMessage(), e);
@@ -144,12 +179,28 @@ private ChatResponseWithLatency getResponseWithRetry(
() -> {
try {
long startTime = System.currentTimeMillis();
- GenerateContentResponse response =
- client.models.generateContent(modelName, contents, config);
+ GenerateContentResponse response;
+ try {
+ response = client.models.generateContent(modelName, contents, config);
+ } catch (ApiException e) {
+ if (e.code() == 404) {
+ String fallbackModel = resolveAvailableGeminiModel(client, modelName);
+ if (!fallbackModel.equals(modelName)) {
+ response = client.models.generateContent(fallbackModel, contents, config);
+ } else {
+ throw e;
+ }
+ } else {
+ throw e;
+ }
+ }
latencyMs.set(System.currentTimeMillis() - startTime);
return new RetryUtils.StatusResult<>(response, HttpStatus.SC_OK);
} catch (ApiException e) {
- return new RetryUtils.StatusResult<>(null, e.code());
+ return new RetryUtils.StatusResult<>(null, e.code(), e.getMessage());
+ } catch (Exception e) {
+ return new RetryUtils.StatusResult<>(
+ null, HttpStatus.SC_INTERNAL_SERVER_ERROR, e.getMessage());
}
},
defaultRetryProperties);
@@ -161,6 +212,84 @@ private ChatResponseWithLatency getResponseWithRetry(
return new ChatResponseWithLatency(geminiResponse, latencyMs.longValue());
}
+ private String resolveAvailableGeminiModel(Client client, String requestedModel) {
+ try {
+ List available = new ArrayList<>();
+ for (com.google.genai.types.Model m : client.models.list(null)) {
+ String fullName = m.name().orElse("");
+ if (fullName.startsWith("models/")) {
+ fullName = fullName.substring(7);
+ }
+ if (!fullName.startsWith("gemini-")) {
+ continue;
+ }
+ if (fullName.contains("-tts")
+ || fullName.contains("-image")
+ || fullName.contains("-transcribe")
+ || fullName.contains("-robotics")
+ || fullName.contains("-computer-use")
+ || fullName.contains("-embedding")) {
+ continue;
+ }
+ List actions = m.supportedActions().orElse(List.of());
+ if (actions.isEmpty() || actions.contains("generateContent")) {
+ available.add(fullName);
+ }
+ }
+ log.info(
+ "Gemini API 404 for '{}'. Available text/chat Gemini models for this API key: {}",
+ requestedModel,
+ available);
+ if (available.isEmpty()) {
+ return requestedModel;
+ }
+ if (requestedModel.contains("pro")) {
+ if (available.contains("gemini-pro-latest")) {
+ return "gemini-pro-latest";
+ }
+ for (String candidate : available) {
+ if (candidate.contains("pro")) {
+ log.info("Auto-resolving Gemini pro model '{}' -> '{}'", requestedModel, candidate);
+ return candidate;
+ }
+ }
+ }
+ if (requestedModel.contains("lite")) {
+ if (available.contains("gemini-2.5-flash-lite")) {
+ return "gemini-2.5-flash-lite";
+ }
+ if (available.contains("gemini-flash-lite-latest")) {
+ return "gemini-flash-lite-latest";
+ }
+ for (String candidate : available) {
+ if (candidate.contains("lite")) {
+ return candidate;
+ }
+ }
+ }
+ if (requestedModel.contains("flash")) {
+ if (available.contains("gemini-flash-latest")) {
+ return "gemini-flash-latest";
+ }
+ if (available.contains("gemini-3.5-flash")) {
+ return "gemini-3.5-flash";
+ }
+ for (String candidate : available) {
+ if (candidate.contains("flash") && !candidate.contains("lite")) {
+ log.info("Auto-resolving Gemini flash model '{}' -> '{}'", requestedModel, candidate);
+ return candidate;
+ }
+ }
+ }
+ log.info("Auto-resolving Gemini model '{}' -> '{}'", requestedModel, available.get(0));
+ return available.get(0);
+ } catch (Exception ex) {
+ log.warn(
+ "Failed to list available Gemini models during fallback resolution: {}", ex.getMessage());
+ return requestedModel;
+ }
+ }
+
private GenerateContentConfig getGenerationConfig(Content systemInstruction) {
GenerateContentConfig.Builder configBuilder = GenerateContentConfig.builder();
@@ -168,50 +297,90 @@ private GenerateContentConfig getGenerationConfig(Content systemInstruction) {
configBuilder.systemInstruction(systemInstruction);
}
- if (this.properties.containsKey("temperature")) {
- configBuilder.temperature(Float.valueOf(this.properties.get("temperature").toString()));
- }
+ if (this.properties != null) {
+ if (this.properties.get("temperature") != null) {
+ configBuilder.temperature(Float.valueOf(this.properties.get("temperature").toString()));
+ }
- if (this.properties.containsKey("top_p")) {
- configBuilder.topP(Float.valueOf(this.properties.get("top_p").toString()));
- }
+ if (this.properties.get("top_p") != null) {
+ configBuilder.topP(Float.valueOf(this.properties.get("top_p").toString()));
+ }
- if (this.properties.containsKey("seed")) {
- configBuilder.seed(Integer.valueOf(this.properties.get("seed").toString()));
- }
+ if (this.properties.get("seed") != null) {
+ configBuilder.seed(Integer.valueOf(this.properties.get("seed").toString()));
+ }
- if (this.properties.containsKey("max_tokens")) {
- configBuilder.maxOutputTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
- }
+ if (this.properties.get("max_tokens") != null) {
+ configBuilder.maxOutputTokens(
+ Integer.valueOf(this.properties.get("max_tokens").toString()));
+ } else if (this.properties.get("max_output_tokens") != null) {
+ configBuilder.maxOutputTokens(
+ Integer.valueOf(this.properties.get("max_output_tokens").toString()));
+ }
- if (this.properties.containsKey("top_k")) {
- configBuilder.topK(Float.valueOf(this.properties.get("top_k").toString()));
- }
+ if (this.properties.get("top_k") != null) {
+ configBuilder.topK(Float.valueOf(this.properties.get("top_k").toString()));
+ }
- if (this.properties.containsKey("presence_penalty")) {
- configBuilder.presencePenalty(
- Float.valueOf(this.properties.get("presence_penalty").toString()));
- }
+ if (this.properties.get("presence_penalty") != null) {
+ configBuilder.presencePenalty(
+ Float.valueOf(this.properties.get("presence_penalty").toString()));
+ }
- if (this.properties.containsKey("frequency_penalty")) {
- configBuilder.frequencyPenalty(
- Float.valueOf(this.properties.get("frequency_penalty").toString()));
- }
+ if (this.properties.get("frequency_penalty") != null) {
+ configBuilder.frequencyPenalty(
+ Float.valueOf(this.properties.get("frequency_penalty").toString()));
+ }
- if (this.properties.containsKey("response_log_probs")) {
- configBuilder.responseLogprobs(
- Boolean.valueOf(this.properties.get("response_log_probs").toString()));
- }
+ if (this.properties.get("response_log_probs") != null) {
+ configBuilder.responseLogprobs(
+ Boolean.valueOf(this.properties.get("response_log_probs").toString()));
+ }
- if (this.properties.containsKey("log_probs")) {
- configBuilder.logprobs(Integer.valueOf(this.properties.get("log_probs").toString()));
- configBuilder.responseLogprobs(true);
+ if (this.properties.get("log_probs") != null) {
+ configBuilder.logprobs(Integer.valueOf(this.properties.get("log_probs").toString()));
+ configBuilder.responseLogprobs(true);
+ }
}
- configBuilder.thinkingConfig(ThinkingConfig.builder().includeThoughts(true).build());
+ String targetModel = resolveModelName(modelName);
+ if (targetModel != null && targetModel.contains("thinking")) {
+ configBuilder.thinkingConfig(ThinkingConfig.builder().includeThoughts(true).build());
+ }
return configBuilder.build();
}
+ private String resolveModelName(String name) {
+ if (name == null || name.isBlank()) {
+ return "gemini-flash-latest";
+ }
+ if (name.equals("gemini-2.5-flash")) {
+ return "gemini-flash-latest";
+ }
+ if (name.equals("gemini-2.5-pro")) {
+ return "gemini-pro-latest";
+ }
+ if (name.startsWith("gemini-2.0")
+ || name.startsWith("gemini-1.5")
+ || name.equals("gemini-flash")
+ || name.equals("gemini-pro")) {
+ if (name.contains("pro")) {
+ return "gemini-pro-latest";
+ }
+ if (name.contains("lite")) {
+ return "gemini-2.5-flash-lite";
+ }
+ return "gemini-flash-latest";
+ }
+ if (name.startsWith("gemma-3")) {
+ return "gemma-4-31b-it";
+ }
+ if (name.startsWith("learnlm")) {
+ return "gemini-flash-latest";
+ }
+ return name;
+ }
+
private Client buildClient() {
Client client = Client.builder().apiKey(apiKey).build();
return client;
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GrokStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GrokStrategy.java
index 2146577..e865e33 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GrokStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/GrokStrategy.java
@@ -37,12 +37,15 @@ public class GrokStrategy extends OpenAiCommonStrategy {
protected OpenAiChatModel buildClientWithOptions() {
var optionsBuilder = getBuilderWithCommonOptions();
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(maxTokens);
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Double frequencyPenalty = resolveFrequencyPenalty();
+ if (frequencyPenalty != null) {
+ optionsBuilder.frequencyPenalty(frequencyPenalty);
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
@@ -63,12 +66,15 @@ protected OpenAiChatModel buildClientWithOptions() {
protected StreamingChatModel buildStreamingClientWithOptions() {
var optionsBuilder = getStreamingBuilderWithCommonOptions();
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(maxTokens);
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Double frequencyPenalty = resolveFrequencyPenalty();
+ if (frequencyPenalty != null) {
+ optionsBuilder.frequencyPenalty(frequencyPenalty);
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/HuggingFaceStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/HuggingFaceStrategy.java
index ff2e670..75ce2a0 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/HuggingFaceStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/HuggingFaceStrategy.java
@@ -37,12 +37,15 @@ public class HuggingFaceStrategy extends OpenAiCommonStrategy {
protected OpenAiChatModel buildClientWithOptions() {
var optionsBuilder = getBuilderWithCommonOptions();
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(maxTokens);
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Double frequencyPenalty = resolveFrequencyPenalty();
+ if (frequencyPenalty != null) {
+ optionsBuilder.frequencyPenalty(frequencyPenalty);
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
@@ -63,12 +66,15 @@ protected OpenAiChatModel buildClientWithOptions() {
protected StreamingChatModel buildStreamingClientWithOptions() {
var optionsBuilder = getStreamingBuilderWithCommonOptions();
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(maxTokens);
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Double frequencyPenalty = resolveFrequencyPenalty();
+ if (frequencyPenalty != null) {
+ optionsBuilder.frequencyPenalty(frequencyPenalty);
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/MistralStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/MistralStrategy.java
index 991127c..8fcda41 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/MistralStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/MistralStrategy.java
@@ -53,15 +53,25 @@ public Flux streamChat(List prompts) {
@SuppressWarnings("unchecked")
private MistralAiChatModel buildClientWithOptions() {
- var optionsBuilder = MistralAiChatModel.builder().apiKey(apiKey).modelName(modelName);
+ String resolvedModel = resolveModelName(modelName);
+ var optionsBuilder = MistralAiChatModel.builder().apiKey(apiKey).modelName(resolvedModel);
optionsBuilder.maxRetries(0);
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ Object maxTokens =
+ this.properties.get("max_output_tokens") != null
+ ? this.properties.get("max_output_tokens")
+ : this.properties.get("max_tokens");
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(Integer.valueOf(maxTokens.toString()));
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Object freqPenalty =
+ this.properties.get("frequency_penalty") != null
+ ? this.properties.get("frequency_penalty")
+ : this.properties.get("frequence_penalty");
+ if (freqPenalty != null) {
+ optionsBuilder.frequencyPenalty(Double.valueOf(freqPenalty.toString()));
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
@@ -86,14 +96,25 @@ private MistralAiChatModel buildClientWithOptions() {
@SuppressWarnings("unchecked")
private StreamingChatModel buildStreamingClientWithOptions() {
- var optionsBuilder = MistralAiStreamingChatModel.builder().apiKey(apiKey).modelName(modelName);
-
- if (this.properties.get("max_tokens") != null)
- optionsBuilder.maxTokens(Integer.valueOf(this.properties.get("max_tokens").toString()));
+ String resolvedModel = resolveModelName(modelName);
+ var optionsBuilder =
+ MistralAiStreamingChatModel.builder().apiKey(apiKey).modelName(resolvedModel);
+
+ Object maxTokens =
+ this.properties.get("max_output_tokens") != null
+ ? this.properties.get("max_output_tokens")
+ : this.properties.get("max_tokens");
+ if (maxTokens != null) {
+ optionsBuilder.maxTokens(Integer.valueOf(maxTokens.toString()));
+ }
- if (this.properties.get("frequence_penalty") != null)
- optionsBuilder.frequencyPenalty(
- Double.valueOf(this.properties.get("frequence_penalty").toString()));
+ Object freqPenalty =
+ this.properties.get("frequency_penalty") != null
+ ? this.properties.get("frequency_penalty")
+ : this.properties.get("frequence_penalty");
+ if (freqPenalty != null) {
+ optionsBuilder.frequencyPenalty(Double.valueOf(freqPenalty.toString()));
+ }
if (this.properties.get("presence_penalty") != null)
optionsBuilder.presencePenalty(
@@ -115,4 +136,21 @@ private StreamingChatModel buildStreamingClientWithOptions() {
return optionsBuilder.build();
}
+
+ private String resolveModelName(String name) {
+ if (name == null || name.isBlank()) {
+ return "mistral-small-latest";
+ }
+ switch (name) {
+ case "mistral-tiny":
+ case "mistral-tiny-2312":
+ case "mistral-small-2312":
+ return "mistral-small-latest";
+ case "mistral-medium-2312":
+ case "mistral-medium":
+ return "mistral-medium-latest";
+ default:
+ return name;
+ }
+ }
}
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAIStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAIStrategy.java
index 96e40d1..aa12444 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAIStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAIStrategy.java
@@ -129,7 +129,7 @@ private ChatResponseWithLatency getResponseWithRetry(
latencyMs.set(System.currentTimeMillis() - startTime);
return new RetryUtils.StatusResult<>(response, HttpStatus.SC_OK);
} catch (OpenAIException e) {
- throw new RuntimeException(e.getMessage());
+ throw new RuntimeException(e);
}
},
defaultRetryProperties);
@@ -146,20 +146,31 @@ private OpenAIClient buildClient() {
return client;
}
+ private boolean isReasoningModel(String model) {
+ if (model == null) return false;
+ String lower = model.toLowerCase();
+ return lower.startsWith("o1") || lower.startsWith("o3") || lower.startsWith("o4");
+ }
+
private ResponseCreateParams getParams(List prompts) {
ResponseCreateParams.Builder paramsBuilder =
ResponseCreateParams.builder()
.inputOfResponse(getInputFromMessages(prompts))
.model(ChatModel.of(modelName));
- if (this.properties.get("max_tokens") != null)
- paramsBuilder.maxOutputTokens(Long.valueOf(this.properties.get("max_tokens").toString()));
+ Object maxTokens =
+ this.properties.get("max_output_tokens") != null
+ ? this.properties.get("max_output_tokens")
+ : this.properties.get("max_tokens");
+ if (maxTokens != null) paramsBuilder.maxOutputTokens(Long.valueOf(maxTokens.toString()));
- if (this.properties.get("temperature") != null)
- paramsBuilder.temperature(Double.valueOf(this.properties.get("temperature").toString()));
+ if (!isReasoningModel(modelName)) {
+ if (this.properties.get("temperature") != null)
+ paramsBuilder.temperature(Double.valueOf(this.properties.get("temperature").toString()));
- if (this.properties.get("top_p") != null)
- paramsBuilder.topP(Double.valueOf(this.properties.get("top_p").toString()));
+ if (this.properties.get("top_p") != null)
+ paramsBuilder.topP(Double.valueOf(this.properties.get("top_p").toString()));
+ }
if (this.properties.get("top_logprobs") != null)
paramsBuilder.topLogprobs(Long.valueOf(this.properties.get("top_logprobs").toString()));
diff --git a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAiCommonStrategy.java b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAiCommonStrategy.java
index bdc5731..7c3d290 100644
--- a/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAiCommonStrategy.java
+++ b/server/src/main/java/com/planck/planck/llmproviders/modelproviders/OpenAiCommonStrategy.java
@@ -63,9 +63,9 @@ protected OpenAiChatModelBuilder getBuilderWithCommonOptions() {
if (this.properties.get("top_p") != null)
optionsBuilder.topP(Double.valueOf(this.properties.get("top_p").toString()));
- if (this.properties.get("max_completion_tokens") != null) {
- optionsBuilder.maxCompletionTokens(
- Integer.valueOf(this.properties.get("max_completion_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxCompletionTokens(maxTokens);
}
optionsBuilder.returnThinking(true);
return optionsBuilder;
@@ -81,14 +81,33 @@ protected OpenAiStreamingChatModelBuilder getStreamingBuilderWithCommonOptions()
if (this.properties.get("top_p") != null)
optionsBuilder.topP(Double.valueOf(this.properties.get("top_p").toString()));
- if (this.properties.get("max_completion_tokens") != null) {
- optionsBuilder.maxCompletionTokens(
- Integer.valueOf(this.properties.get("max_completion_tokens").toString()));
+ Integer maxTokens = resolveMaxTokens();
+ if (maxTokens != null) {
+ optionsBuilder.maxCompletionTokens(maxTokens);
}
optionsBuilder.returnThinking(true);
return optionsBuilder;
}
+ protected Integer resolveMaxTokens() {
+ Object val = this.properties.get("max_output_tokens");
+ if (val == null) val = this.properties.get("max_tokens");
+ if (val == null) val = this.properties.get("max_completion_tokens");
+ if (val != null) {
+ return Integer.valueOf(val.toString());
+ }
+ return null;
+ }
+
+ protected Double resolveFrequencyPenalty() {
+ Object val = this.properties.get("frequency_penalty");
+ if (val == null) val = this.properties.get("frequence_penalty");
+ if (val != null) {
+ return Double.valueOf(val.toString());
+ }
+ return null;
+ }
+
protected abstract OpenAiChatModel buildClientWithOptions();
protected abstract StreamingChatModel buildStreamingClientWithOptions();
diff --git a/server/src/main/java/com/planck/planck/util/RetryUtils.java b/server/src/main/java/com/planck/planck/util/RetryUtils.java
index d8d1071..cd66b9a 100644
--- a/server/src/main/java/com/planck/planck/util/RetryUtils.java
+++ b/server/src/main/java/com/planck/planck/util/RetryUtils.java
@@ -88,17 +88,26 @@ private static CompletableFuture executeWithRetryInternal(RetryContext
context.lastStatusCode = result.statusCode;
context.errorMessage = result.errorMessage;
- return CompletableFuture.failedFuture(new RuntimeException());
+ String msg =
+ result.errorMessage != null && !result.errorMessage.isEmpty()
+ ? result.errorMessage
+ : "Request failed with HTTP " + result.statusCode;
+ return CompletableFuture.failedFuture(new RuntimeException(msg));
})
.handle(
(result, throwable) -> {
if (throwable != null) {
if (!shouldRetry(context.lastStatusCode, context.attempt, context.config)) {
- String errorMessage = "";
- if (context.errorMessage != null) {
+ String errorMessage;
+ if (context.errorMessage != null && !context.errorMessage.isEmpty()) {
errorMessage = context.errorMessage;
+ } else if (throwable.getMessage() != null && !throwable.getMessage().isEmpty()) {
+ errorMessage = throwable.getMessage();
+ } else if (throwable.getCause() != null
+ && throwable.getCause().getMessage() != null) {
+ errorMessage = throwable.getCause().getMessage();
} else {
- errorMessage += throwable.getMessage();
+ errorMessage = "Request failed with status " + context.lastStatusCode;
}
throw new RuntimeException(errorMessage, throwable);
}
diff --git a/server/src/main/resources/liquibase/data/model.csv b/server/src/main/resources/liquibase/data/model.csv
index 11ce03b..4e0f4e4 100644
--- a/server/src/main/resources/liquibase/data/model.csv
+++ b/server/src/main/resources/liquibase/data/model.csv
@@ -8,18 +8,18 @@ model_e04fc2f3-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Anthropic's most
model_e0517ac2-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Anthropic's most balanced model between intelligence and speed.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": null}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 4096, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 4096}}",0,Claude Sonnet 3,claude-3-sonnet-20240229,"{""seed"": null, ""top_p"": 1.0, ""temperature"": null, ""stop_sequences"": [], ""max_output_tokens"": 4096}",ANTHROPIC,SYSTEM,2025-10-21 06:19:18,https://api.anthropic.com/v1/messages,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-02-29 00:00:00
model_e0532205-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Anthropic's most powerful model for complex reasoning and analysis.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": null}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 32000, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 32000}}",0,Claude Opus 4,claude-opus-4-20250514,"{""seed"": null, ""top_p"": 1.0, ""temperature"": null, ""stop_sequences"": [], ""max_output_tokens"": 32000}",ANTHROPIC,SYSTEM,2025-10-21 06:19:18,https://api.anthropic.com/v1/messages,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-05-14 00:00:00
model_e054f733-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Anthropic's balanced model between intelligence and speed.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": null}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 64000, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 64000}}",0,Claude Sonnet 4,claude-sonnet-4-20250514,"{""seed"": null, ""top_p"": 1.0, ""temperature"": null, ""stop_sequences"": [], ""max_output_tokens"": 64000}",ANTHROPIC,SYSTEM,2025-10-21 06:19:18,https://api.anthropic.com/v1/messages,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-05-14 00:00:00
-model_e05c4290-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 2.0 Flash is a fast, efficient model that excels across diverse tasks, released in January of 2025.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 2.0 Flash 001,gemini-2.0-flash-001,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-001:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-01-01 00:00:00
-model_e05e18cd-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 2.0 Flash Lite is a lightweight, fast model for efficient processing.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 2.0 Flash-Lite,gemini-2.0-flash-lite,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-lite:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-12-01 00:00:00
-model_e05fcd85-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Preview release (April 17th, 2025) of Gemini 2.5 Flash","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 2.0 Flash Thinking Experimental,gemini-2.0-flash-thinking-exp,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-thinking-exp:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-04-17 00:00:00
-model_e061a42c-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 2.0 Flash is a fast, efficient model that excels across diverse tasks.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 2.0 Flash,gemini-2.0-flash,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-12-01 00:00:00
-model_e0689285-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"General Availability release (June 17, 2025) of Gemini 2.5 Flash. Best model in terms of price and performance with well-rounded capabilities. Features thinking capabilities and supports text, code, images, audio, and video inputs.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 2.5 Flash,gemini-2.5-flash,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-06-17 00:00:00
-model_e06fbdb4-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"General Availability release (June 17, 2025) of Gemini 2.5 Pro. Most advanced reasoning Gemini model, capable of solving complex problems. Supports text, code, images, audio, and video inputs.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 2.5 Pro,gemini-2.5-pro,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-06-17 00:00:00
-model_e071774a-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Gemma 3 12B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",0,Gemma 3 12B,gemma-3-12b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-12b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
-model_e0735c1d-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3 1B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",0,Gemma 3 1B,gemma-3-1b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-1b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
-model_e0752adb-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3 27B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",0,Gemma 3 27B,gemma-3-27b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-27b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
-model_e076e1bb-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3 4B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",0,Gemma 3 4B,gemma-3-4b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-4b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
-model_e078ebc5-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3n e4B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",0,Gemma 3n e4B,gemma-3n-e4b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3n-e4b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
-model_e07b1068-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,"Experimental version of LearnLM 2.0 Flash, designed for educational applications.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 32768}}",0,LearnLM 2.0 Flash Experimental,learnlm-2.0-flash-experimental,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 32768}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/learnlm-2.0-flash-experimental:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-11-01 00:00:00
+model_e05c4290-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 2.0 Flash is a fast, efficient model that excels across diverse tasks, released in January of 2025.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",1,Gemini 2.0 Flash 001,gemini-2.0-flash-001,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-001:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-01-01 00:00:00
+model_e05e18cd-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 2.0 Flash Lite is a lightweight, fast model for efficient processing.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",1,Gemini 2.0 Flash-Lite,gemini-2.0-flash-lite,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-lite:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-12-01 00:00:00
+model_e05fcd85-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Preview release (April 17th, 2025) of Gemini 2.5 Flash","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",1,Gemini 2.0 Flash Thinking Experimental,gemini-2.0-flash-thinking-exp,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-thinking-exp:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-04-17 00:00:00
+model_e061a42c-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 2.0 Flash is a fast, efficient model that excels across diverse tasks.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",1,Gemini 2.0 Flash,gemini-2.0-flash,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-12-01 00:00:00
+model_e0689285-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Latest release of Gemini Flash. Fast and efficient multimodal model for text, code, and reasoning.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini Flash Latest,gemini-flash-latest,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-flash-latest:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-06-17 00:00:00
+model_e06fbdb4-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Latest release of Gemini Pro. Most advanced reasoning Gemini model, capable of solving complex problems.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini Pro Latest,gemini-pro-latest,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-pro-latest:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-06-17 00:00:00
+model_e071774a-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Gemma 3 12B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",1,Gemma 3 12B,gemma-3-12b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-12b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
+model_e0735c1d-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3 1B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",1,Gemma 3 1B,gemma-3-1b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-1b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
+model_e0752adb-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3 27B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",1,Gemma 3 27B,gemma-3-27b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-27b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
+model_e076e1bb-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3 4B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",1,Gemma 3 4B,gemma-3-4b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3-4b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
+model_e078ebc5-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Gemma 3n e4B,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 8192, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 8192}}",1,Gemma 3n e4B,gemma-3n-e4b-it,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 8192}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/gemma-3n-e4b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-06-01 00:00:00
+model_e07b1068-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,"Experimental version of LearnLM 2.0 Flash, designed for educational applications.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 0.95}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 1.0}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Max Output Tokens for the model."", ""defaultValue"": 32768}}",1,LearnLM 2.0 Flash Experimental,learnlm-2.0-flash-experimental,"{""seed"": null, ""top_p"": 0.95, ""temperature"": 1.0, ""stop_sequences"": [], ""max_output_tokens"": 32768}",GOOGLE,SYSTEM,2025-10-21 06:19:19,https://generativelanguage.googleapis.com/v1beta/models/learnlm-2.0-flash-experimental:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-11-01 00:00:00
model_e07ce590-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official codestral-2405 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Codestral 2405,codestral-2405,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e07ef16d-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official codestral-2501 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 262144, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 262144}}",0,Codestral 2411 Rc5,codestral-2411-rc5,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 262144}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0812e6f-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official codestral-2501 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 262144, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 262144}}",0,Codestral 2412,codestral-2412,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 262144}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
@@ -36,23 +36,23 @@ model_e094b461-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral
model_e0968627-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-large-2411 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Large 2.1,mistral-large-2411,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-11-18 00:00:00
model_e0984abf-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-large-2411 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Large Latest,mistral-large-latest,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e09a068d-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official pixtral-large-2411 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Large Pixtral 2411,mistral-large-pixtral-2411,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
-model_e09c3d72-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-medium-2312 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Medium 2312,mistral-medium-2312,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
+model_e09c3d72-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-medium-2312 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",1,Mistral Medium 2312,mistral-medium-2312,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e09e362d-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-medium-2505 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Medium 2505,mistral-medium-2505,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0a00420-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-medium-2505 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Medium Latest,mistral-medium-latest,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0a1d35c-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-medium-2505 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Medium,mistral-medium,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0a4113b-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-saba-2502 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Saba 2502,mistral-saba-2502,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0a61cb5-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-saba-2502 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Saba Latest,mistral-saba-latest,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
-model_e0a7c7e5-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mixtral-8x7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Small 2312,mistral-small-2312,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
+model_e0a7c7e5-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mixtral-8x7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",1,Mistral Small 2312,mistral-small-2312,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0a979e4-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-small-2402 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Small 2402,mistral-small-2402,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0ab3d55-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-small-2409 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Small 2409,mistral-small-2409,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0acf4f1-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-small-2501 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Small 3,mistral-small-2501,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-01-30 00:00:00
model_e0af604b-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-small-2503 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Small 3.1,mistral-small-2503,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-03-17 00:00:00
model_e0b106ce-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official mistral-small-2503 Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Small Latest,mistral-small-latest,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0b2e0df-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mixtral-8x7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Small,mistral-small,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
-model_e0b4807c-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Tiny 2312,mistral-tiny-2312,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
+model_e0b4807c-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",1,Mistral Tiny 2312,mistral-tiny-2312,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0b627cd-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-nemo Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Tiny 2407,mistral-tiny-2407,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0b7dcd4-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-nemo Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Mistral Tiny Latest,mistral-tiny-latest,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
-model_e0b999b8-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Mistral Tiny,mistral-tiny,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
+model_e0b999b8-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",1,Mistral Tiny,mistral-tiny,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0bb750e-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,First mamba 2 open source model (API v July 2024).,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 256000, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 256000}}",0,Open Codestral Mamba,open-codestral-mamba,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 256000}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0bd207d-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-7b Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 32768, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 32768}}",0,Open Mistral 7b,open-mistral-7b,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.7, ""stop_sequences"": [], ""max_output_tokens"": 32768}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
model_e0bef8c4-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Official open-mistral-nemo Mistral AI model,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Random Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for reproducible outputs."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Nucleus sampling parameter."", ""defaultValue"": 1.0}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Controls randomness. Lower values make the model more deterministic."", ""defaultValue"": 0.3}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Specifies sequences where the API will stop generating further tokens."", ""defaultValue"": []}, ""max_output_tokens"": {""key"": ""max_output_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 131072, ""minValue"": 1, ""description"": ""Maximum number of tokens to generate."", ""defaultValue"": 131072}}",0,Open Mistral Nemo 2407,open-mistral-nemo-2407,"{""seed"": null, ""top_p"": 1.0, ""temperature"": 0.3, ""stop_sequences"": [], ""max_output_tokens"": 131072}",MISTRAL,SYSTEM,2025-10-21 06:19:19,https://api.mistral.ai/v1/chat/completions,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2023-01-01 00:00:00
@@ -94,3 +94,11 @@ model_e0ff1ea7-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,Fast version of
model_e100ba07-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,DeepSeek Chat is a conversational AI model designed for general chat and reasoning tasks.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 1.0}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 4096, ""minValue"": 1, ""description"": ""Max Tokens for the model."", ""defaultValue"": 4096}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}}",0,DeepSeek Chat,deepseek-chat,"{""seed"": null, ""top_p"": 1.0, ""max_tokens"": 4096, ""temperature"": 0.7, ""stop_sequences"": []}",DEEPSEEK,SYSTEM,2025-10-21 06:19:19,https://api.deepseek.com/v1/,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-01-01 00:00:00
model_e1029f6d-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:19,"DeepSeek Reasoner is a reasoning model developed by DeepSeek. Before delivering the final answer, the model first generates a Chain of Thought (CoT) to enhance the accuracy of its responses.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""Seed for the model."", ""defaultValue"": null}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1.0, ""minValue"": 0.0, ""description"": ""Top P for the model."", ""defaultValue"": 1.0}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Tokens"", ""maxValue"": 4096, ""minValue"": 1, ""description"": ""Max Tokens for the model."", ""defaultValue"": 4096}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2.0, ""minValue"": 0.0, ""description"": ""Temperature for the model."", ""defaultValue"": 0.7}, ""stop_sequences"": {""key"": ""stop_sequences"", ""type"": ""STRING_ARRAY"", ""label"": ""Stop Sequences"", ""maxValue"": null, ""minValue"": null, ""description"": ""Stop Sequences for the model."", ""defaultValue"": null}}",0,DeepSeek Reasoner,deepseek-reasoner,"{""seed"": null, ""top_p"": 1.0, ""max_tokens"": 4096, ""temperature"": 0.7, ""stop_sequences"": []}",DEEPSEEK,SYSTEM,2025-10-21 06:19:19,https://api.deepseek.com/v1/,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2024-01-01 00:00:00
model_f9be2939-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:20:01,"General Availability release of Gemini 2.5 Flash Lite. A lightweight, fast model for efficient processing with well-rounded capabilities. Features thinking capabilities and supports text, code, images, audio, and video inputs.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 2.5 Flash Lite,gemini-2.5-flash-lite,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:20:01,https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2025-06-17 00:00:00
+model_e0895001-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 3.8 Flash release. Fast, high-intelligence multimodal model.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 3.8 Flash,gemini-3.8-flash,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00
+model_e0895002-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Gemini 3.7 Flash release.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 3.7 Flash,gemini-3.7-flash,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00
+model_e0895003-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Gemini 3.5 Flash release.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 3.5 Flash,gemini-3.5-flash,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00
+model_e0895004-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,"Gemini 3.5 Flash Lite release. Lightweight, low-latency model.","{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 3.5 Flash Lite,gemini-3.5-flash-lite,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash-lite:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00
+model_e0895005-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Gemini 3.1 Pro Preview release. High-capability reasoning model.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini 3.1 Pro Preview,gemini-3.1-pro-preview,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00
+model_e0895006-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Latest release of Gemini Flash-Lite.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemini Flash-Lite Latest,gemini-flash-lite-latest,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemini-flash-lite-latest:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00
+model_e0895007-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Gemma 4 31B instruction-tuned open model.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemma 4 31B IT,gemma-4-31b-it,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemma-4-31b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00
+model_e0895008-ae45-11f0-93fc-0242ac110002,,2025-10-21 06:19:18,Gemma 4 26B A4B instruction-tuned Mixture-of-Experts open model.,"{""seed"": {""key"": ""seed"", ""type"": ""INTEGER"", ""label"": ""Seed"", ""maxValue"": 2147483647, ""minValue"": -2147483648, ""description"": ""The seed for the model."", ""defaultValue"": null}, ""top_k"": {""key"": ""top_k"", ""type"": ""INTEGER"", ""label"": ""Top K"", ""maxValue"": 100, ""minValue"": 1, ""description"": ""The top K for the model."", ""defaultValue"": 1}, ""top_p"": {""key"": ""top_p"", ""type"": ""DOUBLE"", ""label"": ""Top P"", ""maxValue"": 1, ""minValue"": 0, ""description"": ""The top P for the model."", ""defaultValue"": 0.95}, ""log_probs"": {""key"": ""log_probs"", ""type"": ""INTEGER"", ""label"": ""Log Probs"", ""maxValue"": 5, ""minValue"": 1, ""description"": ""This sets the number of top logprobs to return at each decoding step."", ""defaultValue"": null}, ""max_tokens"": {""key"": ""max_tokens"", ""type"": ""INTEGER"", ""label"": ""Max Output Tokens"", ""maxValue"": 65535, ""minValue"": 1, ""description"": ""The max output tokens for the model."", ""defaultValue"": 65535}, ""temperature"": {""key"": ""temperature"", ""type"": ""DOUBLE"", ""label"": ""Temperature"", ""maxValue"": 2, ""minValue"": 0, ""description"": ""The temperature for the model."", ""defaultValue"": 1}, ""presence_penalty"": {""key"": ""presence_penalty"", ""type"": ""DOUBLE"", ""label"": ""Presence Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The presence penalty for the model."", ""defaultValue"": 0}, ""frequency_penalty"": {""key"": ""frequency_penalty"", ""type"": ""DOUBLE"", ""label"": ""Frequency Penalty"", ""maxValue"": null, ""minValue"": null, ""description"": ""The frequency penalty for the model."", ""defaultValue"": 0}, ""response_log_probs"": {""key"": ""response_log_probs"", ""type"": ""BOOLEAN"", ""label"": ""Response Log Probs"", ""maxValue"": null, ""minValue"": null, ""description"": ""Optional. If true, export the logprobs results in response."", ""defaultValue"": null}}",0,Gemma 4 26B A4B IT,gemma-4-26b-a4b-it,"{""top_p"": 0.95, ""max_tokens"": 8192, ""temperature"": 1.0}",GOOGLE,SYSTEM,2025-10-21 06:19:18,https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent,,user-e040fe2f-ae45-11f0-93fc-0242ac110002,2026-06-01 00:00:00