mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-05 08:55:28 +08:00
114 lines
4.0 KiB
Go
114 lines
4.0 KiB
Go
package util
|
|
|
|
// BuildOpenAIChatStreamDeltaChoice is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildChatStreamDeltaChoice for new code.
|
|
func BuildOpenAIChatStreamDeltaChoice(index int, delta map[string]any) map[string]any {
|
|
return map[string]any{
|
|
"delta": delta,
|
|
"index": index,
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIChatStreamFinishChoice is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildChatStreamFinishChoice for new code.
|
|
func BuildOpenAIChatStreamFinishChoice(index int, finishReason string) map[string]any {
|
|
return map[string]any{
|
|
"delta": map[string]any{},
|
|
"index": index,
|
|
"finish_reason": finishReason,
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIChatStreamChunk is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildChatStreamChunk for new code.
|
|
func BuildOpenAIChatStreamChunk(completionID string, created int64, model string, choices []map[string]any, usage map[string]any) map[string]any {
|
|
out := map[string]any{
|
|
"id": completionID,
|
|
"object": "chat.completion.chunk",
|
|
"created": created,
|
|
"model": model,
|
|
"choices": choices,
|
|
}
|
|
if len(usage) > 0 {
|
|
out["usage"] = usage
|
|
}
|
|
return out
|
|
}
|
|
|
|
// BuildOpenAIChatUsage is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildChatUsage for new code.
|
|
func BuildOpenAIChatUsage(finalPrompt, finalThinking, finalText string) map[string]any {
|
|
promptTokens := EstimateTokens(finalPrompt)
|
|
reasoningTokens := EstimateTokens(finalThinking)
|
|
completionTokens := EstimateTokens(finalText)
|
|
return map[string]any{
|
|
"prompt_tokens": promptTokens,
|
|
"completion_tokens": reasoningTokens + completionTokens,
|
|
"total_tokens": promptTokens + reasoningTokens + completionTokens,
|
|
"completion_tokens_details": map[string]any{
|
|
"reasoning_tokens": reasoningTokens,
|
|
},
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIResponsesCreatedPayload is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildResponsesCreatedPayload for new code.
|
|
func BuildOpenAIResponsesCreatedPayload(responseID, model string) map[string]any {
|
|
return map[string]any{
|
|
"type": "response.created",
|
|
"id": responseID,
|
|
"object": "response",
|
|
"model": model,
|
|
"status": "in_progress",
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIResponsesTextDeltaPayload is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildResponsesTextDeltaPayload for new code.
|
|
func BuildOpenAIResponsesTextDeltaPayload(responseID, delta string) map[string]any {
|
|
return map[string]any{
|
|
"type": "response.output_text.delta",
|
|
"id": responseID,
|
|
"delta": delta,
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIResponsesReasoningDeltaPayload is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildResponsesReasoningDeltaPayload for new code.
|
|
func BuildOpenAIResponsesReasoningDeltaPayload(responseID, delta string) map[string]any {
|
|
return map[string]any{
|
|
"type": "response.reasoning.delta",
|
|
"id": responseID,
|
|
"delta": delta,
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIResponsesToolCallDeltaPayload is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildResponsesToolCallDeltaPayload for new code.
|
|
func BuildOpenAIResponsesToolCallDeltaPayload(responseID string, toolCalls []map[string]any) map[string]any {
|
|
return map[string]any{
|
|
"type": "response.output_tool_call.delta",
|
|
"id": responseID,
|
|
"tool_calls": toolCalls,
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIResponsesToolCallDonePayload is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildResponsesToolCallDonePayload for new code.
|
|
func BuildOpenAIResponsesToolCallDonePayload(responseID string, toolCalls []map[string]any) map[string]any {
|
|
return map[string]any{
|
|
"type": "response.output_tool_call.done",
|
|
"id": responseID,
|
|
"tool_calls": toolCalls,
|
|
}
|
|
}
|
|
|
|
// BuildOpenAIResponsesCompletedPayload is kept for backward compatibility.
|
|
// Prefer internal/format/openai.BuildResponsesCompletedPayload for new code.
|
|
func BuildOpenAIResponsesCompletedPayload(response map[string]any) map[string]any {
|
|
return map[string]any{
|
|
"type": "response.completed",
|
|
"response": response,
|
|
}
|
|
}
|