(tools []map[string]any)
| 97 | tools []map[string]any, |
| 98 | options *LLMRequestOptions, |
| 99 | ) <-chan EventResult |
| 100 | |
| 101 | Complete( |
| 102 | ctx context.Context, |
| 103 | systemPrompt string, |
| 104 | messages []map[string]any, |
| 105 | opts CompleteOptions, |
| 106 | ) (string, error) |
| 107 | } |
| 108 | |
| 109 | func isDeepSeekModel(model string) bool { |
| 110 | return strings.HasPrefix(strings.ToLower(strings.TrimSpace(model)), "deepseek") |
| 111 | } |
| 112 | |
| 113 | func isOpenAIModel(model string) bool { |
| 114 | modelLower := strings.ToLower(strings.TrimSpace(model)) |
| 115 | for _, prefix := range []string{"gpt-", "o1", "o3", "o4"} { |
| 116 | if strings.HasPrefix(modelLower, prefix) { |
| 117 | return true |
| 118 | } |
| 119 | } |
| 120 | return false |
| 121 | } |
| 122 | |
| 123 | func isOpenAICompatibleModel(model string) bool { |
| 124 | return isDeepSeekModel(model) || isOpenAIModel(model) |
| 125 | } |
no test coverage detected