Skip to content

Commit d6f7681

Browse files
author
Jicheng Lu
committed
add confidence
1 parent 582c0e7 commit d6f7681

File tree

10 files changed

+107
-18
lines changed

10 files changed

+107
-18
lines changed

src/lib/helpers/constants.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@ export const EVALUATOR_ID = "2cd4b805-7078-4405-87e9-2ec9aadf8a11";
3636
export const TRAINING_MODE = "training";
3737

3838
export const DEFAULT_KNOWLEDGE_COLLECTION = "BotSharp";
39-
export const IMAGE_DATA_PREFIX = 'data:image';
39+
export const IMAGE_DATA_PREFIX = 'data:image';
40+
41+
export const INTEGER_REGEX = "[0-9]+";
42+
export const DECIMAL_REGEX = "[0-9.]+";

src/lib/helpers/types/agentTypes.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@
140140
* @property {string} name
141141
* @property {string} type
142142
* @property {string?} [displayName]
143-
* @property {boolean} disabled
143+
* @property {boolean} disabled
144+
* @property {number?} [confidence]
144145
*/
145146

146147
/**

src/lib/scss/custom/pages/_agent.scss

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@
167167

168168
.utility-label {
169169
width: 30%;
170+
font-size: 0.95em;
171+
flex-wrap: wrap;
170172
}
171173

172174
.utility-value {
@@ -222,7 +224,7 @@
222224
display: flex;
223225

224226
.utility-label {
225-
font-size: 12px;
227+
font-size: 0.95em;
226228
}
227229
}
228230
}

src/routes/page/agent/[agentId]/+page.svelte

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,7 @@
107107
utilities: agent.utilities || [],
108108
knowledge_bases: agent.knowledge_bases || [],
109109
rules: agent.rules || [],
110-
max_message_count: Number(agent.max_message_count) > 0 ? Number(agent.max_message_count) : null,
111-
llm_config: {
112-
...agent.llm_config,
113-
max_output_tokens: Number(agent.llm_config.max_output_tokens) > 0 ? Number(agent.llm_config.max_output_tokens) : null
114-
}
110+
max_message_count: Number(agent.max_message_count) > 0 ? Number(agent.max_message_count) : null
115111
};
116112
isLoading = true;
117113
saveAgent(agent).then(res => {
@@ -198,6 +194,7 @@
198194
function fetchTabData() {
199195
const data = agentTabsCmp?.fetchTabData();
200196
if (data) {
197+
agent.llm_config = data.llmConfig;
201198
agent.utilities = data.utilities || [];
202199
agent.knowledge_bases = data.knwoledgebases || [];
203200
agent.rules = data.rules || [];
@@ -239,7 +236,7 @@
239236
saveAgentDraft(data);
240237
}
241238
242-
function agentDraftReset() {
239+
function handleAgentReset() {
243240
agent = JSON.parse(JSON.stringify(originalAgent));
244241
agentDraft = null;
245242
deleteAgentDraft();
@@ -266,7 +263,7 @@
266263
profiles={agent.profiles || []}
267264
labels={agent.labels || []}
268265
resetable={!!agentDraft}
269-
resetAgent={() => agentDraftReset()}
266+
resetAgent={() => handleAgentReset()}
270267
{handleAgentChange}
271268
/>
272269
</div>

src/routes/page/agent/[agentId]/agent-components/agent-knowledge-base.svelte

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
import { Card, CardBody, Input, Button } from '@sveltestrap/sveltestrap';
44
import { getVectorKnowledgeCollections } from '$lib/services/knowledge-base-service';
55
import { KnowledgeCollectionDisplayType } from '$lib/helpers/enums';
6+
import { DECIMAL_REGEX } from '$lib/helpers/constants';
67
78
const limit = 5;
9+
const confidLowerBound = 0;
10+
const confidUpperBound = 1;
811
912
/** @type {import('$agentTypes').AgentModel} */
1013
export let agent;
@@ -17,7 +20,8 @@
1720
return {
1821
name: x.name,
1922
type: x.type,
20-
disabled: x.disabled
23+
disabled: x.disabled,
24+
confidence: x.confidence
2125
};
2226
});
2327
@@ -96,6 +100,44 @@
96100
innerRefresh(innerKnowledgeBases);
97101
}
98102
103+
/**
104+
* @param {any} e
105+
* @param {number} idx
106+
*/
107+
function changeConfidence(e, idx) {
108+
const found = innerKnowledgeBases.find((_, index) => index === idx);
109+
if (!found) return;
110+
111+
const value = e.target.value;
112+
const confidence = validateConfidenceNumber(value);
113+
found.confidence = confidence;
114+
handleAgentChange();
115+
innerRefresh(innerKnowledgeBases);
116+
}
117+
118+
/** @param {any} e */
119+
function validateConfidenceInput(e) {
120+
const reg = new RegExp(DECIMAL_REGEX, 'g');
121+
if (e.key !== 'Backspace' && !reg.test(e.key)) {
122+
e.preventDefault();
123+
}
124+
}
125+
126+
/** @param {string} value */
127+
function validateConfidenceNumber(value) {
128+
let confidence;
129+
const num = Number(value);
130+
131+
if (isNaN(num) || num < confidLowerBound) {
132+
confidence = '0.0';
133+
} else if (num >= confidUpperBound) {
134+
confidence = '1.0';
135+
} else {
136+
confidence = num.toFixed(1);
137+
}
138+
return Number(confidence);
139+
}
140+
99141
function addKnowledgeBase() {
100142
innerKnowledgeBases = [
101143
...innerKnowledgeBases,
@@ -136,7 +178,8 @@
136178
name: x.name,
137179
type: x.type,
138180
displayName: x.displayName,
139-
disabled: x.disabled
181+
disabled: x.disabled,
182+
confidence: x.confidence
140183
}
141184
}) || [];
142185
}
@@ -198,6 +241,28 @@
198241
</div>
199242
</div>
200243
</div>
244+
<div class="utility-row utility-row-secondary">
245+
<div class="utility-content">
246+
<div class="utility-list-item">
247+
<div class="utility-label line-align-center">
248+
{'Confidence'}
249+
</div>
250+
<div class="utility-value">
251+
<div class="utility-input line-align-center">
252+
<Input
253+
type="text"
254+
class="text-center"
255+
bind:value={knowledge.confidence}
256+
disabled={knowledge.disabled}
257+
on:keydown={e => validateConfidenceInput(e)}
258+
on:blur={e => changeConfidence(e, uid)}
259+
/>
260+
</div>
261+
<div class="utility-delete line-align-center"></div>
262+
</div>
263+
</div>
264+
</div>
265+
</div>
201266
</div>
202267
{/each}
203268

src/routes/page/agent/[agentId]/agent-components/agent-llm-config.svelte

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,23 @@
22
import { onMount } from 'svelte';
33
import { Card, CardBody, Input } from '@sveltestrap/sveltestrap';
44
import { getLlmProviders, getLlmProviderModels } from '$lib/services/llm-provider-service';
5+
import { INTEGER_REGEX } from '$lib/helpers/constants';
56
67
/** @type {import('$agentTypes').AgentModel} */
78
export let agent;
89
910
/** @type {() => void} */
1011
export let handleAgentChange = () => {};
1112
13+
export const fetchLlmConfig = () => {
14+
return {
15+
...config,
16+
max_output_tokens: Number(config.max_output_tokens) > 0 ? Number(config.max_output_tokens) : null
17+
};
18+
}
19+
20+
export const fetchOriginalLlmConfig = () => {};
21+
1222
export const refresh = () => {
1323
config = agent.llm_config;
1424
init();
@@ -56,7 +66,6 @@
5666
}
5767
5868
config.is_inherit = false;
59-
// handleAgentChange();
6069
models = await getLlmProviderModels(provider);
6170
config.model = models[0]?.name;
6271
handleAgentChange();
@@ -89,6 +98,14 @@
8998
config.max_output_tokens = value;
9099
handleAgentChange();
91100
}
101+
102+
/** @param {any} e */
103+
function validateIntegerInput(e) {
104+
const reg = new RegExp(INTEGER_REGEX, 'g');
105+
if (e.key !== 'Backspace' && !reg.test(e.key)) {
106+
e.preventDefault();
107+
}
108+
}
92109
</script>
93110
94111
<Card>
@@ -138,6 +155,7 @@
138155
min={recursiveDepthLowerLimit}
139156
max={recursiveDepthUpperLimit}
140157
value={config.max_recursion_depth}
158+
on:keydown={e => validateIntegerInput(e)}
141159
on:change={e => changeMaxRecursiveDepth(e)}
142160
/>
143161
</div>
@@ -152,6 +170,7 @@
152170
style="text-align: center;"
153171
type="number"
154172
value={config.max_output_tokens}
173+
on:keydown={e => validateIntegerInput(e)}
155174
on:change={e => changeMaxOutputToken(e)}
156175
/>
157176
</div>

src/routes/page/agent/[agentId]/agent-components/agent-template.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129
<FormGroup class="agent-prompt-body">
130130
<div class="mb-2" style="display: flex; gap: 10px;">
131131
<div class="line-align-center fw-bold">
132-
{'Prompts:'}
132+
{'Contents:'}
133133
</div>
134134
<!-- svelte-ignore a11y-click-events-have-key-events -->
135135
<!-- svelte-ignore a11y-no-static-element-interactions -->

src/routes/page/agent/[agentId]/agent-tabs.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@
1616
export let handleAgentChange = () => {};
1717
1818
export const fetchTabData = () => {
19+
const llmConfig = agentLlmConfigCmp?.fetchLlmConfig();
1920
const utilities = agentUtilityCmp?.fetchUtilities();
2021
const knwoledgebases = agentKnowledgeBaseCmp?.fetchKnowledgeBases();
2122
const rules = agentEventRuleCmp?.fetchRules();
2223
2324
return {
25+
llmConfig,
2426
utilities: utilities || [],
2527
knwoledgebases: knwoledgebases || [],
2628
rules: rules || []

src/routes/page/knowledge-base/documents/+page.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@
3838
import CollectionCreateModal from '../common/collection/collection-create-modal.svelte';
3939
import AdvancedSearch from '../common/search/advanced-search.svelte';
4040
import KnowledgeDocumentUpload from './knowledge-document-upload.svelte';
41+
import { DECIMAL_REGEX } from '$lib/helpers/constants';
4142
4243
const pageSize = 8;
4344
const duration = 2000;
4445
const maxLength = 4096;
4546
const step = 0.1;
46-
const numberRegex = "[0-9\.]+";
4747
const enableVector = true;
4848
const collectionType = KnowledgeCollectionType.Document;
4949
const includedPayloads = [
@@ -241,7 +241,7 @@
241241
242242
/** @param {any} e */
243243
function validateConfidenceInput(e) {
244-
var reg = new RegExp(numberRegex, 'g');
244+
const reg = new RegExp(DECIMAL_REGEX, 'g');
245245
if (e.key !== 'Backspace' && !reg.test(e.key)) {
246246
e.preventDefault();
247247
}

src/routes/page/knowledge-base/question-answer/+page.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@
3232
import VectorItem from '../common/vector-table/vector-item.svelte';
3333
import VectorItemEditModal from '../common/vector-table/vector-item-edit-modal.svelte';
3434
import CollectionCreateModal from '../common/collection/collection-create-modal.svelte';
35+
import { DECIMAL_REGEX } from '$lib/helpers/constants';
3536
3637
3738
const pageSize = 8;
3839
const duration = 2000;
3940
const maxLength = 4096;
40-
const numberRegex = "[0-9\.]+";
4141
const step = 0.1;
4242
const enableVector = true;
4343
const collectionType = KnowledgeCollectionType.QuestionAnswer;
@@ -218,7 +218,7 @@
218218
219219
/** @param {any} e */
220220
function validateConfidenceInput(e) {
221-
var reg = new RegExp(numberRegex, 'g');
221+
const reg = new RegExp(DECIMAL_REGEX, 'g');
222222
if (e.key !== 'Backspace' && !reg.test(e.key)) {
223223
e.preventDefault();
224224
}

0 commit comments

Comments
 (0)