Replies: 3 comments
-
I've been researching using Perl for calculating sentence embedding vectors, but have not found anything that seems promising. It looks like we might have to calculate the sentence embedding vectors outside of LSMB using Python. I know, yuck. The general process is described here. If anyone knowns of any perl alternatives, please add them to the discussion. |
Beta Was this translation helpful? Give feedback.
-
Updated proposal to add "Show Help" button and list its benefits. |
Beta Was this translation helpful? Give feedback.
-
Hi, Great proposal! I don't feel I have much comment on the AI part of this, but for the UX, as well as overall documentation, lots of comments. First off, I like the "4 types of documentation" framework for documentation - https://docs.divio.com/documentation-system/, https://www.writethedocs.org/videos/eu/2017/the-four-kinds-of-documentation-and-why-you-need-to-understand-what-they-are-daniele-procida/ , summarized as:
... I think we should consider that the full scope of any documentation efforts -- and clarify where/how we address each of these needs. I would propose that this proposal is mostly the last one, "Reference", but that we should work as much "Explanations" in as we can. The first two, Tutorials and How-To guides, I would think make sense to put in the website or a standalone book, not necessarily in the app. UX proposal enhancementsAs far as the actual UX is concerned, I like the notion of having a toggle to show/hide the contextual help icons -- maybe put this as a top level menu item, so you don't have to go to a preferences screen? And then I do think there should be two different systems in place for the actual help:
This reminds me of other things we've built, which might help for tutorials/how-tos -- an interactive tour. We've built these using a "Joyride" library, which allows you to specify a sequence of steps, with text in balloons (tooltip dialogs) anchored to the field or button for the current step. Users can either do the action or click "next" in the dialog to move to the next step in the tour. So that's what I would want to see for in-app documentation. I haven't thought through how AI might work with this system, but I have done implementations of most of the pieces I've described, and have a clear idea in my head about what the interface looks like, and how people interact with it. Implementation notesImplementation-wise, I would think we'd have 3 different sources for these 3 different systems:
Answers to Questions (above)So my answers to your earlier questions:
I don't think so -- I think in addition to what I outlined, developer docs generated from the code seems worthwhile, as a developer docs site -- but I think most of what's currently in the book (at least the last time I looked at it) is better put in the app...
Yes, this is pretty simple with Quasar -- and, I was just hearing that browsers are adding a element as native HTML, which might mean no framework needed for this at all...
I would say no for field-level help, but yes for page/screen-level help.
For a developer documentation site, this is probably a good idea. I don't think we need that for user documentation.
A joyride-based tour, once we hook it up, is really pretty easy to create content for -- the solution we created (in Drupal) allowed non-developers to create them -- the main technical thing they needed help with is identifying the CSS selector for the element to highlight.
I like Markdown, if we want to avoid having a rich text editor (if we're trying to get more contributions) -- I'd be in favor of Markdown for our doc standard, could be persuaded for other options.
I would tend to think the field-level help should use the existing localization processes. Not really sure about the rest.
I would tend to think each field should have a "source of truth" in the code -- where do we define labels for our current fields? The field help text should be right there. Fine if there's a build step that collects all these to put in the database. No opinion (yet) on the specifics of a database schema. For page-level help and tours, I'm thinking we should handle those like we handle templates -- have a place where admins can load a specific set into the database, and customize/edit as they see fit. And they can choose to reload any from an update, or not -- allow them to customize their own help content as they see fit...
I think that is a bit of a different discussion -- I'm thinking of a company dashboard page, or landing page where a company can manage custom content. We could maybe have a "help" landing page to link out to the website, Matrix, Github, etc, and describe the help available... Would that be a good place to have AI tips? Maybe a list of your previous queries, sample prompts to get the best results? I see that is what you suggested already -- I think it might be nice to have a few "Getting Started" how-tos, and other explanatory concepts somewhere, but I would think this content could be built on the website first (and possibly loaded into the app through an API call or something, rather than delivered in the codebase). |
Beta Was this translation helpful? Give feedback.
-
LSMB Help Proposal
This document proposes embedding all help and documentation into a running LSMB system for both users and developers using various parts of LLM (large language models), AI (artificial intelligence) and NLP (natural language processing). This proposal does not include merging the tutorial from the book into LSMB.
When someone needs to know something, instead of trying to figure where to find the answer, this proposal puts all of the answers in a defined location using either context based help or a focused ChatGPT like search and response process that does not access any external servers.
Why?
Overview
The help subsystem will be comprised of both User Help and Developer Help.
a. If there is User or Developer Help available for a screen, a button will appear on the screen called something like "Show Help". When this button is turned "OFF" the view shows as it currently does. That is not showing any help icons. This reduces screen clutter for experienced users.
b. When the "Show Help" button is turned "ON" the screen will show help icons next to each item where help is available. When the user clicks on a help icon, LSMB opens a pop up window (toast) with the localized help that is specific to the appropriate view, field, or procedure. Developer Help, if available, is shown after User Help.
c. The status of "Show Help" button for each screen will be saved for each user across logins and navigation.
Design
Contextual User or Developer Help
Screen based contextual help will be available via an icon or multiple icons on a screen. When the user click on the icon the help will be loaded from the database and shown in a pop-up. If the database help text contains image links, they will also be loaded.
The screen based help will be developed either specifically for the help system or moved from the book, and stored in the database help table. For an example help table, see below.
Where screen fields directly match database fields, the help can be loaded from the database column comments. If necessary, the database column comments can contain both user and developer comments. The database column comment can be annotated so the appropriate text is used.
Translations will be exported from the database, updated, then imported back into the database.
User help will be available for both
login.pl
andsetup.pl
While some help may need to be loaded into the help table via a configuration file, it is anticipated that a view will, if necessary, add or update its own help in help table when it is initialized. That way help can updated when any changes are made to the view simply by including the new help in the view code.
Now one might wonder why use the help table at all? Good question. The answer is that the help table is needed for the ChatGPT like search functionality.
In my own code I am not yet using a LLM, so I maintain vectorized search strings separate from vectorized response text. Some more research or someone more knowledgable is needed here. If that is needed then the help table example below will change.
AI Developer Help
Developer help will make available all text that is in perl files (perldoc), database comments, etc. via a ChatGPT like (question & answer) interface. Essentially any text that can be scanned in the code base.
The only difference between User help and Developer help is the depth of content.
All developer help will come from scanning developer generated files. No manual help writing will be used. As such, it is not expected to significantly increase the LSMB download size.
Technical Requirements
With any enhancement there is the need to evaluate added dependencies. The following dependencies are envisioned.
Screen based help may need the following:
Text::Markdown
- Certainly HTML or LaTeX help could be used, but most non-UI developers are more comfortable with Markdown.Searchable based help may need the following:
pgvector
extension. For storing and searching sentence embedding vectors.Lingua::*
. For processing and creating sentence vectors?Text::Sentence
. For processing and creating sentence vectors?Algorithm::NaiveBayes
. For processing and creating sentence vectors?Questions
Template::Toolkit
for the conversion. Which while already used in LSMB is complicated and not straightforward for most developers.Text::Markdown
for the conversion. Which makes the source easier to understand.Consequences
Step to implementation
Technical Notes
The following is only provided to enhance understanding of this proposal.
Beta Was this translation helpful? Give feedback.
All reactions