(c *gin.Context)
| 21 | ) |
| 22 | |
| 23 | func getAndValidateGeminiRequest(c *gin.Context) (*gemini.GeminiChatRequest, error) { |
| 24 | request := &gemini.GeminiChatRequest{} |
| 25 | err := common.UnmarshalBodyReusable(c, request) |
| 26 | if err != nil { |
| 27 | return nil, err |
| 28 | } |
| 29 | if len(request.Contents) == 0 { |
| 30 | return nil, errors.New("contents is required") |
| 31 | } |
| 32 | return request, nil |
| 33 | } |
| 34 | |
| 35 | // 流模式 |
| 36 | // /v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=xxx |