65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
|
|
const {
|
|
applyDeepSeekChatOptions,
|
|
isDeepSeekOfficialConfig,
|
|
} = require('../src/services/deepseekConfig');
|
|
|
|
function baseBody(model) {
|
|
return {
|
|
model,
|
|
messages: [{ role: 'user', content: 'Hello' }],
|
|
temperature: 0.7,
|
|
max_tokens: 5,
|
|
};
|
|
}
|
|
|
|
test('detects official DeepSeek configs by provider or base URL', () => {
|
|
assert.equal(isDeepSeekOfficialConfig({ provider: 'deepseek' }), true);
|
|
assert.equal(isDeepSeekOfficialConfig({ base_url: 'https://api.deepseek.com' }), true);
|
|
assert.equal(isDeepSeekOfficialConfig({ provider: 'xy', base_url: 'https://api.302.ai/v1' }), false);
|
|
});
|
|
|
|
test('maps deprecated deepseek-chat to deepseek-v4-flash non-thinking mode', () => {
|
|
const body = applyDeepSeekChatOptions(
|
|
{ provider: 'deepseek', base_url: 'https://api.deepseek.com' },
|
|
baseBody('deepseek-chat')
|
|
);
|
|
|
|
assert.equal(body.model, 'deepseek-v4-flash');
|
|
assert.deepEqual(body.thinking, { type: 'disabled' });
|
|
assert.equal(body.reasoning_effort, undefined);
|
|
assert.equal(body.temperature, 0.7);
|
|
});
|
|
|
|
test('maps deprecated deepseek-reasoner to deepseek-v4-flash thinking mode', () => {
|
|
const body = applyDeepSeekChatOptions(
|
|
{ provider: 'deepseek', base_url: 'https://api.deepseek.com' },
|
|
baseBody('deepseek-reasoner')
|
|
);
|
|
|
|
assert.equal(body.model, 'deepseek-v4-flash');
|
|
assert.deepEqual(body.thinking, { type: 'enabled' });
|
|
assert.equal(body.temperature, undefined);
|
|
});
|
|
|
|
test('applies explicit DeepSeek thinking settings for V4 models', () => {
|
|
const body = applyDeepSeekChatOptions(
|
|
{
|
|
provider: 'deepseek',
|
|
base_url: 'https://api.deepseek.com',
|
|
settings: JSON.stringify({
|
|
deepseek_thinking: 'enabled',
|
|
deepseek_reasoning_effort: 'max',
|
|
}),
|
|
},
|
|
baseBody('deepseek-v4-pro')
|
|
);
|
|
|
|
assert.equal(body.model, 'deepseek-v4-pro');
|
|
assert.deepEqual(body.thinking, { type: 'enabled' });
|
|
assert.equal(body.reasoning_effort, 'max');
|
|
assert.equal(body.temperature, undefined);
|
|
});
|