|
|
@@ -45,7 +45,7 @@ interface ApiOptionsProps {
|
|
|
}
|
|
|
|
|
|
const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) => {
|
|
|
- const { apiConfiguration, setApiConfiguration, uriScheme, handleInputChange } = useExtensionState()
|
|
|
+ const { apiConfiguration, uriScheme, handleInputChange } = useExtensionState()
|
|
|
const [ollamaModels, setOllamaModels] = useState<string[]>([])
|
|
|
const [lmStudioModels, setLmStudioModels] = useState<string[]>([])
|
|
|
const [vsCodeLmModels, setVsCodeLmModels] = useState<vscodemodels.LanguageModelChatSelector[]>([])
|
|
|
@@ -571,7 +571,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
{
|
|
|
iconName: "refresh",
|
|
|
onClick: () =>
|
|
|
- handleInputChange("openAiCusModelInfo")({
|
|
|
+ handleInputChange("openAiCustomModelInfo")({
|
|
|
target: { value: openAiModelInfoSaneDefaults },
|
|
|
}),
|
|
|
},
|
|
|
@@ -613,7 +613,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
<div className="token-config-field">
|
|
|
<VSCodeTextField
|
|
|
value={
|
|
|
- apiConfiguration?.openAiCusModelInfo?.maxTokens?.toString() ||
|
|
|
+ apiConfiguration?.openAiCustomModelInfo?.maxTokens?.toString() ||
|
|
|
openAiModelInfoSaneDefaults.maxTokens?.toString() ||
|
|
|
""
|
|
|
}
|
|
|
@@ -621,7 +621,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
style={{
|
|
|
width: "100%",
|
|
|
borderColor: (() => {
|
|
|
- const value = apiConfiguration?.openAiCusModelInfo?.maxTokens
|
|
|
+ const value = apiConfiguration?.openAiCustomModelInfo?.maxTokens
|
|
|
if (!value) return "var(--vscode-input-border)"
|
|
|
return value > 0
|
|
|
? "var(--vscode-charts-green)"
|
|
|
@@ -631,10 +631,10 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
title="Maximum number of tokens the model can generate in a single response"
|
|
|
onChange={(e: any) => {
|
|
|
const value = parseInt(e.target.value)
|
|
|
- handleInputChange("openAiCusModelInfo")({
|
|
|
+ handleInputChange("openAiCustomModelInfo")({
|
|
|
target: {
|
|
|
value: {
|
|
|
- ...(apiConfiguration?.openAiCusModelInfo ||
|
|
|
+ ...(apiConfiguration?.openAiCustomModelInfo ||
|
|
|
openAiModelInfoSaneDefaults),
|
|
|
maxTokens: isNaN(value) ? undefined : value,
|
|
|
},
|
|
|
@@ -664,7 +664,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
<div className="token-config-field">
|
|
|
<VSCodeTextField
|
|
|
value={
|
|
|
- apiConfiguration?.openAiCusModelInfo?.contextWindow?.toString() ||
|
|
|
+ apiConfiguration?.openAiCustomModelInfo?.contextWindow?.toString() ||
|
|
|
openAiModelInfoSaneDefaults.contextWindow?.toString() ||
|
|
|
""
|
|
|
}
|
|
|
@@ -672,7 +672,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
style={{
|
|
|
width: "100%",
|
|
|
borderColor: (() => {
|
|
|
- const value = apiConfiguration?.openAiCusModelInfo?.contextWindow
|
|
|
+ const value = apiConfiguration?.openAiCustomModelInfo?.contextWindow
|
|
|
if (!value) return "var(--vscode-input-border)"
|
|
|
return value > 0
|
|
|
? "var(--vscode-charts-green)"
|
|
|
@@ -682,10 +682,10 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
title="Total number of tokens (input + output) the model can process in a single request"
|
|
|
onChange={(e: any) => {
|
|
|
const parsed = parseInt(e.target.value)
|
|
|
- handleInputChange("openAiCusModelInfo")({
|
|
|
+ handleInputChange("openAiCustomModelInfo")({
|
|
|
target: {
|
|
|
value: {
|
|
|
- ...(apiConfiguration?.openAiCusModelInfo ||
|
|
|
+ ...(apiConfiguration?.openAiCustomModelInfo ||
|
|
|
openAiModelInfoSaneDefaults),
|
|
|
contextWindow:
|
|
|
e.target.value === ""
|
|
|
@@ -742,14 +742,14 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
<div style={{ display: "flex", alignItems: "center", gap: "8px" }}>
|
|
|
<Checkbox
|
|
|
checked={
|
|
|
- apiConfiguration?.openAiCusModelInfo?.supportsImages ??
|
|
|
+ apiConfiguration?.openAiCustomModelInfo?.supportsImages ??
|
|
|
openAiModelInfoSaneDefaults.supportsImages
|
|
|
}
|
|
|
onChange={(checked: boolean) => {
|
|
|
- handleInputChange("openAiCusModelInfo")({
|
|
|
+ handleInputChange("openAiCustomModelInfo")({
|
|
|
target: {
|
|
|
value: {
|
|
|
- ...(apiConfiguration?.openAiCusModelInfo ||
|
|
|
+ ...(apiConfiguration?.openAiCustomModelInfo ||
|
|
|
openAiModelInfoSaneDefaults),
|
|
|
supportsImages: checked,
|
|
|
},
|
|
|
@@ -790,14 +790,14 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
<div style={{ display: "flex", alignItems: "center", gap: "8px" }}>
|
|
|
<Checkbox
|
|
|
checked={
|
|
|
- apiConfiguration?.openAiCusModelInfo?.supportsComputerUse ??
|
|
|
- false
|
|
|
+ apiConfiguration?.openAiCustomModelInfo
|
|
|
+ ?.supportsComputerUse ?? false
|
|
|
}
|
|
|
onChange={(checked: boolean) => {
|
|
|
- handleInputChange("openAiCusModelInfo")({
|
|
|
+ handleInputChange("openAiCustomModelInfo")({
|
|
|
target: {
|
|
|
value: {
|
|
|
- ...(apiConfiguration?.openAiCusModelInfo ||
|
|
|
+ ...(apiConfiguration?.openAiCustomModelInfo ||
|
|
|
openAiModelInfoSaneDefaults),
|
|
|
supportsComputerUse: checked,
|
|
|
},
|
|
|
@@ -874,7 +874,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
<div className="price-input">
|
|
|
<VSCodeTextField
|
|
|
value={
|
|
|
- apiConfiguration?.openAiCusModelInfo?.inputPrice?.toString() ??
|
|
|
+ apiConfiguration?.openAiCustomModelInfo?.inputPrice?.toString() ??
|
|
|
openAiModelInfoSaneDefaults.inputPrice?.toString() ??
|
|
|
""
|
|
|
}
|
|
|
@@ -882,7 +882,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
style={{
|
|
|
width: "100%",
|
|
|
borderColor: (() => {
|
|
|
- const value = apiConfiguration?.openAiCusModelInfo?.inputPrice
|
|
|
+ const value = apiConfiguration?.openAiCustomModelInfo?.inputPrice
|
|
|
if (!value && value !== 0) return "var(--vscode-input-border)"
|
|
|
return value >= 0
|
|
|
? "var(--vscode-charts-green)"
|
|
|
@@ -891,10 +891,10 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
}}
|
|
|
onChange={(e: any) => {
|
|
|
const parsed = parseFloat(e.target.value)
|
|
|
- handleInputChange("openAiCusModelInfo")({
|
|
|
+ handleInputChange("openAiCustomModelInfo")({
|
|
|
target: {
|
|
|
value: {
|
|
|
- ...(apiConfiguration?.openAiCusModelInfo ??
|
|
|
+ ...(apiConfiguration?.openAiCustomModelInfo ??
|
|
|
openAiModelInfoSaneDefaults),
|
|
|
inputPrice:
|
|
|
e.target.value === ""
|
|
|
@@ -925,7 +925,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
<div className="price-input">
|
|
|
<VSCodeTextField
|
|
|
value={
|
|
|
- apiConfiguration?.openAiCusModelInfo?.outputPrice?.toString() ||
|
|
|
+ apiConfiguration?.openAiCustomModelInfo?.outputPrice?.toString() ||
|
|
|
openAiModelInfoSaneDefaults.outputPrice?.toString() ||
|
|
|
""
|
|
|
}
|
|
|
@@ -933,7 +933,7 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
style={{
|
|
|
width: "100%",
|
|
|
borderColor: (() => {
|
|
|
- const value = apiConfiguration?.openAiCusModelInfo?.outputPrice
|
|
|
+ const value = apiConfiguration?.openAiCustomModelInfo?.outputPrice
|
|
|
if (!value && value !== 0) return "var(--vscode-input-border)"
|
|
|
return value >= 0
|
|
|
? "var(--vscode-charts-green)"
|
|
|
@@ -942,10 +942,10 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
|
|
|
}}
|
|
|
onChange={(e: any) => {
|
|
|
const parsed = parseFloat(e.target.value)
|
|
|
- handleInputChange("openAiCusModelInfo")({
|
|
|
+ handleInputChange("openAiCustomModelInfo")({
|
|
|
target: {
|
|
|
value: {
|
|
|
- ...(apiConfiguration?.openAiCusModelInfo ||
|
|
|
+ ...(apiConfiguration?.openAiCustomModelInfo ||
|
|
|
openAiModelInfoSaneDefaults),
|
|
|
outputPrice:
|
|
|
e.target.value === ""
|
|
|
@@ -1460,7 +1460,7 @@ export function normalizeApiConfiguration(apiConfiguration?: ApiConfiguration) {
|
|
|
return {
|
|
|
selectedProvider: provider,
|
|
|
selectedModelId: apiConfiguration?.openAiModelId || "",
|
|
|
- selectedModelInfo: apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults,
|
|
|
+ selectedModelInfo: apiConfiguration?.openAiCustomModelInfo || openAiModelInfoSaneDefaults,
|
|
|
}
|
|
|
case "ollama":
|
|
|
return {
|