Teil 1/5: Was ist RAG? Kann man das essen? Was hat das mit KI zu tun? AddOn: Umsetzung mit Flowise

Поделиться
HTML-код
  • Опубликовано: 2 ноя 2024

Комментарии • 17

  • @svenschmidchen9873
    @svenschmidchen9873 2 месяца назад

    Coole Sache, habe selbst Monate gebraucht, um die korrekten Kapitel zu finden, auf Basis der die KI fundierte Antworten geben kann.
    Sehr spannendes Thema. Pinecone Vektor Datenbanken über eine Knowledge Base und chunking. Mit Airtable, kann man das nicht direkt nutzen, muss dann erst über ein Embedding Model in Vektoren umgewandelt werden und die wiederum werden dann in der Vektordatenbank gespeichert. Durch den Abgleich der query, also der User Anfrage wird dann geprüft welche Inhalte ähnlich sind. Die Ähnlichkeit wird über einen score beurteilt. Ein hoher Score kann schließlich genutzt werden, um die Daten über ein LLM und den Prompt individuell zu verarbeiten.

    • @bastianstrauss
      @bastianstrauss  2 месяца назад

      Macht schon laune oder. Mit Airtable habe ich auch etwas gebaut. Schau dir mal meine beiden letzten Videos an. Hybrid mit RAG, CRAG und Datenbank getrieben wäre eine mega Sache!

  • @steveb3813
    @steveb3813 3 месяца назад

    Hi Bastian, erstmal ein großes Dankeschön für Deine RAG-Videoreihe! Mega gut erklärt! Du scheinst Dich viel damit zu beschäftigen ;) Was mir noch fehlt ist die Info, wie ich nun das RAG auf eine ganze Reihe von Dokumenten, besser ganze Ordner oder idealerweise alle lokalen Daten, anwenden kann. Und zwar so, dass einerseits gute Abfragen möglich sind (die vom LLM auch richtig verstanden werden) und gleichzeitig die Berechnungszeit nicht zu lang ist. Kann ich also anstatt des Rabbit-docs einfach einen ganzen Ordner (mit mehreren Dateien) zum Retrieval Manager hinzufügen - oder gar alle Dateien auf C:?
    Das RAG macht doch erst richtig Sinn, wenn ich mit dem Modell in vielen Dateien gleichzeitig durchsuchen kann... - habe ich schon mal etwas zu Thema X geschrieben? welche Dokumente beschäftigen sich mit Thema Y usw.
    LG Steve

    • @bastianstrauss
      @bastianstrauss  3 месяца назад +1

      Hi Steve, ja du kannst theoretisch ganze Ordner einlesen lassen. Wichtig ist nur das deine Chunks angepasst auf das Dokument sind. Also ein Mischmasch aus Word, Excel oder PDF ist nicht so förderlich.

    • @steveb3813
      @steveb3813 3 месяца назад

      @@bastianstrauss Wäre es dann nicht möglich über Flowise meine ganzen lokalen Dateien einzulesen, dann einen Worker zu erstellen, der die eingelesenen Dateien nach Dateiformaten clustert, diese dann in neuen Sub-Ordnern des Retrieval Agenten ablegt und dann dort der Chat mit diesen Dokumentenarten stattfinden kann? Denn sind wir mal ehrlich... eigentlich wollen ja bei RAG die meisten genau das erreichen - Chats mit den gesamten eigenen Dateien - sozusagen KI-gestütztes Wissensmanagement.

    • @bastianstrauss
      @bastianstrauss  3 месяца назад

      @Steve nicht das wir uns falsch verstehen. Du vektorisierst EINMAL deine Dateien. Danach liegen diese in einer Vectordatenbank. Die Originaldateien brauchts du dafür nicht mehr. Du bräuchtest ein Automatisierungsscript, was erkennt wenn deine Dateiablage sich verändert. Dann wird der Prozess erneut angestossen. Ich glaube ich habe deinen UseCase noch ncht verstanden. Wenn du deine lokalen Daten alle cachen willst, brauchst du neben dem Automatisiertungsscript was den Ordner überwacht, auch ein Script, was die Dateiart erkennt und den richtigen Splitter wählt. Das geht über die Funktion von Flowise hinaus!. Hast du ein Typ Dokumente z.B. PDF, kannst du soetwas mit Flowise automatisieren. Lokal kommst du aber um Python oder was anderem aber nicht herum. In der Cloud kannst du soetwas mit OneDrive/GoogleDrive MAKE.com und Flowise mit ein wenig Arbeit sicher lösen! Gemacht habe ich das so aber nicht. Aber die API Endpunkte sind verfügbar. Also ich würde sagen es kommt auf einen versuch an!

    • @bastianstrauss
      @bastianstrauss  3 месяца назад

      Google Drive hat einen Watch Folder Endpunkt. Dieser wird in MAKE angestoßen und veranlasst Flowise alle Dokumente neu zu vektorisieren. Vorhandene werden vorher geskippt und neues oder geändertes aufgenonmmen. Das GEHT!
      Check mal mein Video: ruclips.net/video/pl5cg_s5oGg/видео.html
      Dort mache ich so einen neuvektoring mit meiner Airtable DB. Das ist das gleiche Prinzip!

    • @steveb3813
      @steveb3813 3 месяца назад

      @@bastianstrauss Danke für Deine schnelle Rückmeldung Bastian! Ich hab mir übrigens mal Deine Vita (Deine Webseite) angeschaut. Es ist wirklich krass wie fit Du in diesen Themen hier bist und wie Du Dir das offenbar selbst antrainiert hast. Wow! Mein Usecase ist ein Chat mit meinen eigenen lokal abgelegten Daten (in meinem Fall ca. 20GB aus 20 Jahren im Job). Vieles muss man neu erarbeiten, weil man sich nicht erinnert, wo man eine Datei zu einem spezifischen Thema abgelegt hat. Klar, es gibt Ordner- und Dateibezeichnungen, trotzdem muss man i.d.R. in die jeweilige Datei reinschauen um etwas spezifisches darin zu finden und wiederverwenden zu können. Weniger wichtig ist also, ob oder wie sich der Datenbestand verändert hat, sondern was in diesem Alt-Datenbestand an Informationen enthalten ist. Ich habe verstanden, dass meine Dokumente vektorisiert werden müssen, damit das LLM damit arbeiten kann. Ich muss also schauen, mit welchem Tool ich 20GB automatisiert vektorisieren kann. Dachte, das geht vielleicht am besten mit einem passenden hugging face embedding model - oder ich lade alle Dateien in Google Drive hoch und mache das über den von Dir gezeigten Prozess mit MAKE.
      Du berätst ja auch das Handwerk... das müsste doch auch für die Handwerksbetriebe ein extrem wertvoller Usecase sein, oder nicht?

  • @GuentherHaslbeck
    @GuentherHaslbeck 5 месяцев назад

    Das mit der sql Datenbank zum updaten ist ja schon mal ziemlich cool!

    • @bastianstrauss
      @bastianstrauss  5 месяцев назад

      Ja… erleichtert vieles. Das geile: via Flowise geht das updaten des RAGs via API!!!

  • @bjornm2273
    @bjornm2273 3 месяца назад

    Super erklärt! Vielen Dank

  • @geeksy2278
    @geeksy2278 5 месяцев назад

    Wenn ich eine Kontextgröße von 2048 Token habe und meine Texte in 1024 (oder 512) Token Blöcke schneide brauche ich doch kein Inhaltliches schneiden. Wenn jetzt ein inhaltlicher Absatz in 2 Teile geschnitten wurde, habe ich doch bei der Vektor-Suche genau die beiden Teile als return Wert der Suche und kann auch beide mit ins Kontextfenster packen, da 2 x 1024 = 2048. Ich muss dann bei der Vektor-Suche nur beachten, dass ich die nächsten 2 Vektoren bekomme (statt nur den nächsten). Oder hab ich da was falsch verstanden?

    • @bastianstrauss
      @bastianstrauss  5 месяцев назад

      Klar. Das ist korrekt! Wie in meinem Beispiel macht das keinen Sinn. Spannend wird es aber wenn der Text 500.000 Tokens hat!