| 283 | } |
| 284 | |
| 285 | func buildTestRequest(model string) *dto.GeneralOpenAIRequest { |
| 286 | testRequest := &dto.GeneralOpenAIRequest{ |
| 287 | Model: "", // this will be set later |
| 288 | Stream: false, |
| 289 | } |
| 290 | |
| 291 | // 先判断是否为 Embedding 模型 |
| 292 | if strings.Contains(strings.ToLower(model), "embedding") || // 其他 embedding 模型 |
| 293 | strings.HasPrefix(model, "m3e") || // m3e 系列模型 |
| 294 | strings.Contains(model, "bge-") { |
| 295 | testRequest.Model = model |
| 296 | // Embedding 请求 |
| 297 | testRequest.Input = []any{"hello world"} // 修改为any,因为dto/openai_request.go 的ParseInput方法无法处理[]string类型 |
| 298 | return testRequest |
| 299 | } |
| 300 | // 并非Embedding 模型 |
| 301 | if strings.HasPrefix(model, "o") { |
| 302 | testRequest.MaxCompletionTokens = 10 |
| 303 | } else if strings.Contains(model, "thinking") { |
| 304 | if !strings.Contains(model, "claude") { |
| 305 | testRequest.MaxTokens = 50 |
| 306 | } |
| 307 | } else if strings.Contains(model, "gemini") { |
| 308 | testRequest.MaxTokens = 3000 |
| 309 | } else { |
| 310 | testRequest.MaxTokens = 10 |
| 311 | } |
| 312 | |
| 313 | testMessage := dto.Message{ |
| 314 | Role: "user", |
| 315 | Content: "hi", |
| 316 | } |
| 317 | testRequest.Model = model |
| 318 | testRequest.Messages = append(testRequest.Messages, testMessage) |
| 319 | return testRequest |
| 320 | } |
| 321 | |
| 322 | func TestChannel(c *gin.Context) { |
| 323 | channelId, err := strconv.Atoi(c.Param("id")) |