How To Crea­te an Intel­li­gent Chat­bot in Python Using the spa­Cy NLP Libra­ry

-

How To Crea­te A Chat­bot with Python & Deep Lear­ning In Less Than An Hour by Jere Xu

ai chat bot python

The suc­cess depends main­ly on the talent and skills of the deve­lo­p­ment team. Curr­ent­ly, a talent shorta­ge is the main thing ham­pe­ring the adop­ti­on of AI-based chat­bots world­wi­de. Con­sider enrol­ling in our AI and ML Black­belt Plus Pro­gram to take your skills fur­ther. It’s a gre­at way to enhan­ce your data sci­ence exper­ti­se and broa­den your capa­bi­li­ties. With the help of speech reco­gni­ti­on tools and NLP tech­no­lo­gy, we’ve cover­ed the pro­ces­ses of con­ver­ting text to speech and vice ver­sa. We’ve also demons­tra­ted using pre-trai­ned Trans­for­mers lan­guage models to make your chat­bot intel­li­gent rather than script­ed.

In con­clu­si­on, this com­pre­hen­si­ve gui­de has pro­vi­ded an in-depth look at chat­bot deve­lo­p­ment using Python. By lever­aging the power of Python, deve­lo­pers can crea­te sophisti­ca­ted AI chat­bots that can under­stand and respond to user queries with ease. Hybrid chat­bots com­bi­ne the capa­bi­li­ties of rule-based and self-lear­ning chat­bots, offe­ring the best of both worlds.

By the end of this gui­de, you’ll have a func­tion­al chat­bot that can hold inter­ac­ti­ve con­ver­sa­ti­ons with users. Befo­re start­ing, it’s important to con­sider the sto­rage and sca­la­bi­li­ty of your chatbot’s data. Using cloud sto­rage solu­ti­ons can pro­vi­de fle­xi­bi­li­ty and ensu­re that your chat­bot can hand­le incre­asing amounts of data as it lear­ns and inter­acts with users.

Set­ting a mini­mum value that’s too high (like 0.9) will exclude some state­ments that are actual­ly simi­lar to state­ment 1, such as state­ment 2. Here the wea­ther and state­ment varia­bles con­tain spa­Cy tokens as a result of pas­sing each cor­re­spon­ding string to the nlp() func­tion. This URL returns the wea­ther infor­ma­ti­on (tem­pe­ra­tu­re, wea­ther descrip­ti­on, humi­di­ty, and so on) of the city and pro­vi­des the result in JSON for­mat. After that, you make a GET request to the API end­point, store the result in a respon­se varia­ble, and then con­vert the respon­se to a Python dic­tion­a­ry for easier access.

This method ensu­res that the chat­bot will be acti­va­ted by spea­king its name. Chat­bots can pro­vi­de real-time cus­to­mer sup­port and are the­r­e­fo­re a valuable asset in many indus­tries. When you under­stand the basics of the Chat­ter­Bot libra­ry, you can build and train a self-lear­ning chat­bot with just a few lines of Python code.

Howe­ver, at the time of wri­ting, the­re are some issues if you try to use the­se resour­ces straight out of the box. You con­ti­nue to moni­tor the chatbot’s per­for­mance and see an imme­dia­te improvement—more cus­to­mers are com­ple­ting the pro­cess, and cus­tom cake orders start rol­ling in. For exam­p­le, if a lot of your cus­to­mers ask about deli­very times, make sure your chat­bot is equip­ped to ans­wer tho­se ques­ti­ons accu­ra­te­ly. Using a visu­al edi­tor, you can easi­ly map out the­se inter­ac­tions, ensu­ring your chat­bot gui­des cus­to­mers smooth­ly through the con­ver­sa­ti­on.

Step 2: Crea­te a Vir­tu­al Envi­ron­ment

To gene­ra­te a user token we will use uuid4 to crea­te dyna­mic rou­tes for our chat end­point. Sin­ce this is a publicly available end­point, we won’t need to go into details about JWTs and authen­ti­ca­ti­on. Redis is an in-memo­ry key-value store that enables super-fast fet­ching and sto­ring of JSON-like data. For this tuto­ri­al, we will use a mana­ged free Redis sto­rage pro­vi­ded by Redis Enter­pri­se for test­ing pur­po­ses. Remem­ber, over­co­ming the­se chal­lenges is part of the jour­ney of deve­lo­ping a suc­cessful chat­bot.

ai chat bot python

This should howe­ver be suf­fi­ci­ent to crea­te mul­ti­ple con­nec­tions and hand­le mes­sa­ges to tho­se con­nec­tions asyn­chro­no­us­ly. GPT-J-6B is a gene­ra­ti­ve lan­guage model which was trai­ned with 6 Bil­li­on para­me­ters and per­forms clo­se­ly with OpenAI’s GPT‑3 on some tasks. I’ve careful­ly divi­ded the pro­ject into sec­tions to ensu­re that you can easi­ly sel­ect the pha­se that is important to you in case you do not wish to code the full appli­ca­ti­on. You’ll soon noti­ce that pots may not be the best con­ver­sa­ti­on part­ners after all. After data clea­ning, you’ll retrain your chat­bot and give it ano­ther spin to expe­ri­ence the impro­ved per­for­mance.

Sin­gle trai­ning ite­ra­ti­on¶

Befo­re start­ing, you should import the neces­sa­ry data packa­ges and initia­li­ze the varia­bles you wish to use in your chat­bot pro­ject. It’s also important to per­form data prepro­ces­sing on any text data you’ll be using to design the ML model. Fur­ther­mo­re, Python’s rich com­mu­ni­ty sup­port and acti­ve deve­lo­p­ment make it an excel­lent choice for AI chat­bot deve­lo­p­ment. The vast online resour­ces, tuto­ri­als, and docu­men­ta­ti­on available for Python enable deve­lo­pers to quick­ly learn and imple­ment chat­bot pro­jects. This com­pre­hen­si­ve gui­de ser­ves as a valuable resour­ce for anyo­ne inte­res­ted in crea­ting chat­bots using Python. I star­ted with seve­ral examp­les I can think of, then I loo­ped over the­se same examp­les until it meets the 1000 thres­hold.

The bina­ry mask ten­sor has

the same shape as the out­put tar­get ten­sor, but every ele­ment that is a

PAD_token is 0 and all others are 1. For this we defi­ne a Voc class, which keeps a map­ping from words to

inde­xes, a rever­se map­ping of inde­xes to words, a count of each word and

a total word count. The class pro­vi­des methods for adding a word to the

voca­bu­la­ry (addWord), adding all words in a sen­tence

(addS­en­tence) and trim­ming infre­quent­ly seen words (trim). For con­ve­ni­ence, we’ll crea­te a nice­ly for­mat­ted data file in which each line

con­ta­ins a tab-sepa­ra­ted query sen­tence and a respon­se sen­tence pair.

Now we can assem­ble our voca­bu­la­ry and query/response sen­tence pairs. Befo­re we are rea­dy to use this data, we must per­form some

prepro­ces­sing. We cover­ed seve­ral steps in the who­le artic­le for crea­ting a chat­bot with ChatGPT API using Python which would defi­ni­te­ly help you in suc­cessful­ly achie­ving the chat­bot crea­ti­on in Gra­dio.

From cus­to­mer ser­vice auto­ma­ti­on to vir­tu­al assistants and bey­ond, chat­bots have the poten­ti­al to revo­lu­tio­ni­ze various indus­tries. As Python con­ti­nues to evol­ve and new tech­no­lo­gies emer­ge, the future of chat­bot deve­lo­p­ment is poi­sed to be even more exci­ting and trans­for­ma­ti­ve. They are chan­ging the dyna­mics of cus­to­mer inter­ac­tion by being available around the clock, hand­ling mul­ti­ple cus­to­mer queries simul­ta­neous­ly, and pro­vi­ding instant respon­ses.

Deep Lear­ning and Gene­ra­ti­ve Chat­bots

The­re are count­less uses of Chat GPT of which some we are awa­re and some we aren’t. Here we are going to see the steps to use Ope­nAI in Python with Gra­dio to crea­te a chat­bot. Don’t for­get to test your chat­bot fur­ther if you want ai chat bot python to be assu­red of its func­tion­a­li­ty, (con­sider using soft­ware test auto­ma­ti­on to speed the pro­cess up). Now you can start to play around with your chat­bot, com­mu­ni­ca­ting with it in order to see how it responds to various queries.

ai chat bot python

In this sec­tion, you put ever­y­thing back tog­e­ther and trai­ned your chat­bot with the clea­ned cor­pus from your Whats­App con­ver­sa­ti­on chat export. At this point, you can alre­a­dy have fun con­ver­sa­ti­ons with your chat­bot, even though they may be some­what non­sen­si­cal. Depen­ding on the amount and qua­li­ty of your trai­ning data, your chat­bot might alre­a­dy be more or less useful. Your chat­bot has increased its ran­ge of respon­ses based on the trai­ning data that you fed to it.

This chat­bot is going to sol­ve mathe­ma­ti­cal pro­blems, so ‘chatterbot.logic.MathematicalEvaluation’ is included. The com­mand ‘logic_adapters’ pro­vi­des the list of resour­ces that will be used to train the chat­bot. The chat­bot you’re buil­ding will be an ins­tance belon­ging to the class ‘Chat­Bot’.

Natu­ral Lan­guage Pro­ces­sing or NLP is a pre­re­qui­si­te for our pro­ject. NLP allows com­pu­ters and algo­rith­ms to under­stand human inter­ac­tions via various lan­guages. In order to pro­cess a lar­ge amount of natu­ral lan­guage data, an AI will defi­ni­te­ly need NLP or Natu­ral Lan­guage Pro­ces­sing. Curr­ent­ly, we have a num­ber of NLP rese­arch ongo­ing in order to impro­ve the AI chat­bots and help them under­stand the com­pli­ca­ted nuan­ces and under­to­nes of human con­ver­sa­ti­ons.

They pro­vi­de pre-built func­tion­a­li­ties for natu­ral lan­guage pro­ces­sing (NLP), machi­ne lear­ning, and data mani­pu­la­ti­on. The­se libra­ri­es, such as NLTK, Spa­Cy, and Text­B­lob, empower deve­lo­pers to imple­ment com­plex NLP tasks with ease. Python’s exten­si­ve libra­ry eco­sys­tem ensu­res that deve­lo­pers have the tools they need to build sophisti­ca­ted and intel­li­gent chat­bots.

Reo­nic rai­ses €13 mil­li­on to help small instal­lers of green tech like heat pumps and solar panels

This blog post will gui­de you through the pro­cess by pro­vi­ding an over­view of what it takes to build a suc­cessful chat­bot. To learn more about text ana­ly­tics and natu­ral lan­guage pro­ces­sing, plea­se refer to the fol­lo­wing gui­des. After crea­ting the pairs of rules abo­ve, we defi­ne the chat­bot using the code below.

Also, each actu­al mes­sa­ge starts with meta­da­ta that includes a date, a time, and the user­na­me of the mes­sa­ge sen­der. Chat­ter­Bot uses com­ple­te lines as mes­sa­ges when a chat­bot repli­es to a user mes­sa­ge. In the case of this chat export, it would the­r­e­fo­re include all the mes­sa­ge meta­da­ta. That means your fri­end­ly pot would be stu­dy­ing the dates, times, and user­na­mes! Moving for­ward, you’ll work through the steps of con­ver­ting chat data from a Whats­App con­ver­sa­ti­on into a for­mat that you can use to train your chat­bot.

ai chat bot python

Here’s a step-by-step gui­de to crea­ting a chat­bot that’s just right for your busi­ness. You can also track how cus­to­mers inter­act with your chat­bot, giving you insights into what’s working well and what might need twea­king. Over time, this data helps you refi­ne your approach https://chat.openai.com/ and bet­ter meet your cus­to­mers’ needs. They ope­ra­te based on pre­de­fi­ned scripts and spe­ci­fic rules, simi­lar to a “Choo­se Your Own Adven­ture” game. Users inter­act by sel­ec­ting from a list of opti­ons, and the chat­bot responds accor­ding to the­se pre-set rules.

To set up the pro­ject struc­tu­re, crea­te a fol­der namedfull­stack-ai-chat­bot. Then crea­te two fol­ders within the pro­ject cal­led cli­ent and ser­ver. The ser­ver will hold the code for the backend, while the cli­ent will hold the code for the front­end. One of the best ways to learn how to deve­lop full stack appli­ca­ti­ons is to build pro­jects that cover the end-to-end deve­lo­p­ment pro­cess. You’ll go through desig­ning the archi­tec­tu­re, deve­lo­ping the API ser­vices, deve­lo­ping the user inter­face, and final­ly deploy­ing your appli­ca­ti­on.

Sket­ching out a solu­ti­on archi­tec­tu­re gives you a high-level over­view of your appli­ca­ti­on, the tools you intend to use, and how the com­pon­ents will com­mu­ni­ca­te with each other. In order to build a working full-stack appli­ca­ti­on, the­re are so many moving parts to think about. And you’ll need to make many decis­i­ons that will be cri­ti­cal to the suc­cess of your app.

Ulti­m­ate­ly we will need to per­sist this ses­si­on data and set a time­out, but for now we just return it to the cli­ent. Then we will include the rou­ter by lite­ral­ly cal­ling an include_router method on the initia­li­zed Fas­tA­PI class and pas­sing chat as the argu­ment. GPT-J-6B is a gene­ra­ti­ve lan­guage model which was trai­ned with 6 Bil­li­on para­me­ters and per­forms clo­se­ly with OpenAI’s GPT‑3 on some tasks. To extra­ct the city name, you get all the named enti­ties in the user’s state­ment and check which of them is a geo­po­li­ti­cal enti­ty (coun­try, sta­te, city). If it is, then you save the name of the enti­ty (its text) in a varia­ble cal­led city. A named enti­ty is a real-world noun that has a name, like a per­son, or in our case, a city.

ai chat bot python

They are ide­al for com­plex con­ver­sa­ti­ons, whe­re the con­ver­sa­ti­on flow is not pre­de­ter­mi­ned and can vary based on user input. Con­ver­sa­tio­nal models are a hot topic in arti­fi­ci­al intel­li­gence

rese­arch. Chat­bots can be found in a varie­ty of set­tings, inclu­ding

cus­to­mer ser­vice appli­ca­ti­ons and online help­desks. The­se bots are often

powered by retrie­val-based models, which out­put pre­de­fi­ned respon­ses to

ques­ti­ons of cer­tain forms. In a high­ly rest­ric­ted domain like a

company’s IT help­desk, the­se models may be suf­fi­ci­ent, howe­ver, they are

not robust enough for more gene­ral use-cases.

You can build a chat­bot that can pro­vi­de ans­wers to your cus­to­mers’ queries, take pay­ments, recom­mend pro­ducts, or even direct inco­ming calls. Choo­sing the right type of chat­bot depends on the spe­ci­fic requi­re­ments of a busi­ness. You can foun addi­tio­na infor­ma­ti­on about ai cus­to­mer ser­vice and arti­fi­ci­al intel­li­gence and NLP. Hybrid chat­bots offer a fle­xi­ble solu­ti­on that can adapt to dif­fe­rent con­ver­sa­tio­nal con­texts. Rule-based chat­bots, also known as script­ed chat­bots, ope­ra­te based on pre­de­fi­ned rules and pat­terns.

We do a quick check to ensu­re that the name field is not emp­ty, then gene­ra­te a token using uuid4. Next crea­te an envi­ron­ment file by run­ning touch .env in the ter­mi­nal. We will defi­ne our app varia­bles and secret varia­bles within the .env file. I’ve careful­ly divi­ded the pro­ject into sec­tions to ensu­re that you can easi­ly sel­ect the pha­se that is important to you in Chat GPT case you do not wish to code the full appli­ca­ti­on. In addi­ti­on to all this, you’ll also need to think about the user inter­face, design and usa­bi­li­ty of your appli­ca­ti­on, and much more. Set­ting a low mini­mum value (for exam­p­le, 0.1) will cau­se the chat­bot to mis­in­ter­pret the user by taking state­ments (like state­ment 3) as simi­lar to state­ment 1, which is incor­rect.

You can inte­gra­te your chat­bot into a web appli­ca­ti­on by fol­lo­wing the appro­pria­te framework’s docu­men­ta­ti­on. Python web frame­works like Djan­go and Flask pro­vi­de easy ways to incor­po­ra­te chat­bots into your pro­jects. Some were pro­grammed and manu­fac­tu­red to trans­mit spam mes­sa­ges to wreak havoc.

In addi­ti­on, you should con­sider uti­li­zing con­ver­sa­ti­ons and feed­back from users to fur­ther impro­ve your bot’s respon­ses over time. Once you have a good under­stan­ding of both NLP and sen­ti­ment ana­ly­sis, it’s time to begin buil­ding your bot! The next step is crea­ting inputs & out­puts (I/O), which invol­ve wri­ting code in Python that will tell your bot what to respond with when given cer­tain cues from the user.

You should be able to run the pro­ject on Ubun­tu Linux with a varie­ty of Python ver­si­ons. Howe­ver, if you bump into any issues, then you can try to install Python 3.7.9, for exam­p­le using pyenv. You need to use a Python ver­si­on below 3.8 to suc­cessful­ly work with the recom­men­ded ver­si­on of Chat­ter­Bot in this tuto­ri­al.

Tea­ching a machi­ne to

car­ry out a meaningful con­ver­sa­ti­on with a human in mul­ti­ple domains is

a rese­arch ques­ti­on that is far from sol­ved. A. An NLP chat­bot is a con­ver­sa­tio­nal agent that uses natu­ral lan­guage pro­ces­sing to under­stand and respond to human lan­guage inputs. It uses machi­ne lear­ning algo­rith­ms to ana­ly­ze text or speech and gene­ra­te respon­ses in a way that mimics human con­ver­sa­ti­on.

It uses various machi­ne lear­ning (ML) algo­rith­ms to gene­ra­te a varie­ty of respon­ses, allo­wing deve­lo­pers to build chat­bots that can deli­ver appro­pria­te respon­ses in a varie­ty of sce­na­ri­os. By lever­aging the­se Python libra­ri­es, deve­lo­pers can imple­ment powerful NLP capa­bi­li­ties in their chat­bots. To get star­ted with chat­bot deve­lo­p­ment, you’ll need to set up your Python envi­ron­ment. Ensu­re you have Python instal­led, and then install the neces­sa­ry libra­ri­es. A gre­at next step for your chat­bot to beco­me bet­ter at hand­ling inputs is to include more and bet­ter trai­ning data.

The con­ver­sa­ti­on isn’t yet flu­ent enough that you’d like to go on a second date, but there’s addi­tio­nal con­text that you didn’t have befo­re! When you train your chat­bot with more data, it’ll get bet­ter at respon­ding to user inputs. To sum things up, rule-based chat­bots are incre­di­bly simp­le to set up, relia­ble, and easy to mana­ge for spe­ci­fic tasks.

  • We’ve also demons­tra­ted using pre-trai­ned Trans­for­mers lan­guage models to make your chat­bot intel­li­gent rather than script­ed.
  • The consume_stream method pulls a new mes­sa­ge from the queue from the mes­sa­ge chan­nel, using the xread method pro­vi­ded by aioredis.
  • For exam­p­le, when film­ing a house fire, the com­pa­ny only spent around $100 using AI to crea­te the video, com­pared to the appro­xi­m­ate­ly $8,000 it would have cost wit­hout it.

For up to 30k tokens, Hug­ging­face pro­vi­des access to the infe­rence API for free. In the next sec­tion, we will focus on com­mu­ni­ca­ting with the AI model and hand­ling the data trans­fer bet­ween cli­ent, ser­ver, worker, and the exter­nal API. Next, to run our new­ly crea­ted Pro­du­cer, update chat.py and the Web­So­cket /chat end­point like below. Now that we have our worker envi­ron­ment set­up, we can crea­te a pro­du­cer on the web ser­ver and a con­su­mer on the worker. In the .env file, add the fol­lo­wing code – and make sure you update the fields with the cre­den­ti­als pro­vi­ded in your Redis Clus­ter.

In this code, we’ve crea­ted a simp­le Tkin­ter win­dow with a chat log area, a user input box, and a “Send” but­ton. When the user clicks the “Send” but­ton, the ‘show_chatbot_response‘ func­tion gets cal­led to dis­play the chatbot’s respon­se in the chat log. It pro­vi­des various wid­gets and tools to design and crea­te inter­ac­ti­ve gra­phi­cal user inter­faces. In our chat­bot pro­ject, Tkin­ter will enable us to pre­sent a user-fri­end­ly inter­face for users to chat with the chat­bot.

  • Con­ta­ins a tab-sepa­ra­ted query sen­tence and a respon­se sen­tence pair.
  • To make this com­pa­ri­son, you will use the spa­Cy simi­la­ri­ty() method.
  • The simi­la­ri­ty() method com­pu­tes the seman­tic simi­la­ri­ty of two state­ments as a value bet­ween 0 and 1, whe­re a hig­her num­ber means a grea­ter simi­la­ri­ty.
  • You’ll go through desig­ning the archi­tec­tu­re, deve­lo­ping the API ser­vices, deve­lo­ping the user inter­face, and final­ly deploy­ing your appli­ca­ti­on.
  • I know from expe­ri­ence that the­re can be num­e­rous chal­lenges along the way.

The future of chat­bot deve­lo­p­ment with Python is pro­mi­sing, with advance­ments in NLP and the emer­gence of AI-powered con­ver­sa­tio­nal inter­faces. This gui­de explo­res the poten­ti­al of Python in sha­ping the future of chat­bot deve­lo­p­ment, high­light­ing the oppor­tu­ni­ties and chal­lenges that lie ahead. If you feel like you’ve got a hand­le on code chal­lenges, be sure to check out our libra­ry of Python pro­jects that you can com­ple­te for prac­ti­ce or your pro­fes­sio­nal port­fo­lio.

This code tells your pro­gram to import infor­ma­ti­on from Chat­ter­Bot and which trai­ning model you’ll be using in your pro­ject. With chat­bots, NLP comes into play to enable bots to under­stand and respond to user queries in human lan­guage. Con­gra­tu­la­ti­ons, you’ve built a Python chat­bot using the Chat­ter­Bot libra­ry! Your chat­bot isn’t a smar­ty plant just yet, but ever­yo­ne has to start some­whe­re. You alre­a­dy hel­ped it grow by trai­ning the chat­bot with prepro­ces­sed con­ver­sa­ti­on data from a Whats­App chat export.

You’ll have to set up that fol­der in your Goog­le Dri­ve befo­re you can sel­ect it as an opti­on. As long as you save or send your chat export file so that you can access to it on your com­pu­ter, you’re good to go. To start off, you’ll learn how to export data from a Whats­App chat con­ver­sa­ti­on. In the pre­vious step, you built a chat­bot that you could inter­act with from your com­mand line.

A Che­vy dea­ler­ship added an AI chat­bot to its site. Then all hell bro­ke loo­se. — Busi­ness Insi­der

A Che­vy dea­ler­ship added an AI chat­bot to its site. Then all hell bro­ke loo­se..

Pos­ted: Mon, 18 Dec 2023 08:00:00 GMT [source]

Think of this as map­ping out a con­ver­sa­ti­on bet­ween your chat­bot and a cus­to­mer. Let’s say a cus­to­mer is on your web­site loo­king for a ser­vice you offer. Ins­tead of sear­ching through menus, they can ask the chat­bot, “What is your return poli­cy?

We do not need to include a while loop here as the socket will be lis­tening as long as the con­nec­tion is open. Then update the main func­tion in main.py in the worker direc­to­ry, and run python main.py to see the new results in the Redis data­ba­se. Note that to access the mes­sa­ge array, we need to pro­vi­de .mes­sa­ges as an argu­ment to the Path. If your mes­sa­ge data has a different/nested struc­tu­re, just pro­vi­de the path to the array you want to append the new data to. Next, we add some twea­king to the input to make the inter­ac­tion with the model more con­ver­sa­tio­nal by chan­ging the for­mat of the input.

The ins­tance sec­tion allows me to crea­te a new chat­bot named “Exam­ple­Bot.” The trai­ner will then use basic con­ver­sa­tio­nal data in Eng­lish to train the chat­bot. The respon­se code allows you to get a respon­se from the chat­bot its­elf. In sum­ma­ry, under­stan­ding NLP and how it is imple­men­ted in Python is cru­cial in your jour­ney to crea­ting a Python AI chat­bot.

During a demo shared with Tech­Crunch, Nes­vit and Kasia­nov wal­ked us through what an inter­ac­tion with Hay­den would look like. The app gui­des you to build a rela­ti­onship with him and earn his trust (he is a sca­ry mafia boss, after all). He will quiz you on the events in the series, such as inqui­ring about the rival gang he is aiming to defeat. Sin­ce its launch in April, My Dra­ma has rapidly gai­ned trac­tion, boas­ting 1 mil­li­on users and $3 mil­li­on in reve­nue. Holy­wa­ter has a strong track record with its pro­ducts, gene­ra­ting $90 mil­li­on in annu­al recur­ring reve­nue (ARR) across all its offe­rings. Final­ly, if a sen­tence is ente­red that con­ta­ins a word that is not in

the voca­bu­la­ry, we hand­le this graceful­ly by prin­ting an error mes­sa­ge

and promp­ting the user to enter ano­ther sen­tence.

Comments (0)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert