+
+
- remove(idx)} />
+ remove(idx)}
+ />
- {/if}
{/each}
diff --git a/src/lib/helpers/http.js b/src/lib/helpers/http.js
index e5003153..e82610d6 100644
--- a/src/lib/helpers/http.js
+++ b/src/lib/helpers/http.js
@@ -108,6 +108,7 @@ function skipLoader(config) {
new RegExp('http(s*)://(.*?)/user/(.*?)/details', 'g'),
new RegExp('http(s*)://(.*?)/agent/labels', 'g'),
new RegExp('http(s*)://(.*?)/conversation/state/keys', 'g'),
+ new RegExp('http(s*)://(.*?)/logger/instruction/log/keys', 'g')
];
if (config.method === 'post' && postRegexes.some(regex => regex.test(config.url || ''))) {
diff --git a/src/lib/helpers/types/conversationTypes.js b/src/lib/helpers/types/conversationTypes.js
index 577fe067..76e1ce10 100644
--- a/src/lib/helpers/types/conversationTypes.js
+++ b/src/lib/helpers/types/conversationTypes.js
@@ -37,6 +37,7 @@
* @property {number?} [keyLimit] - The key limit.
* @property {number?} [convLimit] - The conversation limit.
* @property {boolean?} [preload] - Whether it is preloading or not.
+ * @property {string[]?} [agentIds]
*/
diff --git a/src/lib/helpers/types/instructTypes.js b/src/lib/helpers/types/instructTypes.js
index ed7112b6..9538dec6 100644
--- a/src/lib/helpers/types/instructTypes.js
+++ b/src/lib/helpers/types/instructTypes.js
@@ -42,4 +42,13 @@
* @property {Date} created_time
*/
+/**
+ * @typedef {Object} StateSearchQuery
+ * @property {string} query - The search query.
+ * @property {number?} [keyLimit] - The key limit.
+ * @property {number?} [logLimit] - The log limit.
+ * @property {boolean?} [preload] - Whether it is preloading or not.
+ * @property {string[]?} [agentIds]
+ */
+
export default {};
\ No newline at end of file
diff --git a/src/lib/scss/custom/pages/_chat.scss b/src/lib/scss/custom/pages/_chat.scss
index cda9fe5e..3270c7a0 100644
--- a/src/lib/scss/custom/pages/_chat.scss
+++ b/src/lib/scss/custom/pages/_chat.scss
@@ -671,7 +671,7 @@
.state-delete {
flex: 0.1;
color: var(--bs-danger);
- font-size: 17px;
+ font-size: 12px;
}
.invalid {
diff --git a/src/lib/services/api-endpoints.js b/src/lib/services/api-endpoints.js
index 26cf2212..787690c4 100644
--- a/src/lib/services/api-endpoints.js
+++ b/src/lib/services/api-endpoints.js
@@ -46,6 +46,7 @@ export const endpoints = {
instructCompletionUrl: `${host}/instruct/{agentId}`,
chatCompletionUrl: `${host}/instruct/chat-completion`,
instructLogUrl: `${host}/logger/instruction/log`,
+ instructLogSearchKeysUrl: `${host}/logger/instruction/log/keys`,
// agent realtime interaction
agentInitRealtimeSessionUrl: `${host}/agent/{agentId}/realtime/session`,
diff --git a/src/lib/services/conversation-service.js b/src/lib/services/conversation-service.js
index d569c41f..0871adf3 100644
--- a/src/lib/services/conversation-service.js
+++ b/src/lib/services/conversation-service.js
@@ -1,7 +1,8 @@
-import { replaceUrl } from '$lib/helpers/http';
import axios from 'axios';
-import { endpoints } from './api-endpoints.js';
+import qs from 'qs';
+import { replaceUrl } from '$lib/helpers/http';
import { conversationUserStateStore } from '$lib/helpers/store.js';
+import { endpoints } from './api-endpoints.js';
/**
* New conversation
@@ -44,7 +45,12 @@ export async function getConversationUser(id) {
*/
export async function getConversations(filter) {
let url = endpoints.conversationsUrl;
- const response = await axios.post(url, { ...filter});
+ const response = await axios.get(url, {
+ params: {
+ ...filter
+ },
+ paramsSerializer: (params) => qs.stringify(params, { encode: false, allowDots: true, arrayFormat: "indices" })
+ });
return response.data;
}
@@ -304,6 +310,10 @@ export async function getConversationStateSearchKeys(request) {
params: {
...request
},
+ paramsSerializer: {
+ dots: true,
+ indexes: null,
+ },
signal: controller.signal
});
return response.data;
diff --git a/src/lib/services/instruct-service.js b/src/lib/services/instruct-service.js
index a38f5e85..1c40229c 100644
--- a/src/lib/services/instruct-service.js
+++ b/src/lib/services/instruct-service.js
@@ -40,3 +40,22 @@ export async function getInstructionLogs(filter) {
});
return response.data;
}
+
+/**
+ * get instruction log search keys
+ * @param {import('$instructTypes').StateSearchQuery} request
+ * @returns {Promise
}
+ */
+export async function getInstructionLogSearchKeys(request) {
+ let url = endpoints.instructLogSearchKeysUrl;
+ const response = await axios.get(url, {
+ params: {
+ ...request
+ },
+ paramsSerializer: {
+ dots: true,
+ indexes: null,
+ }
+ });
+ return response.data;
+}
\ No newline at end of file
diff --git a/src/routes/page/conversation/+page.svelte b/src/routes/page/conversation/+page.svelte
index 4ce33247..5ed551cc 100644
--- a/src/routes/page/conversation/+page.svelte
+++ b/src/routes/page/conversation/+page.svelte
@@ -335,7 +335,8 @@
return new Promise((resolve) => {
getConversationStateSearchKeys({
query: query,
- keyLimit: 20
+ keyLimit: 20,
+ agentIds: searchOption.agentId ? [searchOption.agentId] : null
}).then(res => {
resolve(res || []);
}).catch(() => resolve([]));
diff --git a/src/routes/page/instruction/log/+page.svelte b/src/routes/page/instruction/log/+page.svelte
index 9cd5e072..3e7145f8 100644
--- a/src/routes/page/instruction/log/+page.svelte
+++ b/src/routes/page/instruction/log/+page.svelte
@@ -8,7 +8,7 @@
import TablePagination from '$lib/common/TablePagination.svelte';
import { getAgentOptions } from '$lib/services/agent-service';
import { getLlmConfigs } from '$lib/services/llm-provider-service';
- import { getInstructionLogs } from '$lib/services/instruct-service';
+ import { getInstructionLogs, getInstructionLogSearchKeys } from '$lib/services/instruct-service';
import LoadingToComplete from '$lib/common/LoadingToComplete.svelte';
import LogItem from './log-item.svelte';
import { removeDuplicates } from '$lib/helpers/utils/common';
@@ -218,6 +218,19 @@
};
getPagedInstructionLogs();
}
+
+ /** @param {string} query */
+ function handleStateSearch(query) {
+ return new Promise((resolve) => {
+ getInstructionLogSearchKeys({
+ query: query,
+ keyLimit: 20,
+ agentIds: searchOption.agentId ? [searchOption.agentId] : null
+ }).then(res => {
+ resolve(res || []);
+ }).catch(() => resolve([]));
+ });
+ }
@@ -256,7 +269,7 @@
-
+ handleStateSearch(query)} />