{"id":20917041,"url":"https://github.com/bluegranite/blogbot","last_synced_at":"2026-07-21T21:35:31.023Z","repository":{"id":133234217,"uuid":"285913262","full_name":"BlueGranite/BlogBot","owner":"BlueGranite","description":"BlueGranite Blogging Bot using the OpenAI GPT-2 Model","archived":false,"fork":false,"pushed_at":"2020-11-10T20:12:32.000Z","size":5756,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-12T23:30:46.484Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlueGranite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-07T20:14:55.000Z","updated_at":"2023-09-13T22:36:22.000Z","dependencies_parsed_at":"2023-07-03T22:11:44.315Z","dependency_job_id":null,"html_url":"https://github.com/BlueGranite/BlogBot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BlueGranite/BlogBot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueGranite%2FBlogBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueGranite%2FBlogBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueGranite%2FBlogBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueGranite%2FBlogBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlueGranite","download_url":"https://codeload.github.com/BlueGranite/BlogBot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueGranite%2FBlogBot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278879369,"owners_count":26061871,"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-10-08T02:00:06.501Z","response_time":56,"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":[],"created_at":"2024-11-18T16:29:42.410Z","updated_at":"2025-10-08T02:40:50.928Z","avatar_url":"https://github.com/BlueGranite.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BlueGranite BlogBot\n\nBlueGranite Blogging Bot using the OpenAI GPT-2 Model\n\n\u003ch3 align=\"right\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/BlueGranite/BlogBot/master/img/bg_logo.png\" width=\"200px\" alt=\"BlueGranite, Inc.\"\u003e\u003c/h3\u003e\n\n\u003ch3 align=\"right\"\u003eColby T. Ford and Thomas J. Weinandy\u003c/h3\u003e\n\n## Purpose\n\nTo showcase the power and utility of generative AI models, specifically in technical writing. Also, we aim to show the inherent bias that comes with imbalanced training of such models.\n\nThis repository hosts the companion code our blog post: [A BlueGranite Blog Post Written (Mostly) by AI](https://www.blue-granite.com/blog/a-bluegranite-blog-post-written-mostly-by-ai)\n\n\u003cimg src=\"https://raw.githubusercontent.com/BlueGranite/BlogBot/master/img/BlogBot.png\" width=\"200px\" alt=\"\"\u003e\n\n## Getting Started\n\nNavigate to the _gpt-2_ folder from the command line and run `docker build` command:\n```\ndocker build --tag gpt-2 -f Dockerfile.cpu .\n```\n\nOnce the image is finished being built, run the image:\n```\ndocker run --name gpt-2 -d gpt-2\n```\n\nTo get into the command line of the container, run:\n```\ndocker exec -it gpt-2 /bin/bash\n```\n\nCopy the corpus of BlueGranite blogs to the container\n```\ndocker cp ../scraper/BlueGranite_BlogBodies.txt gpt-2:./gpt-2/\n```\n\nTune the existing GPT-2 model on the corpus of BlueGranite blogs\n```\n# PYTHONPATH=src ./train.py --dataset BlueGranite_BlogBodies.txt --model_name 124M\npython ./train.py --dataset BlueGranite_BlogBodies.txt --model_name 124M\n```\n\nHave the model provide writing samples\n```\n# PYTHONPATH=src src/interactive_conditional_samples.py --model_name 124M --seed 1337 --nsamples 1 --top_k 40 --temperature 0.7\npython src/interactive_conditional_samples.py --model_name 124M --seed 1337 --nsamples 1 --top_k 40 --temperature 0.7\n```\n\nThen, type the desired prompt into the command line.\n\nOnce you're finished, you can copy data from the container using:\n```\ndocker cp gpt-2:./gpt-2/checkpoint ./checkpoint\ndocker cp gpt-2:./gpt-2/samples ./samples\n```\n\n\n## Source\nGPT-2 was created by [OpenAI](https://openai.com/blog/better-language-models/). Model tuning code was referenced from [github.com/nshepperd/gpt-2](https://github.com/nshepperd/gpt-2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluegranite%2Fblogbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluegranite%2Fblogbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluegranite%2Fblogbot/lists"}