refreshModelsCache 从 Kiro API 拉取模型列表并缓存
()
| 575 | |
| 576 | func modelSupportsImage(inputTypes []string) bool { |
| 577 | for _, t := range inputTypes { |
| 578 | lt := strings.ToLower(t) |
| 579 | if strings.Contains(lt, "image") || strings.Contains(lt, "vision") { |
| 580 | return true |
| 581 | } |
| 582 | } |
| 583 | return false |
| 584 | } |
| 585 | |
| 586 | func buildModelInfo(id, ownedBy string, supportsImage bool) map[string]interface{} { |
| 587 | modalities := []string{"text"} |
| 588 | if supportsImage { |
| 589 | modalities = append(modalities, "image") |
| 590 | } |
| 591 | modalitiesMap := map[string][]string{ |
| 592 | "input": modalities, |
| 593 | "output": []string{"text"}, |
| 594 | } |
| 595 | |
| 596 | return map[string]interface{}{ |
| 597 | "id": id, |
| 598 | "object": "model", |
| 599 | "owned_by": ownedBy, |
| 600 | "supports_image": supportsImage, |
| 601 | "input_modalities": modalities, |
| 602 | "modalities": modalitiesMap, |
| 603 | "capabilities": map[string]bool{ |
| 604 | "vision": supportsImage, |
| 605 | "image": supportsImage, |
| 606 | "image_vision": supportsImage, |
| 607 | }, |
| 608 | "info": map[string]interface{}{ |
| 609 | "meta": map[string]interface{}{ |
| 610 | "capabilities": map[string]bool{ |
| 611 | "vision": supportsImage, |
| 612 | "image_vision": supportsImage, |
| 613 | }, |
| 614 | }, |
| 615 | }, |
| 616 | } |
| 617 | } |
no test coverage detected