allow users to deselect reranking (#2243)

This commit is contained in:
pablodanswer 2024-08-30 15:40:54 -07:00 committed by GitHub
parent 4181124e7a
commit df31cac1f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 224 additions and 201 deletions

View File

@ -25,7 +25,6 @@ const AdvancedFormPage = forwardRef<FormikProps<any>, AdvancedFormPageProps>(
<Form>
<div key="prune_freq">
<NumberInput
showNeverIfZero
description={`
Checks all documents against the source to delete those that no longer exist.
Note: This process checks every document, so be cautious when increasing frequency.
@ -42,7 +41,6 @@ const AdvancedFormPage = forwardRef<FormikProps<any>, AdvancedFormPageProps>(
<NumberInput
description="This is how frequently we pull new documents from the source (in minutes). If you input 0, we will never pull new documents for this connector."
value={refreshFreq}
showNeverIfZero
label="Refresh Frequency (minutes)"
name="refreshFreq"
/>

View File

@ -86,7 +86,6 @@ const DynamicConnectionForm: FC<DynamicConnectionFormProps> = ({
optional={field.optional}
description={field.description}
name={field.name}
showNeverIfZero
/>
) : field.type === "checkbox" ? (
<AdminBooleanFormField

View File

@ -36,6 +36,36 @@ const RerankingDetailsForm = forwardRef<
) => {
const [isApiKeyModalOpen, setIsApiKeyModalOpen] = useState(false);
return (
<Formik
innerRef={ref}
initialValues={currentRerankingDetails}
validationSchema={Yup.object().shape({
rerank_model_name: Yup.string().nullable(),
rerank_provider_type: Yup.mixed<RerankerProvider>()
.nullable()
.oneOf(Object.values(RerankerProvider))
.optional(),
api_key: Yup.string().nullable(),
num_rerank: Yup.number().min(1, "Must be at least 1"),
})}
onSubmit={async (_, { setSubmitting }) => {
setSubmitting(false);
}}
enableReinitialize={true}
>
{({ values, setFieldValue }) => {
const resetRerankingValues = () => {
setRerankingDetails({
...values,
rerank_provider_type: null!,
rerank_model_name: null,
});
setFieldValue("rerank_provider_type", null);
setFieldValue("rerank_model_name", null);
setFieldValue("rerank_api_key", null);
};
return (
<div className="p-2 rounded-lg max-w-4xl mx-auto">
<h2 className="text-2xl font-bold mb-4 text-text-800">
@ -81,26 +111,18 @@ const RerankingDetailsForm = forwardRef<
Self-hosted
</button>
</div>
{values.rerank_model_name && (
<div className="px-2">
<button
onClick={() => resetRerankingValues()}
className="mx-2 p-2 font-bold rounded bg-background-100 text-text-900 hover:underline"
>
Remove Reranking
</button>
</div>
)}
</div>
<Formik
innerRef={ref}
initialValues={currentRerankingDetails}
validationSchema={Yup.object().shape({
rerank_model_name: Yup.string().nullable(),
provider_type: Yup.mixed<RerankerProvider>()
.nullable()
.oneOf(Object.values(RerankerProvider))
.optional(),
rerank_api_key: Yup.string().nullable(),
num_rerank: Yup.number().min(1, "Must be at least 1"),
})}
onSubmit={async (_, { setSubmitting }) => {
setSubmitting(false);
}}
enableReinitialize={true}
>
{({ values, setFieldValue }) => (
<Form>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
{(modelTab
@ -114,7 +136,8 @@ const RerankingDetailsForm = forwardRef<
)
).map((card) => {
const isSelected =
values.rerank_provider_type === card.rerank_provider_type &&
values.rerank_provider_type ===
card.rerank_provider_type &&
values.rerank_model_name === card.modelName;
return (
<div
@ -182,7 +205,9 @@ const RerankingDetailsForm = forwardRef<
Object.keys(originalRerankingDetails).forEach((key) => {
setFieldValue(
key,
originalRerankingDetails[key as keyof RerankingDetails]
originalRerankingDetails[
key as keyof RerankingDetails
]
);
});
@ -200,11 +225,11 @@ const RerankingDetailsForm = forwardRef<
...values,
rerank_api_key: value,
});
setFieldValue("rerank_api_key", value);
setFieldValue("api_key", value);
}}
type="password"
label="Cohere API Key"
name="rerank_api_key"
name="api_key"
/>
<div className="mt-4 flex justify-between">
<Button
@ -239,10 +264,11 @@ const RerankingDetailsForm = forwardRef<
</Modal>
)}
</Form>
)}
</Formik>
</div>
);
}}
</Formik>
);
}
);

View File

@ -173,7 +173,7 @@ export function ProviderCreationModal({
</a>
</Text>
<div className="flex flex-col gap-y-2">
<div className="flex w-full flex-col gap-y-2">
{useFileUpload ? (
<>
<Label>Upload JSON File</Label>

View File

@ -415,10 +415,10 @@ export default function EmbeddingForm() {
<>
<Card>
<AdvancedEmbeddingFormPage
updateNumRerank={(value: number) =>
updateNumRerank={(newNumRerank: number) =>
setRerankingDetails({
...rerankingDetails,
num_rerank: value,
num_rerank: newNumRerank,
})
}
numRerank={rerankingDetails.num_rerank}