Skip to content

Commit 51b6453

Browse files
bscheurmpamelafox
andauthored
Added FluentUI Slider to chat settings panel for overriding temperature (#54)
* Added FluentUI Slider to chat settings panel for overriding temperature * Try to undo the prettier changes * Try to undo the prettier changes * Remake changes * Add to ask as well * Update default to 0.3 to match Python --------- Co-authored-by: Pamela Fox <[email protected]> Co-authored-by: Pamela Fox <[email protected]>
1 parent bd7daa6 commit 51b6453

File tree

3 files changed

+48
-3
lines changed

3 files changed

+48
-3
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ repos:
1515
hooks:
1616
- id: black
1717
- repo: https://github.com/pre-commit/mirrors-prettier
18-
rev: v4.0.0-alpha.8
18+
rev: v3.1.0
1919
hooks:
2020
- id: prettier
2121
types_or: [css, javascript, ts, tsx, html]

app/frontend/src/pages/ask/Ask.tsx

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useEffect, useRef, useState } from "react";
2-
import { Checkbox, Panel, DefaultButton, Spinner, TextField, SpinButton, IDropdownOption, Dropdown } from "@fluentui/react";
2+
import { Checkbox, Panel, DefaultButton, Spinner, Slider, TextField, SpinButton, IDropdownOption, Dropdown } from "@fluentui/react";
33

44
import styles from "./Ask.module.css";
55

@@ -21,6 +21,7 @@ export function Component(): JSX.Element {
2121
const [promptTemplate, setPromptTemplate] = useState<string>("");
2222
const [promptTemplatePrefix, setPromptTemplatePrefix] = useState<string>("");
2323
const [promptTemplateSuffix, setPromptTemplateSuffix] = useState<string>("");
24+
const [temperature, setTemperature] = useState<number>(0.3);
2425
const [retrievalMode, setRetrievalMode] = useState<RetrievalMode>(RetrievalMode.Hybrid);
2526
const [retrieveCount, setRetrieveCount] = useState<number>(3);
2627
const [useSemanticRanker, setUseSemanticRanker] = useState<boolean>(true);
@@ -90,6 +91,7 @@ export function Component(): JSX.Element {
9091
prompt_template_suffix: promptTemplateSuffix.length === 0 ? undefined : promptTemplateSuffix,
9192
exclude_category: excludeCategory.length === 0 ? undefined : excludeCategory,
9293
top: retrieveCount,
94+
temperature: temperature,
9395
retrieval_mode: retrievalMode,
9496
semantic_ranker: useSemanticRanker,
9597
semantic_captions: useSemanticCaptions,
@@ -124,6 +126,14 @@ export function Component(): JSX.Element {
124126
setPromptTemplateSuffix(newValue || "");
125127
};
126128

129+
const onTemperatureChange = (
130+
newValue: number,
131+
range?: [number, number],
132+
event?: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent | React.KeyboardEvent
133+
) => {
134+
setTemperature(newValue);
135+
};
136+
127137
const onRetrieveCountChange = (_ev?: React.SyntheticEvent<HTMLElement, Event>, newValue?: string) => {
128138
setRetrieveCount(parseInt(newValue || "3"));
129139
};
@@ -236,6 +246,19 @@ export function Component(): JSX.Element {
236246
autoAdjustHeight
237247
onChange={onPromptTemplateChange}
238248
/>
249+
250+
<Slider
251+
className={styles.chatSettingsSeparator}
252+
label="Temperature"
253+
min={0}
254+
max={1}
255+
step={0.1}
256+
defaultValue={temperature}
257+
onChange={onTemperatureChange}
258+
showValue
259+
snapToStep
260+
/>
261+
239262
<SpinButton
240263
className={styles.askSettingsSeparator}
241264
label="Retrieve this many search results:"

app/frontend/src/pages/chat/Chat.tsx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useRef, useState, useEffect } from "react";
2-
import { Checkbox, Panel, DefaultButton, TextField, SpinButton } from "@fluentui/react";
2+
import { Checkbox, Panel, DefaultButton, TextField, SpinButton, Slider } from "@fluentui/react";
33
import { SparkleFilled } from "@fluentui/react-icons";
44
import readNDJSONStream from "ndjson-readablestream";
55

@@ -32,6 +32,7 @@ import { GPT4VSettings } from "../../components/GPT4VSettings";
3232
const Chat = () => {
3333
const [isConfigPanelOpen, setIsConfigPanelOpen] = useState(false);
3434
const [promptTemplate, setPromptTemplate] = useState<string>("");
35+
const [temperature, setTemperature] = useState<number>(0.3);
3536
const [retrieveCount, setRetrieveCount] = useState<number>(3);
3637
const [retrievalMode, setRetrievalMode] = useState<RetrievalMode>(RetrievalMode.Hybrid);
3738
const [useSemanticRanker, setUseSemanticRanker] = useState<boolean>(true);
@@ -145,6 +146,7 @@ const Chat = () => {
145146
prompt_template: promptTemplate.length === 0 ? undefined : promptTemplate,
146147
exclude_category: excludeCategory.length === 0 ? undefined : excludeCategory,
147148
top: retrieveCount,
149+
temperature: temperature,
148150
retrieval_mode: retrievalMode,
149151
semantic_ranker: useSemanticRanker,
150152
semantic_captions: useSemanticCaptions,
@@ -202,6 +204,14 @@ const Chat = () => {
202204
setPromptTemplate(newValue || "");
203205
};
204206

207+
const onTemperatureChange = (
208+
newValue: number,
209+
range?: [number, number],
210+
event?: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent | React.KeyboardEvent
211+
) => {
212+
setTemperature(newValue);
213+
};
214+
205215
const onRetrieveCountChange = (_ev?: React.SyntheticEvent<HTMLElement, Event>, newValue?: string) => {
206216
setRetrieveCount(parseInt(newValue || "3"));
207217
};
@@ -373,6 +383,18 @@ const Chat = () => {
373383
onChange={onPromptTemplateChange}
374384
/>
375385

386+
<Slider
387+
className={styles.chatSettingsSeparator}
388+
label="Temperature"
389+
min={0}
390+
max={1}
391+
step={0.1}
392+
defaultValue={temperature}
393+
onChange={onTemperatureChange}
394+
showValue
395+
snapToStep
396+
/>
397+
376398
<SpinButton
377399
className={styles.chatSettingsSeparator}
378400
label="Retrieve this many search results:"

0 commit comments

Comments
 (0)