feat(search): 新增腾讯云·元宝搜索与秘塔搜索两家 provider
接入位表六家扩到八家,端点形状与错误码一字未改(契约 v0.87,仅两处名单)。
- tencent_wsa:POST {base}/SearchPro + Authorization Bearer,零签名。
两条官方口径决定实现:HTTP 状态码恒 200(判失败只能读 Response.Error.Code);
Pages 是「JSON 字符串数组」需二次解析。错误码按官方表分类
(UnauthorizedOperation/AuthFailure.* = 凭据、ResourceUnavailable = 欠费、
RequestLimitExceeded* = 限流),文案只带 code 不带上游 Message。
- metaso:POST {base}/api/v1/search,响应 schema 仅第三方来源且互相打架,
实现走宽松解析(数组候选与字段名回退),逐处标「未实测」。
- 零新 env 键:两家只走 $DATA_DIR/config/plugins/web-search.json,
.env / .env.example 未动;组合根 websearch_providers.go 零功能改动。
- 契约 v0.87:values.provider 合法闭集与 plugin.providers 候选各加两条,
计数不变(14 + 25 + 40 = 79)。
This commit is contained in:
1 parent
8e3311cea2
commit
ce9af42945
21 files changed
+1219
-36
No files matched your search
@@ -14,6 +14,7 @@ func TestRegistry_KnownAndKnownNames(t *testing.T) {
|
||||
t.Parallel()
|
||||
for _, name := range []string{
|
||||
NameSearXNG, NameZhipu, NameAliyunIQS, NameBocha, NameVolcengine, NameBaiduQianfan,
|
||||
NameTencentWSA, NameMetaso,
|
||||
"Zhipu", " bocha ",
|
||||
} {
|
||||
if !Known(name) {
|
||||
@@ -26,8 +27,8 @@ func TestRegistry_KnownAndKnownNames(t *testing.T) {
|
||||
}
|
||||
}
|
||||
names := KnownNames()
|
||||
if len(names) != 6 {
|
||||
t.Fatalf("KnownNames() = %v, want 六家", names)
|
||||
if len(names) != 8 {
|
||||
t.Fatalf("KnownNames() = %v, want 八家", names)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,9 +104,10 @@ func TestRegistry_EmptyAndNilSafe(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestRegistry_DefaultBaseURLMatchesEnvDefaults 钉住接入位表里的**默认基地址**逐字等于
|
||||
// `.env` 的标签默认值(`internal/config/websearch.go` 的 `*BaseURL` 那一组,`.env` 冻结的
|
||||
// 基础键)。
|
||||
// TestRegistry_DefaultBaseURLMatchesEnvDefaults 钉住接入位表里的**默认基地址**:
|
||||
// 「有 `.env` 字段的家」那几个值**逐字等于** `.env` 的标签默认值
|
||||
// (`internal/config/websearch.go` 的 `*BaseURL` 那一组,`.env` 冻结的基础键);
|
||||
// 没有 `.env` 字段的家(tencent_wsa / metaso)只在这里给出唯一出处。
|
||||
//
|
||||
// 为什么值得一条逐字表:接入位表是本片新增的「这家没配 baseUrl ⇒ 回落哪个地址」的
|
||||
// **唯一出处**,而 `.env` 侧那几个键仍然存在、仍然参与播种。两处一旦漂移,同一家 provider
|
||||
@@ -118,6 +120,9 @@ func TestRegistry_DefaultBaseURLMatchesEnvDefaults(t *testing.T) {
|
||||
NameBocha: "https://api.bocha.cn",
|
||||
NameVolcengine: "https://open.feedcoopapi.com",
|
||||
NameBaiduQianfan: "https://qianfan.baidubce.com",
|
||||
// 没有 `.env` 字段的两家:默认地址只来自本表(登记在 registry.go 的接入位表里)。
|
||||
NameTencentWSA: "https://api.wsa.cloud.tencent.com",
|
||||
NameMetaso: "https://metaso.cn",
|
||||
}
|
||||
for name, base := range want {
|
||||
if got := DefaultBaseURL(name); got != base {
|
||||
|
||||
Reference in new issue
Block a user