fix: custom API's trailing space and empty tool id issues (#326)

* fix: generate random tool call id when serving API does not have one

* tmp
This commit is contained in:
Fan
2025-08-14 21:18:52 +08:00
committed by GitHub
parent 2403061bab
commit 51207043d0

View File

@@ -563,7 +563,7 @@ export class OpenAIContentGenerator implements ContentGenerator {
// Add combined text if any
if (combinedText) {
combinedParts.push({ text: combinedText });
combinedParts.push({ text: combinedText.trimEnd() });
}
// Add function calls
@@ -1164,7 +1164,11 @@ export class OpenAIContentGenerator implements ContentGenerator {
// Handle text content
if (choice.message.content) {
parts.push({ text: choice.message.content });
if (typeof choice.message.content === 'string') {
parts.push({ text: choice.message.content.trimEnd() });
} else {
parts.push({ text: choice.message.content });
}
}
// Handle tool calls
@@ -1249,7 +1253,11 @@ export class OpenAIContentGenerator implements ContentGenerator {
// Handle text content
if (choice.delta?.content) {
parts.push({ text: choice.delta.content });
if (typeof choice.delta.content === 'string') {
parts.push({ text: choice.delta.content.trimEnd() });
} else {
parts.push({ text: choice.delta.content });
}
}
// Handle tool calls - only accumulate during streaming, emit when complete
@@ -1290,7 +1298,9 @@ export class OpenAIContentGenerator implements ContentGenerator {
parts.push({
functionCall: {
id: accumulatedCall.id,
id:
accumulatedCall.id ||
`call_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
name: accumulatedCall.name,
args,
},
@@ -1766,7 +1776,7 @@ export class OpenAIContentGenerator implements ContentGenerator {
}
}
messageContent = textParts.join('');
messageContent = textParts.join('').trimEnd();
}
const choice: OpenAIChoice = {