Introdução geral ao Lepton Search
Lepton O Lepton Search é um mecanismo de pesquisa de IA conversacional, lançado por Jia Yangqing e desenvolvido usando a plataforma Lepton AI. O Lepton Search pesquisa dados na Web de forma proativa e os organiza em respostas estruturadas e lógicas com base nas perguntas em linguagem natural do usuário, acompanhadas da fonte das informações. "Um elétron é um lépton?" ou "Quando o homem pousou na Lua pela primeira vez?" O Lepton Search também pode responder a perguntas complexas, como "Por que as maçãs caem?" ou "Como faço para escrever um chatbot em Python?" O código do Lepton Search é de código aberto, portanto, os desenvolvedores podem implantá-lo e modificá-lo por conta própria ou usar a plataforma Lepton AI para criar rapidamente seus próprios aplicativos de IA de conversação.
Lista de recursos do Lepton Search
- Suporta entrada e saída de linguagem natural
- Oferece suporte a vários tipos de perguntas, incluindo as baseadas em conhecimento, em causas e em métodos
- Suporta várias fontes de dados, incluindo Wikipedia, Twitter, Google, Bing, etc.
- Suporte a vários idiomas, incluindo inglês, chinês, japonês, etc.
- Suportar uma variedade de métodos de exibição, incluindo texto, imagens, tabelas, gráficos, etc.
- Oferece suporte a vários métodos de interação, incluindo web, linha de comando, API etc.
Ajuda do Lepton Search
- Na versão da Web, digite a pergunta que deseja pesquisar e pressione enter ou clique no botão de pesquisa para ver as respostas do Lepton Search!
- Confira a documentação no repositório oficial do GitHub.
- Você pode criar seu próprio mecanismo de pesquisa de acordo com a demonstração oficial.
- Os desenvolvedores são livres para usar o código-fonte aberto sob a licença Apache.
Código de pesquisa de Lepton Comentário
# Importação das bibliotecas e dos módulos necessários
importar concurrent.futures # para execução simultânea de tarefas
importar glob # para correspondência de padrão de caminho de arquivo
import json # para processar dados JSON
import os # Usado para manipular o sistema de arquivos
importar re # para correspondência de expressões regulares
importar threading # para operações de threading
solicitações de importação # Usado para iniciar solicitações de rede
import traceback # Usado para rastrear informações de exceção
from typing import Annotated, List, Generator, Optional # for type annotations# Importação de classes e exceções relacionadas à FastAPI
from fastapi import HTTPException
from fastapi.responses import HTMLResponse, StreamingResponse, RedirectResponse
importar httpx # para solicitações HTTP
from loguru import logger # para registro# Importação de bibliotecas e módulos relacionados ao Lepton AI
importar leptonai
from leptonai import Client
from leptonai.kv import KV # para armazenamento de valores-chave
from leptonai.photon import Photon, StaticFiles # para desenvolvimento de aplicativos Photon
from leptonai.photon.types import to_bool # para conversão booleana
from leptonai.api.workspace import WorkspaceInfoLocalRecord # para informações do espaço de trabalho
from leptonai.util import tool # contém alguns utilitáriosValores constantes para o modelo # RAG
BING_SEARCH_V7_ENDPOINT = "https://api.bing.microsoft.com/v7.0/search" # Pontos de extremidade da API do Bing Search
BING_MKT = "en-US" # Bing Search Marketplace
GOOGLE_SEARCH_ENDPOINT = "https://customsearch.googleapis.com/customsearch/v1" # Pontos de extremidade da API de pesquisa personalizada do Google
SERPER_SEARCH_ENDPOINT = "https://google.serper.dev/search" # Endpoints da API do Serper Search
SEARCHAPI_SEARCH_ENDPOINT = "https://www.searchapi.io/api/v1/search" # SearchApi Endpoints da API de pesquisa# Número de resultados encontrados
REFERENCE_COUNT = 8# Tempo limite de pesquisa
DEFAULT_SEARCH_ENGINE_TIMEOUT = 5# Consulta padrão
_default_query = "Quem disse 'viva muito e prospere'?"Modelo de texto de consulta para o modelo # RAG
_rag_query_text = """Você é um assistente de IA de linguagem ampla criado pela Lepton AI. Quando receber uma pergunta do usuário, forneça uma resposta clara, concisa e precisa. Você receberá uma série de contextos relacionados à pergunta, cada um precedido por um número de citação, como [[citation:x]], em que x é um número. Use esses contextos e, quando aplicável, cite o número do contexto no final de cada frase.
Sua resposta deve ser correta, precisa e escrita por um especialista em um tom neutro e profissional. Limite-se a 1024 tokens. Não forneça informações que não sejam relevantes para a pergunta e não se repita. Se o contexto fornecido não fornecer informações suficientes, diga "Information on... Faltam informações sobre ...".
Cite o contexto no formato de número de citação, por exemplo, [citation:x]. Se uma frase for de mais de um contexto, liste todas as citações aplicáveis, por exemplo, [citation:3][citation:5]. Com exceção de códigos, nomes específicos e citações, sua resposta deve estar no mesmo idioma da pergunta.
Aqui está uma série de contextos:
{contexto}
Lembre-se, não repita cegamente o contexto literalmente. O problema aqui é do usuário:
"""
# Lista de palavras com deficiência
stop_words = [
"",
"[Fim]",
"[fim]",
"\nReferências:\n".
"\nSources:\n".
"Fim",
]# Gerar texto de alerta sobre questões relevantes
_more_questions_prompt = """Você é um assistente útil para ajudar os usuários a fazer perguntas relevantes com base na pergunta original e no contexto associado a ela. Identifique os tópicos que merecem acompanhamento e faça perguntas com, no máximo, 20 palavras. Certifique-se de que informações específicas, como eventos, nomes, locais etc., estejam incluídas nas perguntas de acompanhamento para que possam ser feitas de forma independente. Por exemplo, se a pergunta original for sobre o Projeto Manhattan, na pergunta de acompanhamento, em vez de dizer apenas "o projeto", use o nome completo, "O Projeto Manhattan". Suas perguntas relacionadas devem estar no mesmo idioma da pergunta original.
Aqui está o contexto da pergunta:
{contexto}
Lembre-se de fazer três perguntas adicionais com base na pergunta original e no contexto relevante. Não repita a pergunta original. Cada pergunta relacionada não deve ter mais de 20 palavras. Aqui está a pergunta original:
"""
# As seguintes funções de pesquisa são definidas para interagir com diferentes mecanismos de pesquisa
def search_with_bing(query: str, subscription_key: str).
# Pesquise e retorne informações contextuais usando o mecanismo de pesquisa do Bing
passedef search_with_google(query: str, subscription_key: str, cx: str).
# Pesquise e retorne informações contextuais usando o mecanismo de pesquisa do Google
passedef search_with_serper(query: str, subscription_key: str).
# Pesquise e retorne informações contextuais usando o mecanismo de pesquisa Serper
passedef search_with_searchapi(query: str, subscription_key: str).
# Pesquisa com o SearchApi.io e retorno de informações contextuais
passeClasse # RAG, herdada do Photon, usada para criar o mecanismo RAG
classe RAG(Photon).
# Inicialização de classe e definição de método
passe# Se esse script for executado diretamente, o aplicativo RAG será iniciado
se __name__ == "__main__".
trapo = RAG()
rag.launch()