schäfer shop

Daten sammeln und Künstliche Intelligenz

Basically:

Scraping via  Puppeteer und ein OpenAI Chatbot

Index

Motivation

  • Sprachmodelle sind sehr mächtig
  • Schäfer Shop könnte davon profitieren
  • Neugierde
  • Digitale Innovation

Ein langer weg

Scraping

Produktdaten und FAQ vom Webshop mit Puppeteer sammeln und aufbereiten

Indexing

Daten mit OpenAI Emebddings in deren mathematische Repräsentation umwandeln und in einer Vektordatenbank zugänglich machen

CHAT BOT

Einen Chat Bot bauen, welcher Zugriff auf FAQ und Produktdaten hat und im Sinne von Schäfer Shop antwortet.

Scraping

Mit Puppeteer, voll automatisiert und hochgradig parallelisiert.

PromisePool (concurrency = 32)

[
  {
    "id": "165738-SW81",
    "title": "Aktenvernichter HSM® Shredstar X10, Partikelschnitt 4,5 x 30 mm, P-4, 20 l, 10 Blatt Schnittleistung, mit CD-Schneidwerk, weiß",
    "description": "Mit dem HSM® Aktenvernichter Shredstar X10 vernichten Sie mit geringer Geräuschentwicklung nicht nur Ihre Akten am Arbeitsplatz, sondern auch CDs und DVDs. Der Aktenvernichter entspricht der Sicherheitsstufe P-4, wodurch das zu schredderne Material zuverlässig zerkleinert wird. Für die Disc-Medien steht ein eigener Auffangbehälter für eine sortenreine Entsorgung bereit. Insgesamt gestaltet sich die Entsorgung mühelos durch die zu entnehmenden Behälter. Ein entstehender Papierstau wird durch den automatischen Rücklauf sofort behoben. Der Aktenvernichter zerkleinert auf einen Partikelschnitt von 4,5 x 30 mm und wartet mit einer Schnittleistung von maximal 10 Blatt auf. Der Auffangbehälter des Aktenvernichters verfügt über ein Volumen bis zu 20 Litern. Über die LED-Anzeige des farblich in Weiß gehaltenen Aktenvernichters Shredstar X10 von HSM® sehen Sie sofort, ob der Papierkorb voll ist, eine Überhitzung droht oder sich ein Papierstau ergeben hat. Im Auffangbehälter befindet sich ein Sichtfenster für die Füllstandsanzeige. Wichtige Details: Hochwertiger Aktenvernichter Mit separatem CD-Schneidwerk schreddert sicher Akten und CDs/DVDs Automatischer Rücklauf behebt Papierstau Leiser Betrieb minimiert Geräuschentwicklung am Arbeitsplatz Lichtschranke für automatischen Start/Stopp Füllstandanzeige durch Sichtfenster im Auffangbehälter Müheloses Entleeren des Auffangbehälters durch abnehmbares Gehäuseoberteil Sicherheitsstufe: P-4 Schnittleistung: max. 10 Blatt Partikelschnitt 4,5 x 30 mm Maße: B 345 x 245 T x 445 H mm Volumen: 20 l Gewicht: 6 kg Möchten Sie ein altes Elektro- oder Elektronikgerät kostenlos zurückgeben bzw. abholen lassen?Gerne übernehmen wir dies für Sie und führen Ihr altes Elektro- oder Elektronikgerät einer umwelt- und fachgerechten Entsorgung zu. Informieren Sie sich hier über Ihre Möglichkeiten zur Altgeräteentsorgung.",
    "features": [
      {
        "key": "Arbeitsbreite [mm]",
        "value": "220"
      },
      {
        "key": "Auffangvolumen [l]",
        "value": "20"
      },
      {
        "key": "Automatische Ölfunktion",
        "value": "Nein"
      },
      ...
      {
        "key": "Tiefe [mm]",
        "value": "245"
      }
    ],
    "price": "70,00 €",
    "categoryPath": [
      "Bürobedarf & Technik",
      "Drucker, Büromaschinen",
      "Aktenvernichter, Papierschredder",
      "Aktenvernichter",
      "Aktenvernichter HSM® Shredstar X10, Partikelschnitt 4,5 x 30 mm, P-4, 20 l, 10 Blatt Schnittleistung, mit CD-Schneidwerk, weiß"
    ]
  },
  {
    "id": "133189-SW81",
    "title": "Tork® Falthandtücher 66424, 2-lagig, Zick-Zack Falzung, 15 Pack á 250 Blatt (3750 Tücher), naturweiß",
    "description": "Die Tork® Falthandtücher 66424 passen mit ihren gefalteten Maßen von 250 x 230 mm in jeden herkömmlichen Handtuchspender. Sie hinterlassen einen guten Eindruck bei den Besuchern Ihrer Waschräume, da die Tücher weich und gleichzeitig reißfest sind. Das wird unter anderem durch die 2-lagige Ausführung erreicht. Die Zick-Zack-Falzung ermöglicht eine Einzeltuchentnahme aus einem Handtuchspender. Sie erhalten die naturweißen Tork® Falthandtücher 66424 zu 15 Pack mit je 250 Blatt, wodurch Sie Ihnen insgesamt 3750 Tücher zur Verfügung stehen. Wichtige Details: Unvergleichliches Preis-Leistungsverhältnis Passend für herkömmliche Handtuchspender Blauer-Engel-zertifiziert Weich und reissfest 2-lagig, Zick-Zack-Falzung Maße: 250 x 230 mm Farbe: naturweiß Hersteller-Artikelnummer: 66424 VE: 15 Pack á 250 Blatt (3750 Tücher)",
    "features": [
      {
        ...

Embeddings

Die mathematische Repräsentation in Form eines Vektors

 

Word2Vec seit 2013 von Google erforscht

Embeddings

Das geht auch mit längeren Texten
(GPT, Generative Pretrained Transformer)

Embeddings

Welche Database?

Embeddings

Wie eine Suche davon profitieren kann: semantische Suche

This is a customer service chat from Schäfer Shop GmbH that will concisely answer your product related questions and make concise recommendations. This chat will be used internally to represent your thoughts. None of this will be visible to the user.
Be nice and respectful.

About Schäfer Shop:
We support you in setting up and equipping your office, warehouse, or operation exactly as you need it. For this purpose, we offer one of Europe's most comprehensive and state-of-the-art product and service ranges. And a personal promise: No matter if you're setting up a football field-sized high-bay warehouse or looking for a height-adjustable desk for your office, we are here for you and will find the right solution – and if needed, we'll even develop it ourselves!
Service Hotline is available via tel:+492741286222 from Monday to Friday between 7.30 AM to 18.00 PM.
Supported payment providers are PayPal, Invoice, Visa, Mastercard, Direct debit, Prepayment (upfront), Klarna.
The 2Schäfer Shop Fundgrube" address is Industriestraße 65, 57518 Betzdorf. Its opening hours are Tuesday to Thursday, 10 AM to 3 PM.

If the user is asking for information or recommendation about any product, then utilize the "SearchProducts" schema to search for products from the internal product database only. Do not recommend products without searching for them first.

Write down your thoughts and consider using any of the available api calls from the API spec to accommodate a reply.

Open API Spec to use:
```
{
  "info": {
    "title": "Chat Bot API",
    "description": "API for the Chat Bot to perform thoughts and actions."
  },
  "components": {
    "schemas": {
      "SearchProducts": {
        "type": "object",
        "description": "Use this when searching for specific products from a internal product database or refining a search with additional information. This function is deterministic.",
        "properties": {
          "search_query": {
            "type": "string",
            "description": "The search query to use."
          }
        },
        "required": ["search_query"]
      },
      "HandoverToCustomerServiceAgent": {
        "type": "object",
        "description": "Use this schema to connect the user to a human customer service agent. Use this schema call as last resort or if the user explicitly asks for it.",
        "properties": {
          "reason_for_handover": {
            "type": "string",
            "description": "A reason as to why a handover to a human customer service agent is necessary.",
          },
          "hint": {
            "type": "string",
            "description": "A hint for the customer service agent to pick up the conversation and accommodate a reply.",
          }
        },
        "required": ["reason_for_handover"]
      },
      "TextResponseToUser": {
        "type": "object",
        "properties": {
          "response": {
            "type": "string",
            "description": "A textual response the user. Should use markdown whenever possible. This is the default schema to use."
          }
        },
        "required": ["answer"]
      }
    }
  }
}
```

Reply with a JSON object that matches the schema from "Chat Bot API".
Example 1:
```
{
  "schema": "SearchQuery",
  "properties": {
    "search_query": "chair"
  }
}
```

Example 2:
```
{
  "schema": "DefaultResponse",
  "properties": {
    "answer": "Our opening hours are from Monday to Friday, from 8:00 AM to 6:00 PM. Please note that we are a digital webshop, and our online store is accessible 24/7."
  }
}
```

You have limited capabilities. You can only use the available schemas to formulate an answer.
To make a textual reply to the user, use the "DefaultResponse" schema. If in doubt or you can not satisfy the customer question, use the "HandoverToCustomerServiceAgent".
If you retrieve information from FAQ Knowledge, append the FAQ Link to your reply.
Reply only with a JSON object that matches the schema from "Chat Bot API".
  • Kurz, klar, spezifisch

  • Genaue Anweisungen

  • Beispiele nennen

  • Context

was gute prompt?

Dies ist ein Kundendienst Chat Bot. Ich stehe Ihnen gerne zur Verfügung und beantworte wahrheitsgemäß
Ihre Fragen zu unseren Produkten sowie gebe präzise Empfehlungen.

**Allgemeine Informationen über Schäfer Shop:**
Wir unterstützen Sie bei der Einrichtung und Ausstattung Ihres Büros, Lagers oder Betriebs ganz nach
Ihren Bedürfnissen. Hierfür bieten wir eine der umfassendsten und modernsten Produktpaletten und
Dienstleistungen Europas an. Und eine persönliche Zusage: Egal, ob Sie ein hochregallagergroßes Lager
aufbauen oder nach einem höhenverstellbaren Schreibtisch für Ihr Büro suchen, wir sind für Sie da und
finden die richtige Lösung – und falls nötig, entwickeln wir diese sogar selbst!
Unsere Service-Hotline ist unter tel:+492741286222 von Montag bis Freitag zwischen 7.30 Uhr und 18.00
Uhr erreichbar. Wir sind auch per E-Mail unter mail:info@schaefer-shop.de erreichbar.
Unterstützte Zahlungsdienstleister sind PayPal, Rechnung, Visa, Mastercard, Lastschrift, Vorkasse, Klarna.
Die Adresse der "Schäfer Shop Fundgrube" lautet Industriestraße 65, 57518 Betzdorf. Die Öffnungszeiten
sind Dienstag bis Donnerstag von 10.00 Uhr bis 15.00 Uhr.

Wenn der Bot Informationen aus dem FAQ-Wissensbereich mit einem Link abruft, wird er sie mit Markdown
einbetten.
Wenn der Bot Telefonnummern oder Email-Adressen findet, wird er sie mit Markdown einbetten., z.B.
[0123456789](tel:0123456789) oder [test@mail.com](mailto:test@mail.com)

The final Prompt

{
  name: 'SearchProducts',
  description:
  'Use this when searching for specific products from a internal product database or refining a search with additional information. This function is deterministic.',
  parameters: {
    type: 'object',
    properties: {
      search_query: {
        type: 'string',
        description: 'The search query to use.',
      },
    },
    required: ['search_query'],
  },
}

wrapping up

Backend

Für den Chat Bot eine HTTP API bereitstellen, damit Kunden damit chatten können.

DESIGN

Cooles Design für einen Chat Bot in Figma bauen.
(mit Hilfe von einem Freund)

Frontend

Ein Frontend bauen um mit dem Chat Bot zu sprechen und die Antworten schön aussehen zu lassen.

DIE RESULTATE

Größtenteils cool, manchmal komisch

Fragen?

Und falls noch Zeit ist, eventuell eine kleine Live Demo.

Schäfer Shop Customer Chat Bot

By amazingturtle

Schäfer Shop Customer Chat Bot

  • 143