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> <Form>
<div key="prune_freq"> <div key="prune_freq">
<NumberInput <NumberInput
showNeverIfZero
description={` description={`
Checks all documents against the source to delete those that no longer exist. 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. Note: This process checks every document, so be cautious when increasing frequency.
@ -42,7 +41,6 @@ const AdvancedFormPage = forwardRef<FormikProps<any>, AdvancedFormPageProps>(
<NumberInput <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." 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} value={refreshFreq}
showNeverIfZero
label="Refresh Frequency (minutes)" label="Refresh Frequency (minutes)"
name="refreshFreq" name="refreshFreq"
/> />

View File

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

View File

@ -36,6 +36,36 @@ const RerankingDetailsForm = forwardRef<
) => { ) => {
const [isApiKeyModalOpen, setIsApiKeyModalOpen] = useState(false); 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 ( return (
<div className="p-2 rounded-lg max-w-4xl mx-auto"> <div className="p-2 rounded-lg max-w-4xl mx-auto">
<h2 className="text-2xl font-bold mb-4 text-text-800"> <h2 className="text-2xl font-bold mb-4 text-text-800">
@ -81,26 +111,18 @@ const RerankingDetailsForm = forwardRef<
Self-hosted Self-hosted
</button> </button>
</div> </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> </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> <Form>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4"> <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
{(modelTab {(modelTab
@ -114,7 +136,8 @@ const RerankingDetailsForm = forwardRef<
) )
).map((card) => { ).map((card) => {
const isSelected = const isSelected =
values.rerank_provider_type === card.rerank_provider_type && values.rerank_provider_type ===
card.rerank_provider_type &&
values.rerank_model_name === card.modelName; values.rerank_model_name === card.modelName;
return ( return (
<div <div
@ -182,7 +205,9 @@ const RerankingDetailsForm = forwardRef<
Object.keys(originalRerankingDetails).forEach((key) => { Object.keys(originalRerankingDetails).forEach((key) => {
setFieldValue( setFieldValue(
key, key,
originalRerankingDetails[key as keyof RerankingDetails] originalRerankingDetails[
key as keyof RerankingDetails
]
); );
}); });
@ -200,11 +225,11 @@ const RerankingDetailsForm = forwardRef<
...values, ...values,
rerank_api_key: value, rerank_api_key: value,
}); });
setFieldValue("rerank_api_key", value); setFieldValue("api_key", value);
}} }}
type="password" type="password"
label="Cohere API Key" label="Cohere API Key"
name="rerank_api_key" name="api_key"
/> />
<div className="mt-4 flex justify-between"> <div className="mt-4 flex justify-between">
<Button <Button
@ -239,10 +264,11 @@ const RerankingDetailsForm = forwardRef<
</Modal> </Modal>
)} )}
</Form> </Form>
)}
</Formik>
</div> </div>
); );
}}
</Formik>
);
} }
); );

View File

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

View File

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