feat: add reasoning effort setting for Responses API (low/medium/high/xhigh)
This commit is contained in:
1 parent
0754913f43
commit
9859743f85
2 files changed
+22
-1
No files matched your search
@@ -27,10 +27,15 @@ export async function POST(request) {
|
||||
{ role: 'developer', content: systemPrompt },
|
||||
{ role: 'user', content: userPrompt },
|
||||
],
|
||||
max_output_tokens: maxTokens || 4096,
|
||||
stream: true,
|
||||
};
|
||||
|
||||
// 添加思考等级(默认 medium)
|
||||
const effort = apiConfig?.reasoningEffort || 'medium';
|
||||
if (['low', 'medium', 'high', 'xhigh'].includes(effort)) {
|
||||
requestBody.reasoning = { effort, summary: 'auto' };
|
||||
}
|
||||
|
||||
const response = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@@ -608,6 +608,22 @@ function ApiConfigForm({ data, onChange }) {
|
||||
{t('apiConfig.geminiNativeHint')}
|
||||
</div>
|
||||
)}
|
||||
{data.provider === 'openai-responses' && (
|
||||
<div style={{ marginTop: 10 }}>
|
||||
<label style={{ display: 'block', fontSize: 12, fontWeight: 500, color: 'var(--text-secondary)', marginBottom: 6 }}>思考等级 (Reasoning Effort)</label>
|
||||
<div style={{ display: 'flex', gap: 6 }}>
|
||||
{[
|
||||
{ key: 'low', label: 'low' },
|
||||
{ key: 'medium', label: 'medium' },
|
||||
{ key: 'high', label: 'high' },
|
||||
{ key: 'xhigh', label: 'xhigh' },
|
||||
].map(opt => (
|
||||
<button key={opt.key} style={{ padding: '5px 14px', border: (data.reasoningEffort || 'medium') === opt.key ? '2px solid var(--accent)' : '1px solid var(--border-light)', borderRadius: 'var(--radius-sm)', background: (data.reasoningEffort || 'medium') === opt.key ? 'var(--accent-light)' : 'var(--bg-primary)', cursor: 'pointer', fontSize: 12, fontWeight: (data.reasoningEffort || 'medium') === opt.key ? 600 : 400, color: (data.reasoningEffort || 'medium') === opt.key ? 'var(--accent)' : 'var(--text-primary)', transition: 'all 0.15s' }} onClick={() => update('reasoningEffort', opt.key)}>{opt.label}</button>
|
||||
))}
|
||||
</div>
|
||||
<div style={{ fontSize: 11, color: 'var(--text-muted)', marginTop: 4 }}>控制模型推理深度,默认 Medium,XHigh 质量最高但更慢</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<FieldInput label="API Key" value={data.apiKey} onChange={v => update('apiKey', v)} placeholder={t('apiConfig.apiKeyPlaceholder')} secret />
|
||||
|
||||
Reference in new issue
Block a user