fix: the assistant is told which search engine it has, results say which one they came from (and why, when DuckDuckGo stood in), the stand-in is logged
This commit is contained in:
1 parent
060975a443
commit
74a22ab57f
4 files changed
+60
-23
No files matched your search
@@ -54,24 +54,24 @@ func TestSearchProviders(t *testing.T) {
|
||||
braveURL, tavilyURL = srv.URL+"/res/v1/web/search", srv.URL+"/search"
|
||||
ctx := context.Background()
|
||||
|
||||
rs, err := searchWith(ctx, searchConf{Engine: "searxng", URL: srv.URL}, "q1", 6)
|
||||
if err != nil || len(rs) != 1 || rs[0].Title != "SX" || gotQ != "q1" {
|
||||
rs, used, err := searchWith(ctx, searchConf{Engine: "searxng", URL: srv.URL}, "q1", 6)
|
||||
if err != nil || len(rs) != 1 || rs[0].Title != "SX" || gotQ != "q1" || used != "SearXNG" {
|
||||
t.Fatalf("searxng: %+v %v", rs, err)
|
||||
}
|
||||
rs, err = searchWith(ctx, searchConf{Engine: "brave", Key: "bk"}, "q2", 6)
|
||||
rs, _, err = searchWith(ctx, searchConf{Engine: "brave", Key: "bk"}, "q2", 6)
|
||||
if err != nil || rs[0].Snippet != "from brave" || gotKey != "bk" || gotQ != "q2" {
|
||||
t.Fatalf("brave: %+v %v %q", rs, err, gotKey)
|
||||
}
|
||||
rs, err = searchWith(ctx, searchConf{Engine: "tavily", Key: "tk"}, "q3", 6)
|
||||
if err != nil || rs[0].Title != "TV" || gotKey != "Bearer tk" || gotQ != "q3" {
|
||||
rs, used, err = searchWith(ctx, searchConf{Engine: "tavily", Key: "tk"}, "q3", 6)
|
||||
if err != nil || rs[0].Title != "TV" || gotKey != "Bearer tk" || gotQ != "q3" || used != "Tavily" {
|
||||
t.Fatalf("tavily: %+v %v %q", rs, err, gotKey)
|
||||
}
|
||||
// The chosen one fails: DuckDuckGo instead (stood in for here).
|
||||
ddgSearch = func(ctx context.Context, q string, n int) ([]searchResult, error) {
|
||||
return []searchResult{{Title: "DDG"}}, nil
|
||||
}
|
||||
rs, err = searchWith(ctx, searchConf{Engine: "searxng", URL: srv.URL + "/broken"}, "q4", 6)
|
||||
if err != nil || rs[0].Title != "DDG" {
|
||||
rs, used, err = searchWith(ctx, searchConf{Engine: "searxng", URL: srv.URL + "/broken"}, "q4", 6)
|
||||
if err != nil || rs[0].Title != "DDG" || !strings.Contains(used, "DuckDuckGo") || !strings.Contains(used, "SearXNG не ответил") {
|
||||
t.Fatalf("fallback: %+v %v", rs, err)
|
||||
}
|
||||
}
|
||||
@@ -89,9 +89,19 @@ func TestSearchLimitFallsBack(t *testing.T) {
|
||||
}
|
||||
braveURL, tavilyURL = srv.URL, srv.URL
|
||||
for _, e := range []string{"brave", "tavily", "searxng"} {
|
||||
rs, err := searchWith(context.Background(), searchConf{Engine: e, Key: "k", URL: srv.URL}, "x", 6)
|
||||
rs, _, err := searchWith(context.Background(), searchConf{Engine: e, Key: "k", URL: srv.URL}, "x", 6)
|
||||
if err != nil || len(rs) != 1 || rs[0].Title != "DDG x" {
|
||||
t.Fatalf("%s: %+v %v", e, rs, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The model is told which engine it searches with.
|
||||
func TestSearchPromptNamesEngine(t *testing.T) {
|
||||
if p := searchPrompt(searchConf{Engine: "tavily"}); !strings.Contains(p, "Tavily") || strings.Contains(p, "DuckDuckGo") {
|
||||
t.Fatalf("tavily: %s", p)
|
||||
}
|
||||
if p := searchPrompt(searchConf{}); !strings.Contains(p, "DuckDuckGo") {
|
||||
t.Fatalf("default: %s", p)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user