diff --git a/src/applications/qa/index.js b/src/applications/qa/index.js
index 797e07e..0ab9793 100644
--- a/src/applications/qa/index.js
+++ b/src/applications/qa/index.js
@@ -274,7 +274,10 @@ function QuestionAnswering({ application, showSettings }) {
{showSettings ? (
-
+
state.retrievers);
const dispatch = useDispatch();
@@ -131,6 +131,51 @@ function Retrievers({ disableParent }) {
}
}, [retrievers.retrievers, dispatch]);
+ // Determines if defaultCheckpoint is present as an option in the checkpoint parameter in the selected retriever, if any
+ const isDefaultCheckpointOptionPresent = () => {
+ let ret = !!defaultCheckpoint;
+ ret &&= Array.isArray(retrievers?.selectedRetriever?.parameters);
+ if (ret) {
+ let parameter = retrievers.selectedRetriever.parameters.find(parameter => parameter.parameter_id === 'checkpoint')
+ ret = !!parameter;
+ ret &&= Array.isArray(parameter.options);
+ ret &&= parameter.options.includes(defaultCheckpoint);
+ }
+ return ret;
+ };
+
+ const isCheckpointParamSet = () => {
+ let ret = Array.isArray(retrievers?.selectedRetriever?.parameters);
+ if (ret) {
+ let parameter = retrievers.selectedRetriever.parameters.find(parameter => parameter.parameter_id === 'checkpoint');
+ ret = !!parameter;
+ ret &&= parameter.value !== null;
+ }
+ return ret;
+ };
+
+ // Set defaultCheckpoint as default selected checkpoint, if available
+ useEffect(() => {
+ // Dispatch updateParameterValue event
+ if (isDefaultCheckpointOptionPresent() && !isCheckpointParamSet()) {
+ dispatch(
+ updateParameterValue({
+ parameter_id: 'checkpoint',
+ value: defaultCheckpoint,
+ })
+ );
+ }
+ }, [retrievers.retrievers, dispatch, defaultCheckpoint]);
+
+ const getParameterDefaultOption = (parameter, placeholderId) => {
+ let option = parameter.value || placeholderId;
+ if (parameter.parameter_id === 'checkpoint' && isDefaultCheckpointOptionPresent()) {
+ // Custom behavior on default checkpoint
+ option = defaultCheckpoint;
+ }
+ return option;
+ }
+
return (
@@ -308,6 +353,42 @@ function Retrievers({ disableParent }) {
);
})}
+ ) : !_.isNil(parameter.options) &&
+ !_.isEmpty(parameter.options) ? (
+
) : (