Lepton Search Allgemeine Einführung
Lepton Search ist eine konversationelle KI-Suchmaschine, die auf der von Jia Yangqing ins Leben gerufenen KI-Plattform Lepton aufbaut und das Internet aktiv nach Daten durchsucht und diese in strukturierte und logische Antworten auf der Grundlage der in natürlicher Sprache gestellten Fragen des Nutzers zusammen mit begleitenden Informationsquellen aufbereitet.Lepton Search beantwortet nicht nur allgemeine intellektuelle Fragen, wie "Ist ein Elektron ein Lepton? wie z. B. "Ist ein Elektron ein Lepton?" oder "Wann ist der erste Mensch auf dem Mond gelandet?". Lepton Search kann auch komplexe Fragen beantworten, wie "Warum fallen Äpfel herunter?" oder "Wie schreibe ich einen Chatbot in Python?". Der Code von Lepton Search ist quelloffen, so dass Entwickler ihn selbst einsetzen und verändern oder die Lepton AI-Plattform nutzen können, um schnell eigene KI-Anwendungen zu entwickeln.
Lepton Search Funktionsliste
- Unterstützt die Eingabe und Ausgabe in natürlicher Sprache
- Unterstützt viele Arten von Fragen, darunter wissensbasierte, ursachenbasierte und methodenbasierte
- Unterstützt mehrere Datenquellen, einschließlich Wikipedia, Twitter, Google, Bing, usw.
- Unterstützung mehrerer Sprachen, einschließlich Englisch, Chinesisch, Japanisch usw.
- Unterstützung einer Vielzahl von Anzeigemethoden, einschließlich Text, Bilder, Tabellen, Diagramme usw.
- Unterstützt mehrere Interaktionsmethoden, einschließlich Web, Befehlszeile, API usw.
Lepton Search Hilfe
- Geben Sie in der Webversion die gewünschte Frage ein und drücken Sie die Eingabetaste oder klicken Sie auf die Schaltfläche "Suchen", um die Antworten von Lepton Search anzuzeigen!
- Sehen Sie sich die Dokumentation im offiziellen GitHub-Repository an.
- Sie können Ihre eigene Suchmaschine gemäß der offiziellen Demo erstellen.
- Den Entwicklern steht es frei, Open-Source-Code unter der Apache-Lizenz zu verwenden.
Lepton Search Code Kommentar
# Importieren der erforderlichen Bibliotheken und Module
import concurrent.futures # für die gleichzeitige Ausführung von Aufgaben
import glob # für den Abgleich von Dateipfadenmustern
import json # für die Verarbeitung von JSON-Daten
import os # Wird verwendet, um das Dateisystem zu manipulieren
import re # für den Abgleich mit regulären Ausdrücken
import threading # für Threading-Operationen
import requests # Wird verwendet, um Webanfragen zu initiieren
import traceback # Wird verwendet, um Ausnahmeinformationen zu verfolgen
from typing import Annotated, List, Generator, Optional # für Typ-Anmerkungen# Importieren von FastAPI-bezogenen Klassen und Ausnahmen
von fastapi import HTTPException
from fastapi.responses import HTMLResponse, StreamingResponse, RedirectResponse
import httpx # für HTTP-Anfragen
from loguru import logger # für die Protokollierung# Importieren von Lepton AI-bezogenen Bibliotheken und Modulen
leptonai importieren
von leptonai import Kunde
from leptonai.kv import KV # für die Speicherung von Schlüsselwerten
from leptonai.photon import Photon, StaticFiles # für die Entwicklung von Photon-Anwendungen
from leptonai.photon.types import to_bool # für die Umwandlung von Booleschen Werten
from leptonai.api.workspace import WorkspaceInfoLocalRecord # für Arbeitsbereichsinformationen
from leptonai.util import tool # enthält einige DienstprogrammeKonstante Werte für das RAG-Modell #
BING_SEARCH_V7_ENDPOINT = "https://api.bing.microsoft.com/v7.0/search" # Bing Search API Endpunkte
BING_MKT = "en-US" # Bing Search Marketplace
GOOGLE_SEARCH_ENDPOINT = "https://customsearch.googleapis.com/customsearch/v1" # Benutzerdefinierte Such-API-Endpunkte von Google
SERPER_SEARCH_ENDPOINT = "https://google.serper.dev/search" # Serper Search API Endpunkte
SEARCHAPI_SEARCH_ENDPOINT = "https://www.searchapi.io/api/v1/search" # SearchApi Search API Endpunkte# Anzahl der gefundenen Ergebnisse
REFERENZ_ZAHL = 8# Such-Timeout-Zeit
DEFAULT_SEARCH_ENGINE_TIMEOUT = 5# Standard-Anfrage
_default_query = "Wer sagte: 'Lebe lang und in Frieden'?"Abfragetextvorlage für das RAG-Modell #
_rag_query_text = """Sie sind ein von Lepton AI entwickelter großsprachiger KI-Assistent. Wenn Sie eine Benutzerfrage erhalten, geben Sie bitte eine klare, präzise und genaue Antwort. Sie erhalten eine Reihe von Kontexten, die sich auf die Frage beziehen und denen jeweils eine Zitatnummer vorangestellt ist, z. B. [[Zitat:x]], wobei x eine Zahl ist. Bitte verwenden Sie diese Kontexte und geben Sie gegebenenfalls die Kontextnummer am Ende eines jeden Satzes an.
Ihre Antwort muss korrekt, genau und von einem Experten in einem neutralen und professionellen Ton verfasst sein. Bitte beschränken Sie sich auf 1024 Token. Geben Sie keine Informationen an, die für die Frage nicht relevant sind, und wiederholen Sie sich nicht. Wenn der gegebene Kontext nicht genügend Informationen liefert, sagen Sie "Informationen über... Es fehlen Informationen über...".
Bitte geben Sie den Kontext im Format der Zitiernummer an, z. B. [zitat:x]. Wenn ein Satz aus mehr als einem Kontext stammt, geben Sie alle zutreffenden Zitate an, z. B. [Zitat:3][Zitat:5]. Mit Ausnahme von Codes, spezifischen Namen und Zitaten muss Ihre Antwort in der gleichen Sprache wie die Frage formuliert sein.
Hier finden Sie eine Reihe von Zusammenhängen:
{Kontext}
Denken Sie daran, dass Sie den Kontext nicht wortwörtlich wiederholen sollten. Das ist hier das Problem des Benutzers:
"""
# Liste der behinderten Wörter
stop_words = [
"",
"[Ende]",
"[Ende]",
"\nReferenzen:\n".
"\nQuellen:\n".
"Ende.",
]# Generierung von Warnmeldungen zu relevanten Themen
_more_questions_prompt = """Sie sind ein nützlicher Assistent, der den Nutzern hilft, relevante Fragen zu stellen, die auf der ursprünglichen Frage und dem dazugehörigen Kontext basieren. Bitte identifizieren Sie Themen, die es wert sind, weiterverfolgt zu werden, und stellen Sie Fragen mit nicht mehr als 20 Wörtern. Achten Sie darauf, dass spezifische Informationen wie Ereignisse, Namen, Orte usw. in den Folgefragen enthalten sind, damit sie unabhängig gestellt werden können. Wenn in der ursprünglichen Frage beispielsweise nach dem Manhattan-Projekt gefragt wurde, sollten Sie in der Folgefrage nicht einfach nur "das Projekt" sagen, sondern den vollständigen Namen "Das Manhattan-Projekt" verwenden. Ihre Anschlussfragen müssen in der gleichen Sprache wie die ursprüngliche Frage formuliert sein.
Hier ist der Kontext der Frage:
{Kontext}
Denken Sie daran, drei solcher Zusatzfragen zu stellen, die sich auf die ursprüngliche Frage und den entsprechenden Kontext beziehen. Wiederholen Sie nicht die ursprüngliche Frage. Jede Zusatzfrage sollte nicht länger als 20 Wörter sein. Hier ist die ursprüngliche Frage:
"""
# Die folgenden Suchfunktionen sind für die Interaktion mit verschiedenen Suchmaschinen definiert
def search_with_bing(query: str, subscription_key: str).
# Suche und Rückgabe von kontextbezogenen Informationen mit der Suchmaschine Bing
Passdef search_with_google(query: str, subscription_key: str, cx: str).
# Suche und Rückgabe von kontextbezogenen Informationen über die Google-Suchmaschine
Passdef search_with_serper(query: str, subscription_key: str).
# Suche und Rückgabe von kontextbezogenen Informationen mit der Serper-Suchmaschine
Passdef search_with_searchapi(query: str, subscription_key: str).
# Suche mit SearchApi.io und Rückgabe kontextbezogener Informationen
Pass# RAG-Klasse, geerbt von Photon, zur Erstellung des RAG-Motors verwendet
Klasse RAG(Photon).
# Initialisierung von Klassen und Definition von Methoden
Pass# Wenn dieses Skript direkt ausgeführt wird, wird die RAG-Anwendung gestartet
if __name__ == "__main__".
Lappen = RAG()
rag.launch()