mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-04 21:23:07 +00:00
feat: enhance query options with maxThinkingTokens support
- Introduced maxThinkingTokens to the query options for Claude models, allowing for more precise control over the SDK's reasoning capabilities. - Refactored the enhance handler to utilize the new getThinkingTokenBudget function, improving the integration of thinking levels into the query process. - Updated the query options structure for clarity and maintainability, ensuring consistent handling of model parameters. This update enhances the application's ability to adapt reasoning capabilities based on user-defined thinking levels, improving overall performance.
This commit is contained in:
@@ -9,7 +9,12 @@ import type { Request, Response } from 'express';
|
|||||||
import { query } from '@anthropic-ai/claude-agent-sdk';
|
import { query } from '@anthropic-ai/claude-agent-sdk';
|
||||||
import { createLogger } from '@automaker/utils';
|
import { createLogger } from '@automaker/utils';
|
||||||
import { resolveModelString } from '@automaker/model-resolver';
|
import { resolveModelString } from '@automaker/model-resolver';
|
||||||
import { CLAUDE_MODEL_MAP, isCursorModel, ThinkingLevel } from '@automaker/types';
|
import {
|
||||||
|
CLAUDE_MODEL_MAP,
|
||||||
|
isCursorModel,
|
||||||
|
ThinkingLevel,
|
||||||
|
getThinkingTokenBudget,
|
||||||
|
} from '@automaker/types';
|
||||||
import { ProviderFactory } from '../../../providers/provider-factory.js';
|
import { ProviderFactory } from '../../../providers/provider-factory.js';
|
||||||
import type { SettingsService } from '../../../services/settings-service.js';
|
import type { SettingsService } from '../../../services/settings-service.js';
|
||||||
import { getPromptCustomization } from '../../../lib/settings-helpers.js';
|
import { getPromptCustomization } from '../../../lib/settings-helpers.js';
|
||||||
@@ -208,16 +213,22 @@ export function createEnhanceHandler(
|
|||||||
// Use Claude SDK for Claude models
|
// Use Claude SDK for Claude models
|
||||||
logger.info(`Using Claude provider for model: ${resolvedModel}`);
|
logger.info(`Using Claude provider for model: ${resolvedModel}`);
|
||||||
|
|
||||||
|
// Convert thinkingLevel to maxThinkingTokens for SDK
|
||||||
|
const maxThinkingTokens = getThinkingTokenBudget(thinkingLevel);
|
||||||
|
const queryOptions: Parameters<typeof query>[0]['options'] = {
|
||||||
|
model: resolvedModel,
|
||||||
|
systemPrompt,
|
||||||
|
maxTurns: 1,
|
||||||
|
allowedTools: [],
|
||||||
|
permissionMode: 'acceptEdits',
|
||||||
|
};
|
||||||
|
if (maxThinkingTokens) {
|
||||||
|
queryOptions.maxThinkingTokens = maxThinkingTokens;
|
||||||
|
}
|
||||||
|
|
||||||
const stream = query({
|
const stream = query({
|
||||||
prompt: userPrompt,
|
prompt: userPrompt,
|
||||||
options: {
|
options: queryOptions,
|
||||||
model: resolvedModel,
|
|
||||||
systemPrompt,
|
|
||||||
maxTurns: 1,
|
|
||||||
allowedTools: [],
|
|
||||||
permissionMode: 'acceptEdits',
|
|
||||||
thinkingLevel: thinkingLevel, // Pass thinking level for Claude models
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
enhancedText = await extractTextFromStream(stream);
|
enhancedText = await extractTextFromStream(stream);
|
||||||
|
|||||||
Reference in New Issue
Block a user