feat: enhanced Code Context and Project Summary Features (#1191)

* fix: docker prod env variable fix

* lint and typecheck

* removed hardcoded tag

* better summary generation

* improved  summary generation for context optimization

* remove think tags from the generation
This commit is contained in:
Anirban Kar
2025-01-29 15:37:20 +05:30
committed by GitHub
parent a199295ad8
commit 7016111906
14 changed files with 416 additions and 86 deletions

View File

@@ -7,6 +7,7 @@ import { MAX_TOKENS } from '~/lib/.server/llm/constants';
import { LLMManager } from '~/lib/modules/llm/manager';
import type { ModelInfo } from '~/lib/modules/llm/types';
import { getApiKeysFromCookie, getProviderSettingsFromCookie } from '~/lib/api/cookies';
import { createScopedLogger } from '~/utils/logger';
export async function action(args: ActionFunctionArgs) {
return llmCallAction(args);
@@ -21,6 +22,8 @@ async function getModelList(options: {
return llmManager.updateModelList(options);
}
const logger = createScopedLogger('api.llmcall');
async function llmCallAction({ context, request }: ActionFunctionArgs) {
const { system, message, model, provider, streamOutput } = await request.json<{
system: string;
@@ -106,6 +109,8 @@ async function llmCallAction({ context, request }: ActionFunctionArgs) {
throw new Error('Provider not found');
}
logger.info(`Generating response Provider: ${provider.name}, Model: ${modelDetails.name}`);
const result = await generateText({
system,
messages: [
@@ -123,6 +128,7 @@ async function llmCallAction({ context, request }: ActionFunctionArgs) {
maxTokens: dynamicMaxTokens,
toolChoice: 'none',
});
logger.info(`Generated response`);
return new Response(JSON.stringify(result), {
status: 200,