feat(test): 添加 Gemini 双响应格式支持

添加对两种 Gemini 响应格式的支持:
- AI Studio: `{"candidates": [...]}`
- Gemini CLI: `{"response": {"candidates": [...]}}`

通过 unwrap 逻辑自动检测并适配两种格式,确保账号测试功能
对所有 Gemini 账号类型都能正常工作。

合并 PR #43 的剩余功能到 PR #37
This commit is contained in:
IanShaw027
2025-12-26 22:31:12 +08:00
parent d851818035
commit 2714be99a9

View File

@@ -592,7 +592,12 @@ func (s *AccountTestService) processGeminiStream(c *gin.Context, body io.Reader)
continue
}
// Extract text from candidates[0].content.parts[].text
// Support two Gemini response formats:
// - AI Studio: {"candidates": [...]}
// - Gemini CLI: {"response": {"candidates": [...]}}
if resp, ok := data["response"].(map[string]any); ok && resp != nil {
data = resp
}
if candidates, ok := data["candidates"].([]any); ok && len(candidates) > 0 {
if candidate, ok := candidates[0].(map[string]any); ok {
// Check for completion