Giter Club home page Giter Club logo

pokedex-demo's Introduction

Pokemon Demo Bot

This is a demonstration of a digital assistant that can answer questions about pokemon. This is an open project and anybody can contribute to it.

It deserves mentioning that this is to be considered a hobby project. We do not guarantee that all the information on pokemon is 100% accurate or canon since we're just a community of fans. We're in no way affiliated with Nintendo or the Pokemon Company.

Getting Started Locally

To run the assistant locally you'll first need to clone.

git clone [email protected]:RasaHQ/pokedex-demo.git

Next, install rasa.

pip install rasa

Next you'll need to train the assistant.

rasa train

Once trained, you can now talk to it. Since we're using custom python code in there we'll need to run an action server on the side. So first start an action server via;

rasa run actions

With this running you can now talk to your assistant.

rasa shell

Extra Inspection

If you want to get more of a view of what is happening you can also run;

rasa shell nlu

By running it this way you'll get more of a glimpse in what the NLU components think.

If you want to supply the assistant with new data you can also handle this interactively via;

rasa interactive

Features

The digital assistant cannot do much yet, but here's some of the features;

  • checking if a given pokemon name indeed does exist
  • retreival of some basic pokemon-themed jokes
  • very basic faq

Contributing

If you're interested in expanding what pokebot can do; we're all ears!

  1. We would love it if people could add training data to the repository.
  2. We would love it if folks could think of ways to make pokebot more awesome in terms of features. Let's discuss these in an issue before making a PR though.

About Rasa

pokedex-demo's People

Contributors

juandes avatar koaning avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pokedex-demo's Issues

[New Feature] Explain Pokemon Evolution

Feature
This is an FAQ feature that should help explain the significance of evolving a pokemon.

Example
Give an example of what the chatbot should do. For example;

User> What does pokemon evolution mean?
Bot> Pokemon evolution refers to ...

Replacing pokenames.txt for a richer dataset

Currently, the only data available in the project is the pokenames.txt file, which holds the names of Pokemon. However, I propose to replace it (or adding) another file that contains the Pokemon names, plus other information such as its Pokedex number, type, evolution, and more. That way, the bot could answer more in-depth questions about the Pokemon.

Example
Suppose, you want to know Pikachu's name:

User> What's Pikachu's number?
Bot> Pikachu is Pokemon # 25.

Frequently Asked Questions

The first feature for this assistant should be to answer some basic frequently asked questions. Can we think of some? Here's some suggestions;

  1. What is pokemon?
  2. How many pokemon are there?
  3. What types of pokemon exist?

Images for the Pokebot

We will need images for this hobby project and we should make sure that we don't blindly copy images from Nintendo. It's their IP and we'd like this project to remain an innocent hobby project. We might be able to use this repository though.

pokemon name entities not detected

Describe the bug
Here are a couple of examples the chatbot should get right, but currently doesn't. Step 2 was correct, but step 4 / 6 had to manually annotate.

Chat History

 #    Bot                                                                                        You        
────────────────────────────────────────────────────────────────────────────────────────────────────────────
 1    action_listen                                                                                         
────────────────────────────────────────────────────────────────────────────────────────────────────────────
 2                                                                   hey is [rasa](pokemon_name) a pokemon? 
                                                                                intent: confirm_exists 0.96 
────────────────────────────────────────────────────────────────────────────────────────────────────────────
 3    slot{"pokemon_name": "rasa"}                                                                          
      action_check_existence 1.00                                                                           
      I do not recognize rasa, are you sure it is correctly                                                 
      spelled?                                                                                              
      action_listen 0.98                                                                                    
────────────────────────────────────────────────────────────────────────────────────────────────────────────
 4                                                                          are [pichuka](pokemon_name) and 
                                                                        [charmander](pokemon_name) pokemon? 
                                                                                intent: confirm_exists 1.00 
────────────────────────────────────────────────────────────────────────────────────────────────────────────
 5    slot{"pokemon_name": "charmander"}                                                                    
      action_check_existence 1.00                                                                           
      I do not recognize pichuka, are you sure it is correctly                                              
      spelled?                                                                                              
      Yes, charmander is a pokemon.                                                                         
      action_listen                                                                                         
────────────────────────────────────────────────────────────────────────────────────────────────────────────
 6                                                                             are [snorlax](pokemon_name), 
                                                                               [gariddos](pokemon_name) and 
                                                                            [dittto](pokemon_name) pokemon? 
                                                                                intent: confirm_exists 1.00 
────────────────────────────────────────────────────────────────────────────────────────────────────────────
 7    slot{"pokemon_name": "dittto"}                                                                        
      action_check_existence 1.00                                                                           
      Yes, snorlax is a pokemon.                                                                            
      I do not recognize gariddos, are you sure it is correctly                                             
      spelled?                                                                                              
      I do not recognize dittto, are you sure it is correctly                                               
      spelled?                                                                                              


Current slots: 
        attribute: None, knowledge_base_last_object: None, knowledge_base_last_object_type: None, knowledge_base_listed_objects: None, mention: None, object_type: None, pokemon: None, pokemon_name: dittto

To Reproduce
Steps to reproduce the behavior:

steps above were made in rasa interactive

[New Feature] Translating Pokemon Names

Feature
Did you know that snorlax is called ronflex in France? Japanese names also tend to be different. It would be a nice feature if our system could also detect these names.

Example

Example 1

User> What is the English name of ronflex
Bot> Ronflex is also known as Snorlax in English.

Example 2

User> Is ronfelx a pokmon that exists?
Bot> I don't recall ronfelx, are you sure it is spelled correctly?
User> Oh, I meant ronflex. 
Bot> Ah! 
Bot> Ronflex, also known in english as Snorlax, is ... <pokedex entry>

[New Feature] ChitChat Favorite Pokemon

Feature
You should be able to ask the pokebot about their favorite pokemon. This should probably be pikachu.

Example

User> Tell me, what is your favorite pokemon?
Bot> Why, Pikachu! Who does not love that furry little creature! 

[New Feature] How was pokemon created

Feature
The chatbot should describe who made Pokemon as well as give a small background on how it came to be.

Example

User> How was pokemon created?
Bot> <tell the story>
User> Who created pokemon?
Bot> <tell the same story>

Add a license

This looks like a fun project. Could you please add a license? Is it also Apache 2.0? I like the cute tiger cub picture.

Pokemon Based Jokes

I will add some jokes based on pokemon. Here's the current shortlist. Should I add more?

  utter_joke:
    - text: Are you sure you can handle my jokes? You might laugh your Ash off.
    - text: Why did the Squirtle cross the road? To get to the other tide!
    - text: What appears over Ash’s head when he gets an idea? A LightBulbasaur
    - text: Where did Brock take Nurse Joy for a date? The PokeBall
    - text: What’s better than one Pikachu? PikaTWO
    - text: What does Moeowth see when it looks in the mirror? A copy-cat!
    - text: When does a Gastly eat breakfast? In the moaning.
    - text: Which Pokemon does Dracula like most? Koffin'

rasa 3.0.8 throws error "required key 'mappings' [...] missing in domain.yml [...] path: /slots/..." during rasa train

rasa train throws ValidationExcepetion in domain.yml, not having a key "mapping" in Path: 'slots/attribute':

YamlValidationException: Failed to validate '...\pokedex-demo\domain.yml'. Please make sure the file is correct and all mandatory parameters are specified. Here are the errors found during validation:
  in ...\pokedex-demo\domain.yml:65:
      Cannot find required key 'mappings'. Path: '/slots/attribute'
  in ...\pokedex-demo\domain.yml:67:
> rasa --version
Rasa Version      :         3.0.8
Minimum Compatible Version: 3.0.0
Rasa SDK Version  :         3.0.4
Rasa X Version    :         None
Python Version    :         3.8.12

Steps to reproduce the behavior:

  1. follow instruction in readme
  2. execute rasa train (step 2)

File name too long error while training

Rasa version: 2.5.1

Rasa SDK version (if used & relevant): 2.5.0

Python version: Python 3.8.5

Operating system (windows, osx, ...): Ubuntu(Linux)

Bug
Getting file name too long error while traing Rasa .

Error :

OSError: [Errno 36] File name too long: 'bulbasaur\nivysaur\nvenusaur\ncharmander\ncharmeleon\ncharizard\nsquirtle\nwartortle\nblastoise\ncaterpie\nmetapod\nbutterfree\nweedle\nkakuna\nbeedrill\npidgey\npidgeotto\npidgeot\nrattata\nraticate\nspearow\nfearow\nekans\narbok\npikachu\nraichu\nsandshrew\nsandslash\nnidorina\nnidoqueen\nnidorino\nnidoking\nclefairy\nclefable\nvulpix\nninetales\njigglypuff\nwigglytuff\nzubat\ngolbat\noddish\ngloom\nvileplume\nparas\nparasect\nvenonat\nvenomoth\ndiglett\ndugtrio\nmeowth\npersian\npsyduck\ngolduck\nmankey\nprimeape\ngrowlithe\narcanine\npoliwag\npoliwhirl\npoliwrath\nabra\nkadabra\nalakazam\nmachop\nmachoke\nmachamp\nbellsprout\nweepinbell\nvictreebel\ntentacool\ntentacruel\ngeodude\ngraveler\ngolem\nponyta\nrapidash\nslowpoke\nslowbro\nmagnemite\nmagneton\ndoduo\ndodrio\nseel\ndewgong\ngrimer\nmuk\nshellder\ncloyster\ngastly\nhaunter\ngengar\nonix\ndrowzee\nhypno\nkrabby\nkingler\nvoltorb\nelectrode\nexeggcute\nexeggutor\ncubone\nmarowak\nhitmonlee\nhitmonchan\nlickitung\nkoffing\nweezing\nrhyhorn\nrhydon\nchansey\ntangela\nkangaskhan\nhorsea\nseadra\ngoldeen\nseaking\ns ..... 

basically its having issue with file named pokenames.txt in data directory

Steps I have followed
To install rasa
pip install rasa

To train model
rasa train

Whole Error with Traceback :

2021-05-04 18:01:34 INFO     rasa.shared.utils.validation  - The 'version' key is missing in the training data file /mnt/sda7/6thSem/NLP/final/rasaa/pokedex-demo/domain.yml. Rasa Open Source will read the file as a version '2.0' file. See https://rasa.com/docs/rasa/training-data-format.
2021-05-04 18:01:34 WARNING  rasa.shared.core.domain  - You are using an experiential feature: Action 'action_query_knowledge_base'!
/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/shared/nlu/training_data/formats/markdown.py:56: FutureWarning: NLU data in Markdown format is deprecated and will be removed in Rasa Open Source 3.0.0. Please convert your Markdown NLU data to the new YAML training data format.
  rasa.shared.utils.io.raise_deprecation_warning(
/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/shared/utils/io.py:97: UserWarning: Action 'utter_faq' is listed as a response action in the domain file, but there is no matching response defined. Please check your domain.
  More info at https://rasa.com/docs/rasa/responses
2021-05-04 18:01:34 INFO     rasa.model  - Data (messages) for NLU model section changed.
Traceback (most recent call last):
  File "/home/akshay/.virtualenvs/rasaChat/bin/rasa", line 8, in <module>
    sys.exit(main())
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/__main__.py", line 117, in main
    cmdline_arguments.func(cmdline_arguments)
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/cli/train.py", line 59, in <lambda>
    train_parser.set_defaults(func=lambda args: run_training(args, can_exit=True))
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/cli/train.py", line 91, in run_training
    training_result = train_all(
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/api.py", line 109, in train
    return rasa.utils.common.run_in_loop(
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/utils/common.py", line 310, in run_in_loop
    result = loop.run_until_complete(f)
  File "uvloop/loop.pyx", line 1456, in uvloop.loop.Loop.run_until_complete
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/model_training.py", line 108, in train_async
    return await _train_async_internal(
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/model_training.py", line 272, in _train_async_internal
    new_fingerprint = await model.model_fingerprint(file_importer)
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/model.py", line 364, in model_fingerprint
    FINGERPRINT_NLU_DATA_KEY: nlu_data.fingerprint(),
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/shared/nlu/training_data/training_data.py", line 105, in fingerprint
    "lookup_tables": [
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/shared/nlu/training_data/training_data.py", line 106, in <listcomp>
    self._load_lookup_table(table) for table in self.lookup_tables
  File "/home/akshay/.virtualenvs/rasaChat/lib/python3.8/site-packages/rasa/shared/nlu/training_data/training_data.py", line 82, in _load_lookup_table
    if Path(potential_file).is_file():
  File "/usr/lib/python3.8/pathlib.py", line 1420, in is_file
    return S_ISREG(self.stat().st_mode)
  File "/usr/lib/python3.8/pathlib.py", line 1194, in stat
    return self._accessor.stat(self)
OSError: [Errno 36] File name too long: 'bulbasaur\nivysaur\nvenusaur\ncharmander\ncharmeleon\ncharizard\nsquirtle\nwartortle\nblastoise\ncaterpie\nmetapod\nbutterfree\nweedle\nkakuna\nbeedrill\npidgey\npidgeotto\npidgeot\nrattata\nraticate\nspearow\nfearow\nekans\narbok\npikachu\nraichu\nsandshrew\nsandslash\nnidorina\nnidoqueen\nnidorino\nnidoking\nclefairy\nclefable\nvulpix\nninetales\njigglypuff\nwigglytuff\nzubat\ngolbat\noddish\ngloom\nvileplume\nparas\nparasect\nvenonat\nvenomoth\ndiglett\ndugtrio\nmeowth\npersian\npsyduck\ngolduck\nmankey\nprimeape\ngrowlithe\narcanine\npoliwag\npoliwhirl\npoliwrath\nabra\nkadabra\nalakazam\nmachop\nmachoke\nmachamp\nbellsprout\nweepinbell\nvictreebel\ntentacool\ntentacruel\ngeodude\ngraveler\ngolem\nponyta\nrapidash\nslowpoke\nslowbro\nmagnemite\nmagneton\ndoduo\ndodrio\nseel\ndewgong\ngrimer\nmuk\nshellder\ncloyster\ngastly\nhaunter\ngengar\nonix\ndrowzee\nhypno\nkrabby\nkingler\nvoltorb\nelectrode\nexeggcute\nexeggutor\ncubone\nmarowak\nhitmonlee\nhitmonchan\nlickitung\nkoffing\nweezing\nrhyhorn\nrhydon\nchansey\ntangela\nkangaskhan\nhorsea\nseadra\ngoldeen\nseaking\nstaryu\nstarmie\nscyther\njynx\nelectabuzz\nmagmar\npinsir\ntauros\nmagikarp\ngyarados\nlapras\nditto\neevee\nvaporeon\njolteon\nflareon\nporygon\nomanyte\nomastar\nkabuto\nkabutops\naerodactyl\nsnorlax\narticuno\nzapdos\nmoltres\ndratini\ndragonair\ndragonite\nmewtwo\nmew\nchikorita\nbayleef\nmeganium\ncyndaquil\nquilava\ntyphlosion\ntotodile\ncroconaw\nferaligatr\nsentret\nfurret\nhoothoot\nnoctowl\nledyba\nledian\nspinarak\nariados\ncrobat\nchinchou\nlanturn\npichu\ncleffa\nigglybuff\ntogepi\ntogetic\nnatu\nxatu\nmareep\nflaaffy\nampharos\nbellossom\nmarill\nazumarill\nsudowoodo\npolitoed\nhoppip\nskiploom\njumpluff\naipom\nsunkern\nsunflora\nyanma\nwooper\nquagsire\nespeon\numbreon\nmurkrow\nslowking\nmisdreavus\nunown\nwobbuffet\ngirafarig\npineco\nforretress\ndunsparce\ngligar\nsteelix\nsnubbull\ngranbull\nqwilfish\nscizor\nshuckle\nheracross\nsneasel\nteddiursa\nursaring\nslugma\nmagcargo\nswinub\npiloswine\ncorsola\nremoraid\noctillery\ndelibird\nmantine\nskarmory\nhoundour\nhoundoom\nkingdra\nphanpy\ndonphan\nporygon2\nstantler\nsmeargle\ntyrogue\nhitmontop\nsmoochum\nelekid\nmagby\nmiltank\nblissey\nraikou\nentei\nsuicune\nlarvitar\npupitar\ntyranitar\nlugia\nho-oh\ncelebi\ntreecko\ngrovyle\nsceptile\ntorchic\ncombusken\nblaziken\nmudkip\nmarshtomp\nswampert\npoochyena\nmightyena\nzigzagoon\nlinoone\nwurmple\nsilcoon\nbeautifly\ncascoon\ndustox\nlotad\nlombre\nludicolo\nseedot\nnuzleaf\nshiftry\ntaillow\nswellow\nwingull\npelipper\nralts\nkirlia\ngardevoir\nsurskit\nmasquerain\nshroomish\nbreloom\nslakoth\nvigoroth\nslaking\nnincada\nninjask\nshedinja\nwhismur\nloudred\nexploud\nmakuhita\nhariyama\nazurill\nnosepass\nskitty\ndelcatty\nsableye\nmawile\naron\nlairon\naggron\nmeditite\nmedicham\nelectrike\nmanectric\nplusle\nminun\nvolbeat\nillumise\nroselia\ngulpin\nswalot\ncarvanha\nsharpedo\nwailmer\nwailord\nnumel\ncamerupt\ntorkoal\nspoink\ngrumpig\nspinda\ntrapinch\nvibrava\nflygon\ncacnea\ncacturne\nswablu\naltaria\nzangoose\nseviper\nlunatone\nsolrock\nbarboach\nwhiscash\ncorphish\ncrawdaunt\nbaltoy\nclaydol\nlileep\ncradily\nanorith\narmaldo\nfeebas\nmilotic\ncastform\nkecleon\nshuppet\nbanette\nduskull\ndusclops\ntropius\nchimecho\nabsol\nwynaut\nsnorunt\nglalie\nspheal\nsealeo\nwalrein\nclamperl\nhuntail\ngorebyss\nrelicanth\nluvdisc\nbagon\nshelgon\nsalamence\nbeldum\nmetang\nmetagross\nregirock\nregice\nregisteel\nlatias\nlatios\nkyogre\ngroudon\nrayquaza\njirachi\nturtwig\ngrotle\ntorterra\nchimchar\nmonferno\ninfernape\npiplup\nprinplup\nempoleon\nstarly\nstaravia\nstaraptor\nbidoof\nbibarel\nkricketot\nkricketune\nshinx\nluxio\nluxray\nbudew\nroserade\ncranidos\nrampardos\nshieldon\nbastiodon\nburmy\nmothim\ncombee\nvespiquen\npachirisu\nbuizel\nfloatzel\ncherubi\ncherrim\nshellos\ngastrodon\nambipom\ndrifloon\ndrifblim\nbuneary\nlopunny\nmismagius\nhonchkrow\nglameow\npurugly\nchingling\nstunky\nskuntank\nbronzor\nbronzong\nbonsly\nhappiny\nchatot\nspiritomb\ngible\ngabite\ngarchomp\nmunchlax\nriolu\nlucario\nhippopotas\nhippowdon\nskorupi\ndrapion\ncroagunk\ntoxicroak\ncarnivine\nfinneon\nlumineon\nmantyke\nsnover\nabomasnow\nweavile\nmagnezone\nlickilicky\nrhyperior\ntangrowth\nelectivire\nmagmortar\ntogekiss\nyanmega\nleafeon\nglaceon\ngliscor\nmamoswine\nporygon-z\ngallade\nprobopass\ndusknoir\nfroslass\nrotom\nuxie\nmesprit\nazelf\ndialga\npalkia\nheatran\nregigigas\ncresselia\nphione\nmanaphy\ndarkrai\narceus\nvictini\nsnivy\nservine\nserperior\ntepig\npignite\nemboar\noshawott\ndewott\nsamurott\npatrat\nwatchog\nlillipup\nherdier\nstoutland\npurrloin\nliepard\npansage\nsimisage\npansear\nsimisear\npanpour\nsimipour\nmunna\nmusharna\npidove\ntranquill\nunfezant\nblitzle\nzebstrika\nroggenrola\nboldore\ngigalith\nwoobat\nswoobat\ndrilbur\nexcadrill\naudino\ntimburr\ngurdurr\nconkeldurr\ntympole\npalpitoad\nseismitoad\nthroh\nsawk\nsewaddle\nswadloon\nleavanny\nvenipede\nwhirlipede\nscolipede\ncottonee\nwhimsicott\npetilil\nlilligant\nbasculin\nsandile\nkrokorok\nkrookodile\ndarumaka\nmaractus\ndwebble\ncrustle\nscraggy\nscrafty\nsigilyph\nyamask\ncofagrigus\ntirtouga\ncarracosta\narchen\narcheops\ntrubbish\ngarbodor\nzorua\nzoroark\nminccino\ncinccino\ngothita\ngothorita\ngothitelle\nsolosis\nduosion\nreuniclus\nducklett\nswanna\nvanillite\nvanillish\nvanilluxe\ndeerling\nsawsbuck\nemolga\nkarrablast\nescavalier\nfoongus\namoonguss\nfrillish\njellicent\nalomomola\njoltik\ngalvantula\nferroseed\nferrothorn\nklink\nklang\nklinklang\ntynamo\neelektrik\neelektross\nelgyem\nbeheeyem\nlitwick\nlampent\nchandelure\naxew\nfraxure\nhaxorus\ncubchoo\nbeartic\ncryogonal\nshelmet\naccelgor\nstunfisk\nmienfoo\nmienshao\ndruddigon\ngolett\ngolurk\npawniard\nbisharp\nbouffalant\nrufflet\nbraviary\nvullaby\nmandibuzz\nheatmor\ndurant\ndeino\nzweilous\nhydreigon\nlarvesta\nvolcarona\ncobalion\nterrakion\nvirizion\nreshiram\nzekrom\nkyurem\ngenesect\nchespin\nquilladin\nchesnaught\nfennekin\nbraixen\ndelphox\nfroakie\nfrogadier\ngreninja\nbunnelby\ndiggersby\nfletchling\nfletchinder\ntalonflame\nscatterbug\nspewpa\nvivillon\nlitleo\npyroar\nflabΓ©bΓ©\nfloette\nflorges\nskiddo\ngogoat\npancham\npangoro\nfurfrou\nespurr\nmeowsticmale\nmeowsticfemale\nhonedge\ndoublade\nspritzee\naromatisse\nswirlix\nslurpuff\ninkay\nmalamar\nbinacle\nbarbaracle\nskrelp\ndragalge\nclauncher\nclawitzer\nhelioptile\nheliolisk\ntyrunt\ntyrantrum\namaura\naurorus\nsylveon\nhawlucha\ndedenne\ncarbink\ngoomy\nsliggoo\ngoodra\nklefki\nphantump\ntrevenant\nbergmite\navalugg\nnoibat\nnoivern\nxerneas\nyveltal\ndiancie\nvolcanion  

Some Other Warnings :

You are using an experiential feature: Action 'action_query_knowledge_base'! 

The 'version' key is missing in the training data file /mnt/sda7/6thSem/NLP/final/rasaa/pokedex-demo/domain.yml. Rasa Open Source will read the file as a version '2.0' file. See https://rasa.com/docs/rasa/training-data-format. 

Error can be solved if I have only some names in pokenames.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.