The official corporate homepage of Perfect World Entertainment, publisher of high-quality, free to play MMORPGs.
Purpose Learn how to build an intelligent bot with little coding. Time to Complete About 40 minutes Background Oracle Intelligent Bots (Bots) provides a set of sample bots that you can reference when you build your own. For this OBE, you'll be deconstructing and then rebuilding one of these, the PizzaBot. What do you need?. An OMCe user account. Contact your administrator if you don't have one.
The sample bots need to be deployed to your OMCe instance. Again, contact your adminstrator.
You'll need the files in the ZIP that accompanies this tutorial. Click to download it, then extract it to your local system. Using the PizzaBot. The PizzaBot typifies the quick transitions that are typical for a bot. To access this bot:.
Click Mobile Apps in the left navbar and then click Bots. In the bots catalog, click the PizzaBot tile. To start chatting, click Test. In the test window, select Bot.
Enter 'I want a pizza' and then click Send. When Pizzabot asks you for your age, enter '18' and then click Send. Pick the pizza crust and size from the list options when the bot prompts you. When the bot asks you for a pizza type, enter 'mushroom' and then click Send.
Now that you've seen the bot complete your order, click Reset to begin again. This time, things won't go so smoothly, because you're stated age is under 18. Enter 'Can I order a pizza?'
And then click Send. When prompted for your age, enter '17'. Taking a Look at How the PizzaBot Works. Before you build your own version of this bot, first get acquainted with the different pieces that make up the PizzaBot and find out about the Bot Builder along the way. To get started:. If you exited the Pizzabot, click the Pizzabot tile again. The Bot Builder opens to the intents page, which shows the two tasks that this bot performs for its users: OrderPizza and CancelPizza.
You'll come back to this (and other) pages later when you build your own version of this bot. Click OrderPizza and then take a look at the Examples section of the page to see the set of sample user requests, which are also known as 'utterances'.
Intents are comprised of groupings of these utterances, which are meant to represent typical user statements. Think of an intent as categorizing different types of user input.
Your bot draws on these intents to detect what the user wants. The Intent Entities section of the page displays the entities associated with these intents. Entities identify vital pieces of information from the user input. When you pair them with an intent, you give it the context it needs to complete the user request. In the left navbar, click Entities.
The entities page displays two types of entities: entities that are specific to this bot that describe pizza-specific concerns like CheeseType and PizzaCrust and entities that cover general topics, like time, currency, and location. CheeseType and PizzaCrust are among the custom entities created for this bot. They have little, or no, application outside of this bot, but you can use the other entities - the built-in ones that we provide - in any bot. Next, open the Components page. Components are individual functions that, when integrated into your bot's dialog definition (which we'll get to in the next step) propel the bot-user dialog forward. They can perform generic bot functions like prompting input from users and outputting your bot's replies.
They also perform actions that are specific to your bot as well. The Components page lists all of these bot-specific components, which are known as custom components.
The PizzaBot uses one of these components, AgeChecker. Its properties and actions enable it to function as the virtual gatekeeper, only allowing customers 18 years or older to continue. To see how the intents, entities, and components fit together, click the Flows icon in the left navbar. You define the entire interaction that your bot has with its users using our version of YAML, OBotML.
Find Out About the Dialog Flow. Later on, you'll be updating this dialog flow to give PizzaBot users another option: specifying cheese! But before you get to that point, you'll need to get acquainted with some dialog flow concepts and how they apply to the PizzaBot's dialog flow definition. Dialog flows have two main parts: the context and the states. You define the variables that are used throughout the dialog flow (that is, through the entire user-bot interaction) in the context section.
You can define these variables to hold literals, primitives, or the values extracted from from the user input by the entities.The variables defined for the Pizzabot do just that - they are defined by the Pizzabot entities that detect the user's preferences from the input text. There's another variable, iResult, that's also defined by an entity called nlpresult. Unlike the other entities in the context declaration, nlpresult is not specific to the PizzaBot. Instead, it's used widely - you'll see it in almost every reference bot's dialog flow. As its name implies ('nlp' stands for Natural Language Processing), this entity holds the intent that's resolved from the user input.
You would probably define a variable for this entity in every flow you write. The states section follows the variable definitions. States manage the logic within the bot flow. Each state definition is built around a component, which executes some function. At runtime, the Dialog Engine traverses the state nodes from the top-down and executes the components. For the Pizzabot, the first state that the Dialog Engine encounters is called Intent. Like nlpresult, Intent is common to most bot dialog definitions.
This state initializes the dialog flow using the intent that's held by the iResult variable to trigger a subsequent state. For the PizzaBot, the possible entry points reflect the two intents already defined for it ( OrderPizza: 'resolvesize' and CancelPizza: 'cancelorder')There's a third outcome, though it's not specific to any PizzaBot intent: unreslovedIntent: 'unresolved'. This handles the user requests and statements that can't be resolved to either of the other intents. When this happens, the bot outputs 'I do not understand. What do you want to do?' In the chat window.
Build Your Own PizzaBot. With the basics out of the way, you're reading to create your own version of the PizzaBot. You can build it the ground up by following these steps in this section, or you can clone the Pizzabot by choosing Clone from the tile menu. If you clone the PizzaBot, you can skip ahead to.
Keep in mind that if you clone the bot, you may need to connect to the component service that hosts BotsCustomComponents service, which provides the PizzaBot with the AgeChecker component. To get the end-to-end experience, click here:. Go back to the catalog. Click New Bot.
Complete the dialog by entering a name for your pizza bot and optionally, a description. Click Create. Parsing User Input with Natural Language Processing. For the Pizzabot, which, as its name implies, handles orders, there are the two intents that you saw earlier: OrderPizza and CancelPizza. To create these intents:.
First, click Add Intent. By default, Bots calls this first intent Intent1. Rename it OrderPizza.
Add these three utterances in the Examples section:. can I order a Pizza.
I feel like eating a pizza. I want to order a pizza The Bot builder adds each statement after click Enter or click outside of the field.
Tip: You don't need to end your statements with question marks (?) or periods (.). Repeat these steps to add the CancelOrder intent. Add the following utterances for this intent:. I don't want the pizza anymore. I want to cancel my pizza order Building Your Bot's Cognition. You've now provided the basic ingredients that allow your bot to recognize user input for ordering a pizza, but right now, your bot has no cognition.
It can't understand any user input. To enable it to use the intents, you need to train one or more of the models. The Train button deactivates after training completes (which is usually less than a second when you train the default model). To gauge how accurately the model resolves user input to an intent, click Test to open the test window. Click Intents in the test window. Enter one of the phrases that you used to define the intent and then click Send. The model resolves these phrases with 100% accuracy (as long as you stick to your training corpus, that is).
Building a Robust Training Corpus. While the model resolves with perfect accuracy for phrases that you've included in your training corpus, the odds become less certain when you enter a variant of one of these phrases, such as 'order a pizza.' To improve the intent resolution when your users go 'off-script', you need to expand your training corpus, both in terms of its volume and diversity.
Typically, you should create about 12 to 24 sample phrases for each intent that can include common expressions, colloquialisms, and even misspellings. Intents Contrasting Sentences Unusual Sentence Structure Alternate words Common Misspellings Intent-Specific Words and Phrases OrderPizza I want to order a pizza. A pizza I want. Order me a pizza. A pizza, I want I want a pie I want a piazza Give me a pizza CancelOrder I do not want to order a pizza I want not this pizza forget this pizza. I do not want this pizza.
While you can add the utterances individually here in the Bot Builder, you can also define them in a CSV file that you later import. To save time, you're going to populate your corpus by following the latter approach using a file called MyPizzaBot-corpus.csv that's included in the accompanying ZIP. Click More and then choose Import intents. Browse for, and select MyPizzaBot-corpus.csv to populate the sample phrases. Whenever you add a sample utterance, you need to retrain the model, so click Train.
So far, you've trained the default model, which is rules-based. To allow your bot to predict user input which falls outside of your training corpus, like 'Forget this pizza!' , you need to train another model called Trainer Tm, which uses a different approach to machine-based learning. To train this model:. Click the menu and then choose Trainer Tm.
Click Train. Adding the Entities.
Now, its time to add entities, which help the intent fulfill a user request by providing vital piece of information. As you saw in the original PizzaBot, the PizzaType, PizzaSize, and PizzaCrust entities enable the OrderPizza intent to complete an order.
This step shows you different ways of adding entities: you can populate them by uploading a CSV file like you did when you added the intents, and you can also use the Bot Builder to add them on your own. First, let's import the entities and then find out more about them. If you cloned the bot, then you already have these entities. To import the entities:. Click Entities in the left navbar. Right now, the Entities page lists only the built-in (or system) entities that we provide.
They extract generic information from the user input like addresses, dates, and time. Click More and then choose Import 'Value list' entities. Browse to the extracted ZIP file, and then open the MyPizzaBot-Entities.csv file. You've populated your bot with three new entities: PizzaCrust, PizzaType, and PizzaSize.
These are are known as value list entities. By clicking one, you can see that it's comprised of a set of predetermined values, like thick, thin, stuffed, and pan for PizzaCrust. When you have a short list, you can expose these as a list of values, or as a value expression, as you'll see later on.
Next, add a new list value entity, CheeseType:. Click Add Entity. Rename the entity 'CheeseType'. In the Configuration section, accept Value list (the default option).
Next, add the values themselves along with some synonyms (or in this case, common misspellings) that optimize the entity's ability to tag words from sloppy user input. To do this, click Add Value to open the Create Value dialog and then complete this dialog for each of the following values.
Value Synonyms Mozzarella Mozarela, Mozzarela Provolone Gouda Cheddar When you're done, the Entities page should look like this:. Here's an optional step: To make the confirmation text look a bit better, change the letter case for the PizzaSize values from uppercase to lowercase:. Select the PizzaSize entity. Select the Large value and then click Edit. While you're here, take a look at the synonyms that allow the entity to match free-form user input.
Using the Editing Value dialog, change the letter casing and then click Update. When you're done, the values should look like this:. The OrderPizza intent only needs these entities to complete the user requests. It doesn't use any of the built-in entities, so you don't want intent to waste time by iterating through the ones that it doesn't need.
Instead, you can limit it to just the custom entities that you've added by doing the following:. Click Intents in the left navbar and then select OrderPizza (if it's not already selected). Click Add Entity. Tip: If the test window is still open, close it by clicking Test. Scroll through the list, and select CheeseType from the list. Repeat this for PizzaSize, PizzaType, and PizzaCrust. When you're done, the page should look like this: Modifying the Dialog.
When you used the tester with the initial version of the Pizzabot earlier, you saw how it functioned in terms of its dialog definition and the intents that it was trained with. Here, you're going to see how the bot reacts now that it's equipped with an updated dialog flow definition and more training.
Click Test. Click Bot. Start ordering the pizza. Continue the prompts, including the one for the cheese selection. When you're done ordering, take a look at your revised confirmation message:.
Although the PizzaBot is menu-driven, you don't need to follow the sequence and choose your options. You can enter them directly in any order that you like. At the age prompt, try loading your messages with different combinations words to see the response. For example, enter '25 gouda big pan mushroom'.
Tutorial Bot Oracle Perfect World Indonesia 2 Update'Luneska' Halo Dewa-Dewi Mungkin sebagian ada yang bingung menggunakan Bot Oracle untuk game Perfect World. Sebenarnya simple, semoga tutorial singkat ini dapat membantu. Bagi yang belum punya Bot Oracle, bisa download di: 1. (Tombol Download ada dibawah). Hasil Scan By.Virus Total.com: File No Virus: Extract Folder Bot Oracle yang sudah didownload. Didalam folder Oracle, klik Oracle (ntkid Launcher).
Setelah itu, Bot akan meminta supaya diarahkan ke Element Client. Kamu cari file elementclient didalam folder Perfect World kamu, setelah itu pilih open pada bagian bawah.
Launcher bot Oracle akan otomatis masuk kedalam game, setelah berhasil Login kedalam PW, element client akan berubah menjadi: ntKid – OracleBOT. Ket: 1 = Element Client berganti menjadi ntKid – OracleBOT 2 = Menu bot Didalam game, akan terdapat menu baru, pada menu tersebut kita akan melakukan setting Bot.