Skip to content

About

This is a current project to create a project-recommending ChatBot for Public Invention site users. It will be an interactive tool which will provide more details about projects, share which are current, and advise of which projects to join based on a given skillset or interest.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

34 Commits

Folders and files

Repository files navigation

Public Invention Project Chatbot

This is a current project to create a project-recommending ChatBot for Public Invention site users. It will be an interactive tool which will provide more details about projects, share which are currently active, and advise of which projects to join based on a given skillset or interest. Once complete, this project will be placed on the Public Invention website to aid prospective volunteers with navigating the website and project database.

Development

February 2025

Robert Read and Mairin O'Grady met with Daniel Lindenberger to open the Project Chatbot project. Began with a demonstration and tips on how to create a customized chatbot. O'Grady and Read created a first version using the project datasheet to feed the ChatGPT bot information. From there, it could successfully provide details about projects when prompted.

March 2025

The project was picked up in March of 2025, with the additional mission to make the chatbot recommend some projects before others based on:

  1. Priority
  2. Active Status

The team ran into issues with the recommendation rankings, and so far the additional configuration has not been successful.

October 2025

In October of 2025, the project was reopened for further updates, and/or to be implemented on the Public Invention website. Awaiting further updates.

Project data (JSON)

A weekly GitHub Action (.github/workflows/refresh-project-workbook.yml) refreshes the workbook's activity columns, then pipeline/build_json.py writes:

  • data/projects.json: one record per project with status, synopsis, a README summary, priority, joinability, difficulty, Seeking Volunteers/Mentors (yes / maybe / no / unknown), activity (Active / Stale / Dormant / Unknown) and canonical skills.
  • data/skills.json: the canonical skills used by at least one project.

Skills come from the workbook's Skills column, mapped through data/skill_aliases.json, plus keywords found in each project's README or idea file (pipeline/skill_rules.py). To run it locally: GITHUB_TOKEN=$(gh auth token) python3 pipeline/build_json.py, and python3 -m unittest discover -s tests for the tests.

Project Finder (the chatbot)

chatbot/widget.js is a guided chat for the website: it asks a visitor's skills, what they want to learn and which area they care about, then recommends projects from data/projects.json. Public Invention's rules decide the order, in code (pipeline/ranking.py, mirrored in chatbot/recommend.js):

  • never recommend Moonrat, Oxygen Concentrator, PolyVent, ADaM or Librecorder, Preliminary projects, or projects not seeking volunteers;
  • Highly Active first, then Progress but Inactive, then Ready-to-start;
  • within a status, more matching skills first, then the sheet's Order priority.

tests/ranking_cases.json is shared by the Python and JavaScript tests, so both rank the same way. Embedding it on pubinv.org: docs/wordpress-embed.md. The ChatGPT version reads the same JSON through an Action: ChatBot_Instructions.md. How the volunteer form works today: docs/volunteer-form.md.

Resources

The current Public Invention Project Chatbot is live and can provide details about projects currently on the project spreadsheet included in this repository.

Chatbot Team

Robert L. Read - Founder and Head Coach of Public Invention

Mairin O'Grady - Technical Writer for Public Invention

Daniel Lindenberger - Director of Thaumazo and Chatbot Expert

About

This is a current project to create a project-recommending ChatBot for Public Invention site users. It will be an interactive tool which will provide more details about projects, share which are current, and advise of which projects to join based on a given skillset or interest.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages