Eine grundlegende Open Source -AI -Suchmaschine, modelliert für Verwirrung.ai. Wenn Sie mit einer KI-angetriebenen Frage-Antworten-Plattform nicht vertraut sind, verwenden sie ein großes Sprachmodell wie ChatGPT, um Ihre Fragen zu beantworten, aber Chatgpt, da es genaue Suchergebnisse und Echtzeit-Suchergebnisse erzielt, um die Antwort zu ergänzen (also kein „Wissensausschnitt“). Und listet Zitate innerhalb der Antwort selbst auf, die Vertrauen aufbauen, dass es nicht halluzinierend ist und es Ihnen ermöglicht, Themen weiter zu recherchieren.
search.php hinzu (suchen Sie nach "[füllen Sie mich in]").Die Hauptherausforderung bei LLMs wie ChatGPT besteht darin, dass sie Wissensgrenzwerte haben (und gelegentlich dazu neigen, halluzinieren). Es liegt daran, dass sie bis zu einem bestimmten Datum (z. B. Sep 2021) auf Daten geschult sind. Wenn Sie also eine Antwort auf eine aktuelle Frage wünschen oder einfach nur ein Thema im Detail recherchieren möchten, müssen Sie die Antwort mit relevanten Quellen erweitern . Diese Technik ist als Lag (Abruf Augmented Generation) bekannt. Und in unserem Fall können wir einfach die llm aktuellen Informationen von Suchmaschinen wie Google oder Bing liefern.
Um dies selbst zu erstellen, sollten Sie sich zuerst für einen API -Schlüssel von Bing, Google (über Serper), Brave oder anderen anmelden. Bing, Brave und Serper bieten alle kostenlose Verwendung, um loszulegen.
Geben Sie in search.php Ihren API -Schlüssel gegebenenfalls ein (suchen Sie nach "[füllen Sie mich in]"). In diesem Beispiel habe ich Code für Brave und Google über Serper.
Hier müssen Sie sich für einen API -Schlüssel von einem LLM -Anbieter anmelden. Es gibt viele Anbieter zur Auswahl. Zum Beispiel gibt es OpenAI, Anthropic, Anyscale, GROQ, Cloudflare, Verwirrung, Lepton oder die großen Spieler wie AWS, Azure oder Google Cloud. Ich habe viele davon mit Erfolg verwendet und sie bieten eine Untergruppe aktueller und beliebter Open -Source -Modelle an. Und jedes Modell hat einzigartige Stärken, unterschiedliche Kosten und unterschiedliche Geschwindigkeiten. Zum Beispiel ist GPT-4 sehr genau, aber teuer und langsam. Im Zweifelsfall würde ich empfehlen, Chatgpt-3,5-Turbo von OpenAI zu verwenden. Es ist gut genug, billig genug und schnell genug, um dies zu testen.
Glücklicherweise sind die meisten dieser LLM -Dieneranbieter mit dem API -Format von OpenAI kompatibel. Wenn Sie also zu einem anderen Anbieter / Modell wechseln, ist es nur minimale Arbeit (oder bitten Sie nur einen Chatbot, den Code zu schreiben!).
Geben Sie in search.php Ihre API -Schlüssel gegebenenfalls ein (suchen Sie nach "[füllen Sie mich in]"). In diesem Beispiel verwende ich OpenAI (für ChatGPT-3,5-Turbo / GPT-4) und COQ (für Mixtral-8b7b). Um Ihre Arbeit minimal zu halten, holen Sie sich einfach Schlüssel für einen oder beide.
Wenn Sie einem LLM eine Frage stellen möchten, können Sie einen großen zusätzlichen Kontext bereitstellen. Jedes Modell hat seine eigene einzigartige Grenze und einige von ihnen sind sehr groß. Für GPT-4-Turbo könnten Sie mit Ihrer Frage das gesamte 1. Harry Potter-Buch weitergeben. Googles super leistungsstarker Gemini 1.5 kann eine Kontextgröße von über einer Million Token unterstützen. Das reicht aus, um die Gesamtheit der 7-Buch-Harry Potter-Serie weiterzugeben!
Glücklicherweise ist es weitaus kleiner, die Snippets mit 8-10 Suchergebnissen zu bestimmen, sodass Sie viele der schnelleren (und viel billigeren) Modelle wie GPT-3,5-Turbo oder Mistral-7b verwenden können.
Nach meiner Erfahrung gibt es die Benutzerfrage, die benutzerdefinierte Eingabeaufforderung und die Suchergebnisse in der Regel unter 1K -Token. Dies ist selbst unter den grundlegendsten Grenzen des Modells gut, daher sollte dies kein Problem sein.
search.php hat die Beispielaufforderung, die ich mit Ihnen herumgespielt habe. Hut-Tipp an die Leute von Lepton AI, die ein ähnliches Projekt offen gemacht haben, das mir half, diese Aufforderung zu verfeinern.
Eine der schönen Merkmale der Verwirrung ist, wie sie Follow -up -Fragen vorschlagen. Glücklicherweise ist dies leicht zu replizieren.
Dazu können Sie einen zweiten Anruf bei Ihrem LLM (parallel) tätigen, um verwandte Fragen zu stellen. Und vergessen Sie nicht, diese Zitate wieder im Kontext weiterzugeben.
Oder Sie können versuchen, eine Eingabeaufforderung zu erstellen, damit die LLM die Frage beantwortet und verwandte Fragen stellt. Dies spart einen API -Anruf und einige Token, aber es ist ein bisschen schwierig, diese LLMs immer in einem konsistenten und wiederholbaren Format zu beantworten.
Um dies zu einem vollständigen Beispiel zu machen, brauchen wir eine nutzbare Benutzeroberfläche. Ich habe die Benutzeroberfläche so einfach wie möglich gehalten und alles ist im index.html . Ich verwende Bootstrap, JQuery und einige grundlegende CSS / JavaScript, Markdown und einen JS -Syntax -Highlighter, um dies zu erreichen.
Um die Erfahrung zu verbessern, führt die Benutzeroberfläche Folgendes aus:
Um ein funktionierendes Beispiel zu untersuchen, lesen Sie https://yaddleai.com. Es ist meistens der gleiche Code, obwohl ich einen zweiten Suchanruf parallel zum Abrufen von Bildern hinzugefügt habe.