{"id":13617161,"url":"https://github.com/alfredfrancis/ai-chatbot-framework","last_synced_at":"2026-10-19T09:06:28.968Z","repository":{"id":14524040,"uuid":"76678740","full_name":"alfredfrancis/ai-chatbot-framework","owner":"alfredfrancis","description":"A python chatbot framework with Natural Language Understanding and Artificial Intelligence.","archived":false,"fork":false,"pushed_at":"2025-05-21T12:43:21.000Z","size":15649,"stargazers_count":2166,"open_issues_count":11,"forks_count":750,"subscribers_count":133,"default_branch":"master","last_synced_at":"2026-08-19T07:50:21.972Z","etag":null,"topics":["ai-chatbot","ai-chatbot-framework","chatbot","conversational-ai","deepseek","hacktoberfest","help-wanted","langchain","llm","nextjs","openai","python","tool-calling"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/alfredfrancis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"License.txt","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,"zenodo":null}},"created_at":"2016-12-16T19:10:56.000Z","updated_at":"2026-08-18T14:23:51.000Z","dependencies_parsed_at":"2025-04-14T11:46:55.282Z","dependency_job_id":null,"html_url":"https://github.com/alfredfrancis/ai-chatbot-framework","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/alfredfrancis/ai-chatbot-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alfredfrancis%2Fai-chatbot-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alfredfrancis%2Fai-chatbot-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alfredfrancis%2Fai-chatbot-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alfredfrancis%2Fai-chatbot-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alfredfrancis","download_url":"https://codeload.github.com/alfredfrancis/ai-chatbot-framework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alfredfrancis%2Fai-chatbot-framework/sbom","scorecard":{"id":183074,"data":{"date":"2025-08-11","repo":{"name":"github.com/alfredfrancis/ai-chatbot-framework","commit":"5f57f99a66377f44c6b494cfc5491c2483250f09"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/relase-backend.yml:13","Info: jobLevel 'contents' permission set to 'read': .github/workflows/relase-frontend.yml:13","Warn: no topLevel permission defined: .github/workflows/evaluate-backend.yml:1","Warn: no topLevel permission defined: .github/workflows/evaluate-frontend.yml:1","Warn: no topLevel permission defined: .github/workflows/relase-backend.yml:1","Warn: no topLevel permission defined: .github/workflows/relase-frontend.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: License.txt:0","Info: FSF or OSI recognized license: MIT License: License.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/relase-backend.yml:8"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/evaluate-backend.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/evaluate-backend.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/evaluate-backend.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/evaluate-backend.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/evaluate-frontend.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/evaluate-frontend.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/relase-backend.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-backend.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/relase-backend.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-backend.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/relase-backend.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-backend.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/relase-backend.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-backend.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/relase-frontend.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-frontend.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/relase-frontend.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-frontend.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/relase-frontend.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-frontend.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/relase-frontend.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/alfredfrancis/ai-chatbot-framework/relase-frontend.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating python:3.12.7-slim to python:3.12.7-slim@sha256:60d9996b6a8a3689d36db740b49f4327be3be09a21122bd02fb8895abb38b50d","Warn: containerImage not pinned by hash: frontend/Dockerfile:3","Warn: containerImage not pinned by hash: frontend/Dockerfile:6","Warn: containerImage not pinned by hash: frontend/Dockerfile:22","Warn: containerImage not pinned by hash: frontend/Dockerfile:29","Warn: containerImage not pinned by hash: frontend/dev.Dockerfile:3: pin your Docker image by updating node:20-alpine to node:20-alpine@sha256:df02558528d3d3d0d621f112e232611aecfee7cbc654f6b375765f72bb262799","Warn: pipCommand not pinned by hash: Dockerfile:11","Warn: pipCommand not pinned by hash: .github/workflows/evaluate-backend.yml:26","Warn: pipCommand not pinned by hash: .github/workflows/evaluate-backend.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/evaluate-backend.yml:28","Warn: pipCommand not pinned by hash: .github/workflows/evaluate-backend.yml:35","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of   6 containerImage dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned","Info:   2 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"14 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-qpjv-v59x-3qc4","Warn: Project is vulnerable to: GHSA-67rr-84xm-4c7r","Warn: Project is vulnerable to: GHSA-3h52-269p-cp9r","Warn: Project is vulnerable to: GHSA-f82v-jwr5-mffw","Warn: Project is vulnerable to: GHSA-9548-qrrj-x5pj","Warn: Project is vulnerable to: GHSA-vqfr-h8mv-ghfj","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-2c2j-9gv5-cj73","Warn: Project is vulnerable to: GHSA-48p4-8xcf-vxj5","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T19:14:17.646Z","repository_id":14524040,"created_at":"2025-08-16T19:14:17.646Z","updated_at":"2025-08-16T19:14:17.646Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38352877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"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":["ai-chatbot","ai-chatbot-framework","chatbot","conversational-ai","deepseek","hacktoberfest","help-wanted","langchain","llm","nextjs","openai","python","tool-calling"],"created_at":"2024-08-01T20:01:37.594Z","updated_at":"2026-10-19T09:06:28.963Z","avatar_url":"https://github.com/alfredfrancis.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","GitHub","Python","Open Source Projects","Chatbots","Frameworks and libraries","🤖 AI \u0026 Machine Learning","Chat bots"],"sub_categories":["\u003e 1k 🌟",":snake: Python"],"readme":"\u003cimg width=\"1083\" height=\"188\" alt=\"ai chatbot framework\" src=\"https://github.com/user-attachments/assets/ada25522-bcc4-4ef6-a98a-da1a1ca2917c\" /\u003e\n\n\n[![Join the chat at https://gitter.im/ai-chatbot-framework/Lobby](https://badges.gitter.im/ai-chatbot-framework/Lobby.svg)](https://gitter.im/ai-chatbot-framework/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) [![Build Status](https://github.com/alfredfrancis/ai-chatbot-framework/actions/workflows/evaluate-backend.yml/badge.svg)](https://github.com/alfredfrancis/ai-chatbot-framework/actions/workflows/evaluate-backend.yml) [![Build Status](https://github.com/alfredfrancis/ai-chatbot-framework/actions/workflows/evaluate-frontend.yml/badge.svg)](https://github.com/alfredfrancis/ai-chatbot-framework/actions/workflows/evaluate-frontend.yml)\n\n\nAI Chatbot Framework is an open-source, self-hosted, DIY Chatbot building platform built in Python. With this tool, it’s easy to create Natural Language conversational scenarios with no coding efforts whatsoever. \nThe smooth UI makes it effortless to create and train conversations to the bot. AI Chatbot Framework can live on any channel of your choice (such as Messenger, Slack etc.).\n\nYou don’t need to be an expert at artificial intelligence to create an awesome chatbot that has AI capabilities. With this project you can create an AI powered chatbot in no time.  Read the [documentation](docs/README.md) to get started.\n\n![](docs/screenshots/admin_chat_screenshot.png)\n\n## Sponsors\n[\u003cimg width=\"600\" height=\"315\" alt=\"image\" src=\"https://github.com/user-attachments/assets/184e09e9-cb28-4f5f-821d-475f361dfabd\" /\u003e](https://getfirmament.com)\n\n## Features\n- Fully Self-Hosted\n- Low-Code, DIY Admin Dashboard for Bot Development\n- Multi-turn Conversations\n- API request fulfilment (Tool Calling)\n- Persistent Memory \u0026 Context Management\n- Advanced Natural Language Understanding (NLU)\n  - Spacy Word Embeddings\n  - Intent Recognition (ML)\n  - Entity Extraction (ML)\n  - Zero shot NLU using Large Language Models (LLMs)\n- Knowledge Base \u0026 FAQ answering using RAG (in development)\n- Conversation Logs\n- Channel Integrations\n  - Web via REST API/Chat Snippet\n  - Facebook Messenger\n  - Slack (coming soon)\n  - WhatsApp via Twilio (coming soon)\n\n### Documentation\n\nCheck out our [documentation](docs/README.md) to get started.\n\n### Tech Stack\n\n - Python / FastAPI / Pydantic\n - MongoDB / Motor\n - React / NextJS\n - scikit-learn / Tensorflow / Keras\n - Spacy / python-crfsuite\n - Docker / docker-compose / Kubernetes / Helm\n\n### Contributing\n\nWant to contribute? Check out our [contribution guidelines](CONTRIBUTING.md).\n\n\u003chr\u003e\u003c/hr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfredfrancis%2Fai-chatbot-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falfredfrancis%2Fai-chatbot-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfredfrancis%2Fai-chatbot-framework/lists"}