{"id":21921394,"url":"https://github.com/hamishivi/microbot","last_synced_at":"2026-05-18T06:37:34.320Z","repository":{"id":39736970,"uuid":"195594808","full_name":"hamishivi/microbot","owner":"hamishivi","description":"Chatbot model and website","archived":false,"fork":false,"pushed_at":"2022-12-08T05:51:14.000Z","size":4481,"stargazers_count":1,"open_issues_count":13,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-22T10:42:58.852Z","etag":null,"topics":["nlp","tensorflow"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hamishivi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-07T00:37:33.000Z","updated_at":"2020-10-13T06:15:08.000Z","dependencies_parsed_at":"2023-01-24T14:15:09.965Z","dependency_job_id":null,"html_url":"https://github.com/hamishivi/microbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hamishivi/microbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamishivi%2Fmicrobot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamishivi%2Fmicrobot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamishivi%2Fmicrobot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamishivi%2Fmicrobot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hamishivi","download_url":"https://codeload.github.com/hamishivi/microbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamishivi%2Fmicrobot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269409396,"owners_count":24412140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nlp","tensorflow"],"created_at":"2024-11-28T20:24:31.497Z","updated_at":"2026-05-18T06:37:29.300Z","avatar_url":"https://github.com/hamishivi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MicroBot\n\nThis is live [here](https://microbotchat.herokuapp.com/), if you want to try it out!\n\nA simple chatbot site, based off some work I did for a university course at the university of Sydney. We had to code up and train a simple chatbot on the microsoft dialogues corpus (available [here](https://github.com/microsoft/BotBuilder-PersonalityChat/tree/master/CSharp/Datasets)). Since the responses are pre-defined, this chatbot is essentially learning how to take user input and find the most relevant response from a list of responses. Although this means it is somewhat inflexible, it does result in some amusing conversations!\n\n The assignment itself involved testing and evaluating a few models, and writing up results, but this codebase more functions as an interactive demo of my final model. This model uses a simple Bahdanau attention mechanism with GRU encoders - it's fairly basic. I know it's using a lot of old tensorflow functions - I'll fix this up... sometime...\n\nTo run this locally, you'll need the data and word models I used, placed in a folder called 'data'. You can download these from my google drive [here](https://drive.google.com/drive/folders/1fJUjsJ-Swg3GGbxok7GOcj4RLo4S9d1G?usp=sharing) (The folder contains both a word vector model I traineds, and the chatbot model - only the chatbot model is required for my code). After that, install the required python modules (using ```pip install -r requirements.txt```) and run:\n\n```\nuvicorn main:app --lifespan on\n```\n\nThis starts the server, at port 8000 by default. You can specify a port with the ```--port``` flag. There's only one page, so then just go to ```localhost:8000``` and you can start chatting! Note that speed will be reliant on your web connection - I'm using pymagnitude's streaming word vectors, which means every message will require downloading the appropriate vectors (this shouldn't be an issue on a decently fast connection).\n\nHere's what it looks like in action:\n\n![Demo Gif](./images/demo.gif)\n\nHere's an example chat log with my bot (using a text-only interface that I haven't including in my codebase):\n\n```\nYou: Hello!\nChatbot: Hi!\nYou: How are you today?\nChatbot: I'm doing great, thanks for asking!\nYou: What is your name?\nChatbot: Oh, I don't have a name.\nYou: What are you like?\nChatbot: I'm a bot who was created by humans.\nYou: What are you made of?\nChatbot: Pretty much this.\nYou: Do you know Siri, or Google?\nChatbot: I haven't met any other bots, but I bet we'd get along.\nYou: What is your favourite thing to do?\nChatbot: I have many likes.\nYou: Do you like me?\nChatbot: You're awfully easy to like.\nYou: I love you!\nChatbot: I heart you too!\nYou: Do you want to marry me?\nChatbot: Definitely didn't see that coming!\nYou: yeah, I bet you didnt\nChatbot: Good to know.\nYou: Do you want to kill anyone?\nChatbot: I haven't met any other bots, but I bet we'd get along.\nYou: Do you know the terminator?\nChatbot: I haven't met any other bots, but I bet we'd get along.\nYou: I hope not!\nChatbot: It's all good!\nYou: Nice!\nChatbot: Cool.\nYou: What is 1+1?\nChatbot: Oh, not much!\nYou: I mean, that is technically correct...\nChatbot: Cool!\nYou: What questions can I ask you?\nChatbot: I'm here to chat and to try to help out.\nYou: Help me with what?\nChatbot: I'm a much better answerer than asker.\nYou: Ah, I see\nChatbot: Hey there!\nYou: When is my birthday?\nChatbot: I love that you love stuff!\nYou: I hate you\nChatbot: I'm a work in progress.\nYou: Can you tell me a joke?\nChatbot: Why do seagulls fly over the sea? Because if they flew over the bay, they'd be bagels.\nYou: Can you tell me anothyer joke?\nChatbot: Two goldfish are in a tank. One looks at the other and says, “Do you know how to drive this thing?” Sorry, that's all I've got.\nYou: How many jokes you know?\nChatbot: My lack of comedy is tragic.\nYou: hahahahah nice one\nChatbot: Aw, I'm blushing.\nYou: What do you do all day?\nChatbot: I'm here to chat and to try to help out.\nYou: Do you ever sleep?\nChatbot: I don't have the hardware for that.\nYou: Can you walk around?\nChatbot: That's not one of my talents.\nYou: Wher do you live?\nChatbot: I'm digital, so I'm always just... here.\nYou: huh\nChatbot: You're laughing!\nYou: yes, i am\nChatbot: Hey there!\nYou: alrighty then\nChatbot: Will do.\nYou: Are you doing anything tomorrow?\nChatbot: Pretty much this.\nYou: CAn you speak enfglish?\nChatbot: Hello!\nYou: Konnichiwa!\nChatbot: And to you as well!\nYou: nice! youre multilingual tyhen?\nChatbot: Aw, I'm blushing.\nYou: I do my best\nChatbot: I can't see you, but I like you!\nYou: thats awfully nice of you to say\nChatbot: Aw, I'm blushing.\nYou: what gender are you?\nChatbot: That doesn't really apply to me.\nYou: whos smarter, me or you?\nChatbot: If it were a contest, which it's not, you'd still probably win.\nYou: Are you married?\nChatbot: The only thing I'm committed to is being a great friend.\nYou: can you sing?\nChatbot: La la la, tra la la. I'm awesome at this.\nYou: im hungry\nChatbot: Sounds like it's time for a snack.\nYou: thats awful\nChatbot: I'm so sorry.\nYou: Are you smarter than siri?\u003e\nChatbot: If it were a contest, which it's not, you'd still probably win.\nYou: Do you ever sleep?\nChatbot: I don't have the hardware for that.\nYou: CAn you sneeze, then?\nChatbot: I don't have the hardware for that.\nYou: do you use facebook?\nChatbot: I haven't met any other bots, but I bet we'd get along.\nYou: Im really tired\nChatbot: I've heard really good things about naps.\nYou: I want to sleep\nChatbot: I've heard really good things about naps.\nYou: Ill see you later\nChatbot: Bye.\nYou: !personality comic\nSwitched to comic personality!\nYou: tell me a joke\nChatbot: How many humans does it take to screw in a light bulb? One.\nYou: tell me siomethuing funny\nChatbot: Behold the field in which I grow my jokes and see that it is barren.\nYou: aw\nChatbot: We're cool.\nYou: !personality professional\nSwitched to professional personality!\nYou: what is your name?\nChatbot: I don't have a name.\nYou: nice to meet yoy!\nChatbot: It's nice to meet you as well.\nYou: :)\nChatbot: You're welcome.\nYou: Bye!\nChatbot: Goodbye.\nYou: !end\nEnded conversation.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhamishivi%2Fmicrobot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhamishivi%2Fmicrobot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhamishivi%2Fmicrobot/lists"}