Initial qiwei secondary development handoff
This commit is contained in:
101
config/types_test.go
Normal file
101
config/types_test.go
Normal file
@@ -0,0 +1,101 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// 注意:这些测试函数测试的是未导出的私有函数
|
||||
// 如果编译失败,说明函数未定义或包名不匹配
|
||||
|
||||
func TestIsRerankModelName(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
model string
|
||||
expected bool
|
||||
}{
|
||||
{"gte-rerank-v2", "gte-rerank-v2", true},
|
||||
{"qwen3-rerank", "qwen3-rerank", true},
|
||||
{"bge-rerank-large", "bge-rerank-large", true},
|
||||
{"text-embedding-v4", "text-embedding-v4", false},
|
||||
{"text-embedding-v3", "text-embedding-v3", false},
|
||||
{"qwen-turbo", "qwen-turbo", false},
|
||||
{"empty string", "", false},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
result := isRerankModelName(tt.model)
|
||||
if result != tt.expected {
|
||||
t.Errorf("isRerankModelName(%q) = %v, want %v", tt.model, result, tt.expected)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsEmbeddingModelName(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
model string
|
||||
expected bool
|
||||
}{
|
||||
{"text-embedding-v4", "text-embedding-v4", true},
|
||||
{"text-embedding-v3", "text-embedding-v3", true},
|
||||
{"bge-large-zh", "bge-large-zh", true},
|
||||
{"gte-large", "gte-large", true},
|
||||
{"gte-rerank-v2", "gte-rerank-v2", false},
|
||||
{"qwen3-rerank", "qwen3-rerank", false},
|
||||
{"qwen-turbo", "qwen-turbo", false},
|
||||
{"empty string", "", false},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
result := isEmbeddingModelName(tt.model)
|
||||
if result != tt.expected {
|
||||
t.Errorf("isEmbeddingModelName(%q) = %v, want %v", tt.model, result, tt.expected)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyDefaultsFixesWrongModelConfig(t *testing.T) {
|
||||
// 测试错误配置会被自动修正
|
||||
cfg := NewDefaultConfig()
|
||||
|
||||
// 模拟用户错误地将 Rerank 模型填到 Embedding 字段
|
||||
cfg.AutoReplyConfig.Retrieval.EmbeddingModel = "gte-rerank-v2"
|
||||
cfg.AutoReplyConfig.Retrieval.RerankModel = "qwen3-rerank"
|
||||
|
||||
cfg.ApplyDefaults()
|
||||
|
||||
// 验证错误的 Embedding 模型被修正为默认值
|
||||
if cfg.AutoReplyConfig.Retrieval.EmbeddingModel != "text-embedding-v4" {
|
||||
t.Errorf("Expected embedding model to be corrected to 'text-embedding-v4', got %q", cfg.AutoReplyConfig.Retrieval.EmbeddingModel)
|
||||
}
|
||||
|
||||
// 验证 Rerank 模型保持不变
|
||||
if cfg.AutoReplyConfig.Retrieval.RerankModel != "qwen3-rerank" {
|
||||
t.Errorf("Expected rerank model to remain 'qwen3-rerank', got %q", cfg.AutoReplyConfig.Retrieval.RerankModel)
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyDefaultsFixesWrongRerankConfig(t *testing.T) {
|
||||
// 测试错误配置会被自动修正
|
||||
cfg := NewDefaultConfig()
|
||||
|
||||
// 模拟用户错误地将 Embedding 模型填到 Rerank 字段
|
||||
cfg.AutoReplyConfig.Retrieval.EmbeddingModel = "text-embedding-v4"
|
||||
cfg.AutoReplyConfig.Retrieval.RerankModel = "text-embedding-v3"
|
||||
|
||||
cfg.ApplyDefaults()
|
||||
|
||||
// 验证 Embedding 模型保持不变
|
||||
if cfg.AutoReplyConfig.Retrieval.EmbeddingModel != "text-embedding-v4" {
|
||||
t.Errorf("Expected embedding model to remain 'text-embedding-v4', got %q", cfg.AutoReplyConfig.Retrieval.EmbeddingModel)
|
||||
}
|
||||
|
||||
// 验证错误的 Rerank 模型被修正为默认值
|
||||
if cfg.AutoReplyConfig.Retrieval.RerankModel != "qwen3-rerank" {
|
||||
t.Errorf("Expected rerank model to be corrected to 'qwen3-rerank', got %q", cfg.AutoReplyConfig.Retrieval.RerankModel)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user