Externo
Este tutorial é uma contribuição da comunidade e não é suportado pela equipe Nullcore. Serve apenas como uma demonstração sobre como personalizar o Nullcore para o seu caso de uso específico. Quer contribuir? Confira o tutorial contribuinte.
API de pesquisa na web externa
Esta opção permite conectar o WebUI aberto ao seu próprio ponto de extremidade da API de pesquisa da Web auto-hospedada. Isso é útil se você quiser:
- Integre um mecanismo de pesquisa não suportado nativamente pelo Nullcore.
- Implementar a lógica de pesquisa personalizada, filtragem ou processamento de resultados.
- Use um índice de pesquisa privado ou interno.
Configuração do Webui aberto
- Navegue até o webui aberto
Admin Panel
- Vá para o
Settings
guia e depois selecioneWeb Search
- Alternar
Enable Web Search
para a posição on. - Definir
Web Search Engine
Do menu suspenso paraexternal
- Preencher
External Search URL
Com o URL completo do seu endpoint de API de pesquisa personalizado (por exemplo,,http://localhost:8000/search
ouhttps://my-search-api.example.com/api/search
- Preencher
External Search API Key
com a chave da API secreta necessária para se autenticar com seu terminal de pesquisa personalizado. Deixe em branco se o seu terminal não exigir autenticação (não recomendado para pontos de extremidade públicos). - Clique
Save
Especificação da API
Nullcore irá interagir com o seuExternal Search URL
do seguinte modo:
-
Método:
POST
-
Cabeçalhos:
Content-Type: application/json
Authorization: Bearer <YOUR_EXTERNAL_SEARCH_API_KEY>
-
Solicitar corpo (JSON):
{
"consulta" "A sequência de consulta de pesquisa do usuário", Assim,
"contar" 5 // o número máximo de resultados de pesquisa solicitadosquery
(String): o termo de pesquisa inserido pelo usuário.count
(Inteiro): O número máximo sugerido de resultados abertos Webui espera. Sua API pode retornar menos resultados, se necessário.
-
Corpo de resposta esperado (JSON):Seu endpoint da APIdeveRetorne uma matriz JSON de objetos de resultado da pesquisa. Cada objeto deve ter a seguinte estrutura:
[[
{
"link" "URL do resultado da pesquisa", Assim,
"título" "Título da página de resultado da pesquisa", Assim,
"Snippet" "Uma breve descrição ou trecho da página de resultado da pesquisa"
, Assim,
{
"link" , Assim,
"título" , Assim,
"Snippet"
// ... potencialmente mais resultados até a contagem solicitadalink
(String): o URL direto para o resultado da pesquisa.title
(String): O título da página da web.snippet
(String): Um trecho de texto descritivo do conteúdo da página relevante para a consulta.
Se ocorrer um erro ou nenhum resultado for encontrado, seu endpoint deve retornar idealmente uma matriz JSON vazia
[]
Exemplo de implementação (Python/FASTAPI)
Aqui está um exemplo simples de uma API de pesquisa auto-hospedada usando Python com FASTAPI e oduckduckgo-search
biblioteca.
importarUvicorn
deFASTAPIimportarFASTAPI, Assim,Cabeçalho, Assim,Corpo, Assim,HttPexception
dePydanticimportarBasemodel
deDuckduckgo_searchimportarDDGS
Esperado_bearer_token "Your_Secret_Token_Hhere"
AppFASTAPI
aula SearchRequestBasemodel
consulta str
contar int
aula SearchResultBasemodel
link str
título str Nenhum
trecho str Nenhum
@Apppublicar"/procurar"
assíncrono def External_search
Search_RequestSearchRequestCorpo, Assim,
autorização str Nenhum CabeçalhoNenhum, Assim,
esperado_auth_header f "Portador{Esperado_bearer_token
seautorização! =esperado_auth_header
elevaçãoHttPexceptionstatus_code401, Assim,detalhe"Não autorizado"
consulta, Assim,contarSearch_Requestconsulta, Assim,Search_Requestcontar
Resultados [[
tentar
comDDGS comoDDGS
Search_ResultsDDGStexto
consulta, Assim,SafeSearch"moderado", Assim,max_resultscontar, Assim,back -end"Lite"
Resultados [[
SearchResult
linkresultado[["Href", Assim,
títuloresultadopegar"título", Assim,
trechoresultadopegar"corpo", Assim,
pararesultadoemSearch_Results
excetoExceçãocomoe
imprimirF "Erro durante a pesquisa de Duckduckgo:{e
retornarResultados
se__nome__ "__principal__"
Uvicorncorrer"Main: App", Assim,hospedar"0.0.0.0", Assim,porta8888