Custom GPT Sales and Support Assistant - Chatbot, Shopping Helper
Description
Highlights
About the Extension
The assistant plugin enables seamless integration of the OpenAI Assistants API into Shopware 6. Detailed information about the API itself can be found on the corresponding page of OpenAI (https://platform.openai.com/docs/assistants/overview).
With this plugin, you can set up a chatbot that can be supplied with information using simple text files or dynamic data. Each assistant created with OpenAI can use up to 20 files as attachments (approximately 500 MB per file, so most information should fit in a single file). A quick side note: if you upload and use a file with 500 MB of data (30–50 books of content), a question including an answer will cost at least €50, but most likely much more. In conjunction with precise instructions, OpenAI is able to specifically answer customer inquiries with the information from these text files, dynamically correct, shorten, or even translate them as needed. Imagine these files as a brochure containing all the information an employee would need to answer customer questions.
However, unlike employees, the language in which the customer communicates their questions is irrelevant. The chatbot adapts to the customer's input language and responds accordingly in the same language. Or it can translate it into any other language upon explicit request. The clever part is that the information in the files can also be in any language. OpenAI reads and responds with automatic correction and translation of all inputs and outputs as needed. Provided information, user inputs, and instructions are highly fault-tolerant. Inevitable text blocks within the user interface can be easily customized through the backend.
IMPORTANT NOTICE
Current Status (January 2024) and unfortunately, the OpenAI Assistants API is relatively expensive. Even a simple chat with 5–6 questions and corresponding answers can cost a few cents, even with small amounts of data stored in files. This is something you should consider when planning to use the plugin.
Using files as a "knowledge database" also incurs a small usage fee per file and per day when using the assistant. You can view current prices on the OpenAI pricing pages. Additional information and examples are available on the plugin's configuration page.
Side Note: For files, the plugin offers an alternative that doesn't require files at all.
Cost Management: The plugin offers full cost control through the OpenAI API. Everything is largely transparent, with no third-party services between you and the AI, positively impacting performance. All transactions occur directly and exclusively through OpenAI, logged in your profile for clear tracking. You can assign separate API keys to various sales channels, tracking and managing them individually. You pay only for actual usage, regardless of the number of API keys or assistants you create. Additionally, you can set budget limits with OpenAI. Once reached, the plugin "deactivates" for the respective sales channel, requiring manual reactivation to continue operations.
And with the most important information out of the way, what can the plugin do if budget is not an issue?
Functions in Chat
The OpenAI API, for example, provides various functions that you can individually enable or disable for each assistant. This allows you maximum flexibility. You can customize your assistant exactly to your needs. Keep in mind that each function you enable will incur additional costs in the form of so-called "tokens." Functions that provide specific data internally use the "/store-api".
The assistant plugin allows the OpenAI API to execute multiple functions in a single query, for example, to answer mixed questions in one go.
You can customize each assistant on the OpenAI site, e.g., define or modify functions. Functions that you manually enter or modify there will not be recognized by the plugin and may potentially lead to errors.
List of Available Functions
- Query current date, time, and timezone.
- Conduct natural product searches with keywords, attributes, manufacturer, and price range.
- Retrieve product attributes used by the shop.
- Query categories. Retrieved from "store-api/main-navigation".
- Retrieve a list of all manufacturers in active products.
- Redirect to product pages or category pages via input.
Extras (these functions can be omitted as these data could also be more extensive in files or "dynamic" data)
- Can dynamically query data configured in the settings
- A list of available countries
- Delivery times, retrieved from payment-methods
- Payment methods
- If your chatbot has a name, allow the chatbot to query its name. This is probably the most unnecessary feature ever.
To check what the chatbot knows, one can directly query the corresponding fields.
Product Search
- Keywords (currently in title and description)
- Options / Properties (Configurable)
- Manufacturer
- Price range
- Redirections (hands-free navigation to product detail pages or categories)
The search is limited to parent products (parentId). If you have problems with parent products and preselected unavailable variations, we can recommend our plugin "VariSEO Pro". It allows real parent products without any preselection.
General Search Process
Searching with the chatbot resembles the so-called "natural search," where only the main search term from inputs like "Search for T-shirt" is used. However, natural search reaches its limits as soon as the user adds additional properties to the search, such as "Search T-shirt in red". In such a case, the algorithm tries to search for "T-shirt in red" instead of "T-shirt" with the property "red". This is where the language proficiency of OpenAI proves extremely useful, as the AI is able to distinguish between search terms and properties and use both for the search.
The AI has the instruction to first check which properties are present in the shop and how they need to be correctly formulated to influence the search accordingly. The AI receives structured format search results (JSON), from which the AI then selects individually what it needs and displays it as it sees fit (HTML). We could also use a custom template for the results here, but that would limit the AI's ability to use the result in various ways (e.g., "details for hit x" or "go to hit x").
With a corresponding "productId" or the "productNumber" of a product, you can even directly query product details, e.g., with "get_product_details PRODUCT_ID". The result for product details is similar in structure to the search results but is expanded with the respective product description. The maximum length of the description can be limited in the backend, as the chatbot doesn't necessarily need to know everything in it. And because some descriptions resemble an encyclopedia rather than a "description". The description is taken directly from the parentProduct and can also be translated upon request.
General Functionalities
The plugin stores every chat as HTML in the user's storage (in the user's browser storage, not on the server). Where exactly it is stored ultimately depends on Shopware internally (usually it's the "localStorage" or "sessionStorage" of the browser). This means every thread (conversation) is preserved until the user explicitly deletes it. The chatbot can maintain conversations over hours and days without ever losing track (unless the user clears the storage otherwise, of course).
The following data is stored in the storage and restored during page changes:
- felChatStorage
- felChatStorage_threadId
- felChatStorage_chatOpen
- felChatStorage_chatZoom
Access Control
In the configuration, you can set it so that only authenticated users can use the chat. If this option is enabled, access can be further restricted to specific groups, e.g., "Administrators" or "Trusted Customers". This can be used, for example, to test the plugin without having to enable it directly for all users.
Alternative to Files
In the configuration, you can use a field as a file alternative. So anything you would write into a file and upload to OpenAI, you can enter into this field. The chatbot will request this data when it needs it. Unlike files, these data are flexible and can be adjusted at any time. Currently, it's difficult to say what's better, files or dynamic data? We are still experimenting and will let you know in future updates. In terms of usability, dynamic data clearly has an advantage, as we can already determine in advance.
Model Info
The model "gpt-3.5-turbo-1106" is well-suited for support chatbots. It excels in extracting and displaying data from files and can execute most of the available plugin functionalities. However, it falls short in product search. So, if you only need a chatbot to answer support questions, then "3.5" should suffice. Plus, it is significantly more affordable compared to "gpt-4-turbo-preview."
Details
- Available: English, German
- Latest update: 23 July 2024
- Publication date: 11 March 2024
- Version: 2.0.4
- Category: Comments / Feedback
Resources
Reviews (0)
About the Extension Partner
5 Elements Websolutions
Partner Status
-
Shopware
Extension Partner
Details
- Partner since: 2019
- Extensions: 7
Support
- Based in: Germany
- Speaks: German, English
- Response time: Very quickly