Claude: console.log system before messages
| @@ -107,6 +107,7 @@ async function sendClaudeRequest(request, response) { | ||
| 107 | 107 | } |
| 108 | 108 | |
| 109 | 109 | const requestBody = { |
| 110 | + /** @type {any} */ system: '', | |
| 110 | 111 | messages: convertedPrompt.messages, |
| 111 | 112 | model: request.body.model, |
| 112 | 113 | max_tokens: request.body.max_tokens, |
| @@ -120,6 +121,8 @@ async function sendClaudeRequest(request, response) { | ||
| 120 | 121 | requestBody.system = enableSystemPromptCache |
| 121 | 122 | ? [{ type: 'text', text: convertedPrompt.systemPrompt, cache_control: { type: 'ephemeral' } }] |
| 122 | 123 | : convertedPrompt.systemPrompt; |
| 124 | + } else { | |
| 125 | + delete requestBody.system; | |
| 123 | 126 | } |
| 124 | 127 | if (Array.isArray(request.body.tools) && request.body.tools.length > 0) { |
| 125 | 128 | // Claude doesn't do prefills on function calls, and doesn't allow empty messages |
| @@ -156,12 +159,13 @@ async function sendClaudeRequest(request, response) { | ||
| 156 | 159 | forwardFetchResponse(generateResponse, response); |
| 157 | 160 | } else { |
| 158 | 161 | if (!generateResponse.ok) { |
| 159 | - console.log(color.red(`Claude API returned error: ${generateResponse.status} ${generateResponse.statusText}\n${await generateResponse.text()}\n${divider}`)); | |
| 162 | + const generateResponseText = await generateResponse.text(); | |
| 163 | + console.log(color.red(`Claude API returned error: ${generateResponse.status} ${generateResponse.statusText}\n${generateResponseText}\n${divider}`)); | |
| 160 | 164 | return response.status(generateResponse.status).send({ error: true }); |
| 161 | 165 | } |
| 162 | 166 | |
| 163 | 167 | const generateResponseJson = await generateResponse.json(); |
| 164 | 168 | const responseText = generateResponseJson?.content?.[0]?.text || ''; |
| 165 | 169 | console.log('Claude response:', generateResponseJson); |
| 166 | 170 | |
| 167 | 171 | // Wrap it back to OAI format + save the original content |