diff --git a/web-app/src/containers/DropdownAssistant.tsx b/web-app/src/containers/DropdownAssistant.tsx
index bd1e1fb78..aa0649aa1 100644
--- a/web-app/src/containers/DropdownAssistant.tsx
+++ b/web-app/src/containers/DropdownAssistant.tsx
@@ -94,8 +94,8 @@ const DropdownAssistant = () => {
textClassName=""
/>
-
+
+
+
+
+ {Object.entries(paramsSettings).map(([key, setting]) => (
+
{
+ // Check if parameter already exists
+ const existingIndex = paramsKeys.findIndex(
+ (k) => k === setting.key
+ )
+ if (existingIndex === -1) {
+ // Add new parameter
+ const newKeys = [...paramsKeys]
+ const newValues = [...paramsValues]
+ const newTypes = [...paramsTypes]
+
+ // If the last param is empty, replace it, otherwise add new
+ if (paramsKeys[paramsKeys.length - 1] === '') {
+ newKeys[newKeys.length - 1] = setting.key
+ newValues[newValues.length - 1] = setting.value
+ newTypes[newTypes.length - 1] =
+ typeof setting.value === 'boolean'
+ ? 'boolean'
+ : typeof setting.value === 'number'
+ ? 'number'
+ : 'string'
+ } else {
+ newKeys.push(setting.key)
+ newValues.push(setting.value)
+ newTypes.push(
+ typeof setting.value === 'boolean'
+ ? 'boolean'
+ : typeof setting.value === 'number'
+ ? 'number'
+ : 'string'
+ )
+ }
+
+ setParamsKeys(newKeys)
+ setParamsValues(newValues)
+ setParamsTypes(newTypes)
+ }
+ }}
+ className={cn(
+ 'text-xs bg-main-view-fg/10 py-1 px-2 rounded-sm cursor-pointer',
+ paramsKeys.includes(setting.key) && 'opacity-50'
+ )}
+ >
+ {setting.title}
+
+ ))}
+
+
+
diff --git a/web-app/src/lib/predefinedParams.ts b/web-app/src/lib/predefinedParams.ts
new file mode 100644
index 000000000..feab39980
--- /dev/null
+++ b/web-app/src/lib/predefinedParams.ts
@@ -0,0 +1,40 @@
+export const paramsSettings = {
+ stream: {
+ key: 'stream',
+ value: true,
+ title: 'Stream',
+ description: `Enables real-time response streaming.`,
+ },
+ temperature: {
+ key: 'temperature',
+ value: 0.7,
+ title: 'Temperature',
+ description: `Controls response randomness. Higher values produce more creative, varied responses. `,
+ },
+ frequency_penalty: {
+ key: 'frequency_penalty',
+ value: 0.7,
+ title: 'Frequency Penalty',
+ description: `Reduces word repetition. Higher values encourage more varied language. Useful for creative writing and content generation.`,
+ },
+ presence_penalty: {
+ key: 'presence_penalty',
+ value: 0.7,
+ title: 'Presence Penalty',
+ description: `Encourages the model to explore new topics. Higher values help prevent the model from fixating on already-discussed subjects.`,
+ },
+ top_p: {
+ key: 'top_p',
+ value: 0.95,
+ title: 'Top P',
+ description: `Set probability threshold for more relevant outputs. Higher values allow more diverse word choices.`,
+ controllerType: 'slider',
+ },
+ top_k: {
+ key: 'top_k',
+ value: 2,
+ title: 'Top K',
+ description:
+ 'Number of most relevant documents to retrieve. Higher values return more results.',
+ },
+}
diff --git a/web-app/src/routes/assistant.tsx b/web-app/src/routes/assistant.tsx
index b725e5928..b6b453e0d 100644
--- a/web-app/src/routes/assistant.tsx
+++ b/web-app/src/routes/assistant.tsx
@@ -76,7 +76,7 @@ function Assistant() {
textClassName="text-sm"
/>
- {assistant.name}
+ {assistant.name}