Skip to content

Commit

Permalink
Merge pull request #39 from kshitij79/kshitij79/I38/Fixed-Caching-Key
Browse files Browse the repository at this point in the history
Fixed caching issue - I38
  • Loading branch information
dselman authored Aug 13, 2024
2 parents 2dace90 + 1da792b commit 7808bc8
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 4 deletions.
2 changes: 2 additions & 0 deletions client/src/copilot/generators/suggestionProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { LanguageClient } from 'vscode-languageclient/browser';
import { log } from '../../log';
import { Documents, ModelConfig, PromptConfig } from '../utils/types';
import { DEFAULT_LLM_MODELS, DEFAULT_LLM_ENDPOINTS } from '../utils/constants';
import { setLLMHealthStatus } from '../healthCheck';

export async function getSuggestion(client: LanguageClient, documents: Documents, promptConfig: PromptConfig): Promise<string | null> {
const config = vscode.workspace.getConfiguration('cicero-vscode-extension');
Expand Down Expand Up @@ -58,6 +59,7 @@ export async function getSuggestion(client: LanguageClient, documents: Documents
});
return response;
} catch (error) {
setLLMHealthStatus(false);
log('Error generating content: ' + error);
return null;
}
Expand Down
4 changes: 4 additions & 0 deletions client/src/copilot/healthCheck.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,8 @@ export async function checkCopilotHealth(client: LanguageClient): Promise<void>
copilotHealthStatus = false;
log('Copilot failed health check.');
}
}

export function setLLMHealthStatus(status: boolean): void {
copilotHealthStatus = status;
}
2 changes: 1 addition & 1 deletion server/src/copilot/llm/llmManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export async function generateContent(config: ModelConfig, documents: Documents,
log('Generating content for document: ' + documents);
const documentDetails: DocumentDetails = documents.main;

const cacheKey = generateCacheKey(documentDetails, promptConfig);
const cacheKey = generateCacheKey(documentDetails, promptConfig, config);
const maxRetries = DEFAULTS.MAX_RETRIES;

try {
Expand Down
22 changes: 19 additions & 3 deletions server/src/copilot/utils/cacheKeyGenerator.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,24 @@
import { DocumentDetails, PromptConfig } from './types';
import { DocumentDetails, PromptConfig, ModelConfig } from './types';

export function generateCacheKey(documentDetails: DocumentDetails, promptConfig: PromptConfig): string {
export function generateCacheKey(
documentDetails: DocumentDetails,
promptConfig: PromptConfig,
modelConfig: ModelConfig
): string {
const { content, cursorPosition } = documentDetails;
const { requestType, language, instruction } = promptConfig;
const { provider, llmModel, apiUrl, additionalParams, accessToken } = modelConfig;

return `${content}:${cursorPosition || content.length}:${requestType}:${language}:${instruction || ''}`;
return [
content,
cursorPosition || content.length,
requestType,
language,
instruction || '',
provider,
llmModel,
apiUrl || '',
accessToken,
JSON.stringify(additionalParams || {}),
].join(':');
}

0 comments on commit 7808bc8

Please sign in to comment.