VideosAI Driven Text Completions in Oxygen XML Editor

Overview

This video offers a quick look at how the Smart Autocomplete add-on can be used in Oxygen XML Editor to help writers by offering text completion proposals. It also contributes various configurable actions that can be used to transform selected text in the editor.

Transcript

00:00:06The purpose of this video is to introduce  you to the Smart Autocomplete add-on that  
00:00:11is available in Oxygen XML Editor.  It contributes a side-view that  
00:00:15has functionality to help writers by  offering text completion proposals.  
00:00:21In the past few years, there has been a surge  in the use of Artificial Intelligence within  
00:00:26software development tools. For example, GitHub  and OpenAI joined forces to create a software  
00:00:34developer assistant for popular programming  languages such as Java, JavaScript, and Python,  
00:00:39and they named it GitHub Copilot. The purpose  is that once you type the name of the method  
00:00:46or function, the AI will understand the  meaning of it and will generate code.  
00:00:50This inspired the developers of Oxygen XML  Editor to create a Smart Autocomplete add-on  
00:00:56that uses AI to help writers create content by  providing text completion functionality.  
00:01:03The functionality of the add-on was  implemented through two methods.  
00:01:07The first method, called the "Built-in" engine,  
00:01:10uses a search and scoring algorithm over all  the text content from your project files.  
00:01:16This method does not require an AI model, it  is fast, and data is stored locally on your PC.  
00:01:24It very strictly matches content that you  have typed with possible subsequent content.  
00:01:30Its limitation is that it doesn't  have a way to consider synonyms  
00:01:34or the semantic equivalence of text. The second method uses an OpenAI model.  
00:01:41The advantages are that it understands the  context and the semantics of the text you type  
00:01:46and can generate completions that fit well,  although you do need to double check them  
00:01:51because it's not always factually correct. The  text that you type is sent to the OpenAI servers  
00:01:57so you should not use this engine if you're  editing content that has restricted access. 
00:02:04OpenAI GPT3 is the largest commercial  AI model available to integrators.  
00:02:10It contains about 175 billion weights, and  it was trained on a huge corpus of text.  
00:02:16Similar to other encoder/decoder language  models, the training was done by 'hiding'  
00:02:20some words from the input and asking  the model to guess the missing word.  
00:02:25The resulting language model was able to  find semantic connections between words,  
00:02:29in some way 'understanding' the meaning  of the text, and it's capable of doing  
00:02:34more than it was trained to do initially.  For example, responding to questions. 
00:02:40We identified a series of use  cases where a tool based on  
00:02:43GPT3 would be valuable in relation to content:  
00:02:48Help with creating content, such as: text  completion, automatic markup, keywords extraction,  
00:02:54paraphrasing, summarization, or translation. Help with consuming content, such as:  
00:03:00chatbots, or semantic searches. and For the non-technical domain, it is useful  
00:03:06for Brainstorming ideas, Marketing, Copywriting,  creating ads, or improving the tone. 
00:03:12As far as some limitations, currently, the  language models cannot be used as a source  
00:03:17of truth. They are probable-istic engines. They  have a window of text that they look at, usually  
00:03:23about a few hundred words, so they can completely  miss key facts from the start of your document. 
00:03:31So, in terms of the Oxygen  Smart Autocomplete add-on,  
00:03:35first, you need to install it, so I'll  go to Help- install new add-ons. 
00:03:44I'll choose the default update site. And the add-on is named Smart Autocomplete. 
00:04:00After completing the wizard,  I need to restart Oxygen.  
00:04:05And I can open the newly contributed  side view by going to Window-Show  
00:04:09View- and Smart Autocomplete. And now I'll  show you some examples of how it works.  
00:04:17First, I'll show you the built-in engine.  
00:04:21Note that I'm using a very small  project from the Oxygen samples folder  
00:04:25and note that the quality of the completions  increase with the size of the text content.  
00:04:31before starting to use it, I need to  click the Reindex Project button.  
00:04:37And I'll start typing some text and  if I pause after entering a space,  
00:04:43you see that it tries to complete the text. I'll continue. Now remember that you  
00:04:49need to double-check that the  content it inserts is accurate.  
00:04:59Here was an example of it adding something  I didn't want so I deleted that part.  
00:05:06I'll add one more Li.
00:05:10...and this was just a short demonstration of how the Built-in engine works
00:05:17Now I'll switch to the OpenAI engine to show you  some of the helpful things you can do with it.  
00:05:22To use this engine, you have to copy an  API key from the open ai website. Here,  
00:05:27you go to your account drop-down menu and select  "View API keys", then click this "copy" link.  
00:05:37Then back in Oxygen, I'll paste  it into the API Key field.  
00:05:45Now I'll switch to the "Model" tab and you see  there's a lot of models to choose from. I'll leave  
00:05:53it on the default text-davinci-001 model. and in another sample document...  
00:06:00I start typing content that could be  an ordered list of instructions.  
00:06:09I'll select that content ... and  I'll click the Ordered lists button,  
00:06:14and you seed that it automatically converted  the content into an ordered list.  
00:06:20Now I'll select some text and use the  inlines button and you see that it  
00:06:26automatically inserts inline markup where  it detects that it would be appropriate  
00:06:38(for example, DITA UI control  or filepath elements).  
00:06:44In this next sample, I have 3 identical  sentences and I'll use the paraphrase button  
00:06:49on each of them ...  
00:07:03and you see that it generated  3 different proposals. Maybe a copywriter would 
00:07:08want to choose which one they want to keep. Then, I'll select another paragraph and I use  
00:07:14the Commercial ad button and it converted  the text into more of a marketing style.  
00:07:22This next sample has a lot of text and I  
00:07:25can use the Summarize button to  condense it into a summation.  
00:07:37I can also translate it into French. Now, the actions I presented so far are based  
00:07:47on instructions in natural language specified in  a configuration file. The action that I used to  
00:07:54translate content into French works based on  an instruction in the configuration file.  
00:07:58To get the best performance, you can use a  fine-tuned model. This is created by using  
00:08:00one of the generic OpenAI models, then feeding  it with examples. The action I used earlier to  
00:08:02create an ordered list is based on an instruction  and a few examples. Note that the performance is  
00:08:08linear to the quality of examples, the number  of examples, and the size of the base model.  
00:08:14To get the best performance you can use a fine-tuned model
00:08:18This is created by using one of the generic OpenAI models, then feeding it with examples.
00:08:24The action I used earlier to add in-line mark-up is a custom fine-tuned model based on a lot of examples
00:08:30has allowed it to learn how  to apply DITA inline markup to text phrases.  
00:08:36This model is not public, but we plan to  host a webinar in the near future to show  
00:08:40you how you can build a similar  model for your organization.  
00:08:45So, if I want to configure my own custom action,  I can click the Configure Actions button.  
00:08:51This opens the configuration file where the  instructions for the actions are defined.  
00:08:57I'll create a button for  translating content to German,  
00:09:00similar to the button I used to  translate the content into French.  
00:09:05I'll search for french since I know there's  already a configured button for that...  
00:09:14and I'll copy and paste the entire block of code  
00:09:18and I'll replace all the  instances of french with German.  
00:09:30And now I just need to click the Refresh button  
00:09:33and you see that I now have  a new button for German.  
00:09:38This was just a short introduction to using  the add-on's features, but as I mentioned,  
00:09:42we will host an hour-long webinar soon  where you can see a lot more details. 
00:09:47As far as the roadmap going forward, the OpenAI  implementation of the Smart AutoComplete Add-on is  
00:09:53currently in an experimental phase since the Open  AI platform is still in beta, but we are committed  
00:09:59to exploring the use of AI as a tool for technical  content creation and content usage, so you will  
00:10:05see this addon continue to be improved and new  AI features will be added to our products.  
00:10:11Thank you for watching this introductory video,  
00:10:13and please give us feedback  on our support channels.