mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-11 18:11:21 +08:00
- Fix JSON extraction logic by prioritizing brace counting method - Add support for DOUBAO string array coordinate format - Introduce IS_UI_TARS helper function for model type checking - Add comprehensive tests for JSON parsing and coordinate handling - Improve error handling with retry delays for LLM service failures
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package option
|
|
|
|
func NewAIServiceOptions(opts ...AIServiceOption) *AIServiceOptions {
|
|
services := &AIServiceOptions{}
|
|
for _, option := range opts {
|
|
option(services)
|
|
}
|
|
return services
|
|
}
|
|
|
|
type AIServiceOptions struct {
|
|
CVService CVServiceType
|
|
LLMService LLMServiceType
|
|
}
|
|
|
|
type AIServiceOption func(*AIServiceOptions)
|
|
|
|
type CVServiceType string
|
|
|
|
const (
|
|
CVServiceTypeVEDEM CVServiceType = "vedem"
|
|
CVServiceTypeOpenCV CVServiceType = "opencv"
|
|
)
|
|
|
|
func WithCVService(service CVServiceType) AIServiceOption {
|
|
return func(opts *AIServiceOptions) {
|
|
opts.CVService = service
|
|
}
|
|
}
|
|
|
|
type LLMServiceType string
|
|
|
|
func IS_UI_TARS(modelType LLMServiceType) bool {
|
|
return modelType == DOUBAO_1_5_UI_TARS_250328 ||
|
|
modelType == DOUBAO_1_5_UI_TARS_250428
|
|
}
|
|
|
|
const (
|
|
DOUBAO_1_5_UI_TARS_250328 LLMServiceType = "doubao-1.5-ui-tars-250328"
|
|
DOUBAO_1_5_UI_TARS_250428 LLMServiceType = "doubao-1.5-ui-tars-250428" // not support function calling and json response
|
|
DOUBAO_1_5_THINKING_VISION_PRO_250428 LLMServiceType = "doubao-1.5-thinking-vision-pro-250428"
|
|
OPENAI_GPT_4O LLMServiceType = "openai/gpt-4o"
|
|
DEEPSEEK_R1_250528 LLMServiceType = "deepseek-r1-250528"
|
|
)
|
|
|
|
func WithLLMService(modelType LLMServiceType) AIServiceOption {
|
|
return func(opts *AIServiceOptions) {
|
|
opts.LLMService = modelType
|
|
}
|
|
}
|