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.