mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
bf0eeb0e80
* feat(search): add Sogou search provider * fix(search): use new endpoint and API version for sogou * feat(search): add Serper, SearXNG, Jina, Exa, Bocha, DuckDuckGo search providers Add six new search provider integrations: - Serper: Google search via Serper API - SearXNG: Self-hosted meta search engine - Jina: Jina AI search API - Exa: Exa neural search API - Bocha: Bocha AI web search - DuckDuckGo: DuckDuckGo HTML search (no API key required) Each provider includes backend implementation, config schema, i18n entries, and Vue settings component. * feat(search): add Yandex search provider Add Yandex search provider with XML response parsing and configurable search type (RU/TR/COM). --------- Co-authored-by: Menci <mencici@msn.com>
61 lines
1.8 KiB
Go
61 lines
1.8 KiB
Go
package searchproviders
|
|
|
|
import "time"
|
|
|
|
type ProviderName string
|
|
|
|
const (
|
|
ProviderBrave ProviderName = "brave"
|
|
ProviderBing ProviderName = "bing"
|
|
ProviderGoogle ProviderName = "google"
|
|
ProviderTavily ProviderName = "tavily"
|
|
ProviderSogou ProviderName = "sogou"
|
|
ProviderSerper ProviderName = "serper"
|
|
ProviderSearXNG ProviderName = "searxng"
|
|
ProviderJina ProviderName = "jina"
|
|
ProviderExa ProviderName = "exa"
|
|
ProviderBocha ProviderName = "bocha"
|
|
ProviderDuckDuckGo ProviderName = "duckduckgo"
|
|
ProviderYandex ProviderName = "yandex"
|
|
)
|
|
|
|
type ProviderConfigSchema struct {
|
|
Fields map[string]ProviderFieldSchema `json:"fields"`
|
|
}
|
|
|
|
type ProviderFieldSchema struct {
|
|
Type string `json:"type"`
|
|
Title string `json:"title,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Required bool `json:"required,omitempty"`
|
|
Enum []string `json:"enum,omitempty"`
|
|
Example any `json:"example,omitempty"`
|
|
}
|
|
|
|
type ProviderMeta struct {
|
|
Provider string `json:"provider"`
|
|
DisplayName string `json:"display_name"`
|
|
ConfigSchema ProviderConfigSchema `json:"config_schema"`
|
|
}
|
|
|
|
type CreateRequest struct {
|
|
Name string `json:"name"`
|
|
Provider ProviderName `json:"provider"`
|
|
Config map[string]any `json:"config,omitempty"`
|
|
}
|
|
|
|
type UpdateRequest struct {
|
|
Name *string `json:"name,omitempty"`
|
|
Provider *ProviderName `json:"provider,omitempty"`
|
|
Config map[string]any `json:"config,omitempty"`
|
|
}
|
|
|
|
type GetResponse struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Provider string `json:"provider"`
|
|
Config map[string]any `json:"config,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|