|
| 1 | +# Bots!! |
| 2 | + |
| 3 | +## Bot Code of Conduct |
| 4 | + |
| 5 | +- π [Bot Code of Conduct](https://github.com/Programming-from-A-to-Z/Bot-Code-of-Conduct) |
| 6 | +- Let's talk about bots that speak! |
| 7 | + |
| 8 | +## ChatBots |
| 9 | + |
| 10 | +- π [ChatBot Slides](https://docs.google.com/presentation/d/1v643tW0c6bHn8fDfh2C2ouL5IVqnpqqKBq8QBI8X-zg/edit?usp=sharing) |
| 11 | +- π [RiveScript](https://www.rivescript.com/) |
| 12 | +- π» [RiveScript example: Say Banana](https://editor.p5js.org/a2zitp/sketches/wMo5oiyVe) |
| 13 | +- π¨ [RiveScript video tutorial](https://www.youtube.com/watch?v=wf8w1BJb9Xc) |
| 14 | +- πΏ [RiveScript + p5.js video tutorial](https://www.youtube.com/watch?v=zGe1m_bLOFk) |
| 15 | +- π» [RiveScript p5.js Number Guessing Chatbot](https://editor.p5js.org/a2zitp/sketches/xgwLaXYvm) |
| 16 | + |
| 17 | +## Node.js |
| 18 | + |
| 19 | +- π¨ [Workflow: console/terminal/node.js/shell](https://youtu.be/46WOuOrMwTQ) |
| 20 | +- π¨ [How to Set Up a Node.js Project](https://youtu.be/wM3TEvQn2hw) |
| 21 | +- π [Workflow notes and settings](https://github.com/CodingTrain/Discord-Bot-Examples/wiki/Workflow:-Terminal,-Shell,-Node,-VSCode) |
| 22 | +- πΏ [What is Node.js? - (Part of an older Twitter Bot Tutorial](https://youtu.be/RF5_MPSNAtU) |
| 23 | +- πΏ [Server-side with Node.js - Working with Data and APIs in JavaScript](https://youtu.be/wxbQP1LMZsw?list=PLRqwX-V7Uu6YxDKpFzf_2D84p0cyk4T7X) |
| 24 | + |
| 25 | +## Twitter API |
| 26 | + |
| 27 | +- π [TwitterBot Slides](https://docs.google.com/presentation/d/1ar78vNdfH5H8rlhVk9LJTvnbG1W8VGX9m77qv2hPW24/edit?usp=sharing) |
| 28 | +- π» [Twitter Example Code (tested in 2024, features limited, see README for more)](https://github.com/Programming-from-A-to-Z/Twitter-Bots-Maybe) |
| 29 | +- [node-twitter-api-v2 package](https://github.com/PLhery/node-twitter-api-v2) |
| 30 | + |
| 31 | +## BlueSky API |
| 32 | + |
| 33 | +- π» [Blue Example Code](https://github.com/Programming-from-A-to-Z/Blue-Sky-Bots) |
| 34 | +- [AtProto API Docs](https://github.com/bluesky-social/atproto/blob/main/packages/api/README.md) |
| 35 | + |
| 36 | +## Discord API |
| 37 | + |
| 38 | +- π» [Discord Bot Example code and README steps to follow](https://github.com/Programming-from-A-to-Z/Discord-Bot-Examples) |
| 39 | +- π¨ [Coding a Discord Bot](https://youtu.be/AvQcTjB3gPg) |
| 40 | +- π [discord.js guide](https://discordjs.guide/) |
| 41 | +- π [discord.js docs](https://discord.js.org/docs/packages/discord.js) |
| 42 | + |
| 43 | +## LLMs |
| 44 | + |
| 45 | +- π» [p5.js LLM examples](https://editor.p5js.org/a2zitp/collections/Y1oZ1As1s) |
| 46 | +- π [SmolLM 3](https://github.com/huggingface/smollm) |
| 47 | +- π [WebAI Summit Transformers.js Slides](https://docs.google.com/presentation/d/1FTKmN9ZWyrBjQyp6-osPyvLzKiXqjqCSZvb0-FIqme0/edit?usp=sharing) - Thank you @xenova! |
| 48 | +- π [Transformers.js Documentation](https://huggingface.co/docs/transformers.js/) |
| 49 | +- π [Transformers.js v3: WebGPU Support, New Models & Tasks, and Moreβ¦](https://huggingface.co/blog/transformersjs-v3) |
| 50 | +- π [Hugging Face Models](https://huggingface.co/models?pipeline_tag=text-generation&library=transformers.js&sort=trending) |
| 51 | +- π [Ollama](https://ollama.com/) |
| 52 | + |
| 53 | +## Voice |
| 54 | + |
| 55 | +- π» [p5.js + Kokoro TTS](https://editor.p5js.org/a2zitp/sketches/2uix6-9bH) |
| 56 | +- π» [p5.js + Whisper STT](https://editor.p5js.org/a2zitp/sketches/lgxC84u-B) |
| 57 | +- π» [p5.js + quick and dirty Elevenlabs](https://editor.p5js.org/a2zitp/sketches/xj7G62idd) |
| 58 | +- π [ElevenLabs API Documentation](https://docs.elevenlabs.io/) |
| 59 | +- π [OpenAI Whisper](https://openai.com/research/whisper) |
| 60 | +- π [Kokoro TTS](https://github.com/nazdridoy/kokoro-tts) |
| 61 | +- π [Web Speech API Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API) |
| 62 | +- π [p5.speech library for p5.js](https://idmnyu.github.io/p5.js-speech/) |
| 63 | + |
| 64 | +## Reading |
| 65 | + |
| 66 | +- π [Bots: A definition and some historical threads](https://medium.com/datasociety-points/bots-a-definition-and-some-historical-threads-47738c8ab1ce) by Allison Parrish |
| 67 | +- π [How to Make a Bot That Isn't Racist](https://www.vice.com/en/article/mg7g3y/how-to-make-a-not-racist-bot) |
| 68 | +- π [Conversations with Bina48](https://www.stephaniedinkins.com/conversations-with-bina48.html) by Stephanie Dinkins |
| 69 | +- π [Some Strategies of Bot Poetics](https://harrygiles.org/2016/04/06/some-strategies-of-bot-poetics/) |
| 70 | +- π [Queer Your Bots: The Bot Builder Roundtable](http://www.autostraddle.com/queer-your-bots-the-bot-builder-roundtable-333806/) |
| 71 | +- π [12 Weird, Excellent Twitter Bots Chosen by Twitterβs Best Bot-Makers](http://nymag.com/following/2015/11/12-weirdest-funniest-smartest-twitter-bots.html) |
| 72 | + |
| 73 | +## Bot Project, Due Wed October 21 |
| 74 | + |
| 75 | +Create a bot! For the purposes of this class, I'm defining a bot as "a computer program which conducts a conversation via auditory or textual methods." This can be applied very broadly, that conversation can be one-sided, two-sided, multi-sided, and it's optional whether there are humans involved at all! You may choose any platform for the course. Examples are provided above for [Discord](#discord-api), [Twitter](#twitter-api), [BlueSky](#bluesky-api), [RiveScript + p5.js](#chatbots), [LLMs](#llms), and [voice models](#voice), but you are welcome to experiment with any social media platform, service, conversational interface, hardware, website, sms system, etc. as you see fit! |
| 76 | + |
| 77 | +Document the process of creating your bot and running your bot in a blog post. Include sample interactions / posts from your bot with screenshots,etc. Reflect on the [Bot Code of Conduct](https://github.com/Programming-from-A-to-Z/Bot-Code-of-Conduct/blob/main/README.md) and what ethical questions you considered as part of your process and documentation. |
| 78 | + |
| 79 | +Prepare a 5 minute presentation on your bot on October 21. |
| 80 | + |
| 81 | +## Add your assignment below via Pull Request |
| 82 | + |
| 83 | +_(Please note you are welcome to post under a pseudonym and/or password protect your published assignment. For NYU blogs, privacy options are covered in the [NYU Wordpress Knowledge Base](https://wp.nyu.edu/knowledge/). Finally, if you prefer not to post your assignment at all here, you may email the submission.)_ |
| 84 | + |
| 85 | +- Name - [project title](url) |
| 86 | + |
| 87 | +## Emoji Key for Video Tutorials, Readings, and more |
| 88 | + |
| 89 | +- π¨ Watch this video tutorial! (this is technical info needed for the examples). Of course if you already know this material, you can skip. |
| 90 | +- π’ This is found in a group, maybe pick just one to check out! |
| 91 | +- πΏ Additional video if you have a particular interest and want to do a deeper dive. |
| 92 | +- π Required reading! Let's make sure we all have read this. |
| 93 | +- π Optional additional reading for a deeper dive. |
| 94 | +- π» Code examples here! |
| 95 | +- π Class presentation slides |
| 96 | +- π Extra reference material / link |
0 commit comments