feat: redact file contents from chat and put latest files into system prompt (#904)
This commit is contained in:
@@ -150,8 +150,9 @@ export async function streamText(props: {
|
||||
files?: FileMap;
|
||||
providerSettings?: Record<string, IProviderSetting>;
|
||||
promptId?: string;
|
||||
contextOptimization?: boolean;
|
||||
}) {
|
||||
const { messages, env: serverEnv, options, apiKeys, files, providerSettings, promptId } = props;
|
||||
const { messages, env: serverEnv, options, apiKeys, files, providerSettings, promptId, contextOptimization } = props;
|
||||
|
||||
// console.log({serverEnv});
|
||||
|
||||
@@ -170,9 +171,11 @@ export async function streamText(props: {
|
||||
|
||||
return { ...message, content };
|
||||
} else if (message.role == 'assistant') {
|
||||
const content = message.content;
|
||||
let content = message.content;
|
||||
|
||||
// content = simplifyBoltActions(content);
|
||||
if (contextOptimization) {
|
||||
content = simplifyBoltActions(content);
|
||||
}
|
||||
|
||||
return { ...message, content };
|
||||
}
|
||||
@@ -192,11 +195,9 @@ export async function streamText(props: {
|
||||
allowedHtmlElements: allowedHTMLElements,
|
||||
modificationTagName: MODIFICATIONS_TAG_NAME,
|
||||
}) ?? getSystemPrompt();
|
||||
let codeContext = '';
|
||||
|
||||
if (files) {
|
||||
codeContext = createFilesContext(files);
|
||||
codeContext = '';
|
||||
if (files && contextOptimization) {
|
||||
const codeContext = createFilesContext(files);
|
||||
systemPrompt = `${systemPrompt}\n\n ${codeContext}`;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
promptStore,
|
||||
providersStore,
|
||||
latestBranchStore,
|
||||
enableContextOptimizationStore,
|
||||
} from '~/lib/stores/settings';
|
||||
import { useCallback, useEffect, useState } from 'react';
|
||||
import Cookies from 'js-cookie';
|
||||
@@ -31,6 +32,7 @@ export function useSettings() {
|
||||
const isLocalModel = useStore(isLocalModelsEnabled);
|
||||
const isLatestBranch = useStore(latestBranchStore);
|
||||
const [activeProviders, setActiveProviders] = useState<ProviderInfo[]>([]);
|
||||
const contextOptimizationEnabled = useStore(enableContextOptimizationStore);
|
||||
|
||||
// Function to check if we're on stable version
|
||||
const checkIsStableVersion = async () => {
|
||||
@@ -118,6 +120,12 @@ export function useSettings() {
|
||||
} else {
|
||||
latestBranchStore.set(savedLatestBranch === 'true');
|
||||
}
|
||||
|
||||
const savedContextOptimizationEnabled = Cookies.get('contextOptimizationEnabled');
|
||||
|
||||
if (savedContextOptimizationEnabled) {
|
||||
enableContextOptimizationStore.set(savedContextOptimizationEnabled === 'true');
|
||||
}
|
||||
}, []);
|
||||
|
||||
// writing values to cookies on change
|
||||
@@ -179,6 +187,12 @@ export function useSettings() {
|
||||
Cookies.set('isLatestBranch', String(enabled));
|
||||
}, []);
|
||||
|
||||
const enableContextOptimization = useCallback((enabled: boolean) => {
|
||||
enableContextOptimizationStore.set(enabled);
|
||||
logStore.logSystem(`Context optimization ${enabled ? 'enabled' : 'disabled'}`);
|
||||
Cookies.set('contextOptimizationEnabled', String(enabled));
|
||||
}, []);
|
||||
|
||||
return {
|
||||
providers,
|
||||
activeProviders,
|
||||
@@ -193,5 +207,7 @@ export function useSettings() {
|
||||
setPromptId,
|
||||
isLatestBranch,
|
||||
enableLatestBranch,
|
||||
contextOptimizationEnabled,
|
||||
enableContextOptimization,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -39,6 +39,9 @@ PROVIDER_LIST.forEach((provider) => {
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
//TODO: need to create one single map for all these flags
|
||||
|
||||
export const providersStore = map<ProviderSetting>(initialProviderSettings);
|
||||
|
||||
export const isDebugMode = atom(false);
|
||||
@@ -50,3 +53,5 @@ export const isLocalModelsEnabled = atom(true);
|
||||
export const promptStore = atom<string>('default');
|
||||
|
||||
export const latestBranchStore = atom(false);
|
||||
|
||||
export const enableContextOptimizationStore = atom(false);
|
||||
|
||||
Reference in New Issue
Block a user