-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
0440c9f
commit 01f647d
Showing
14 changed files
with
224 additions
and
182 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
Metadata-Version: 2.1 | ||
Name: Sukoon | ||
Version: 0.1.0 | ||
Summary: Sukoon AI mental health support system | ||
Author-email: Luv Singh <[email protected]> | ||
Project-URL: Homepage, https://github.com/luv-singh-ai/Sukoon | ||
Keywords: mental health AI,chatbot | ||
Classifier: Programming Language :: Python :: 3 | ||
Classifier: License :: OSI Approved :: MIT License | ||
Classifier: Operating System :: OS Independent | ||
Requires-Python: >=3.10 | ||
Description-Content-Type: text/markdown | ||
Requires-Dist: fastapi>=0.70.0 | ||
Requires-Dist: uvicorn>=0.15.0 | ||
Requires-Dist: langgraph | ||
Requires-Dist: langchain-community | ||
Requires-Dist: langchain-core | ||
Requires-Dist: langchain-openai | ||
Requires-Dist: langchain | ||
Requires-Dist: pytest>=6.2.5 | ||
Requires-Dist: pytest-cov>=2.12.1 | ||
Requires-Dist: pytest-html>=3.1.1 | ||
Requires-Dist: flake8>=3.9.2 | ||
|
||
# Project Sukoon: Mental Health Support using AI | ||
<img src="archive/sukoon_pic.png" alt="Sukoon Pic" width="200" style="display: block; margin: 0 auto;"> | ||
|
||
## Open Roles for Tech Tasks | ||
|
||
- [ ] Agent Building - help us build and refine current agents being used | ||
- [ ] Agent Testing - help us do thorough testing of agents and workflow | ||
- [ ] Evals - Improved accuracy and efficiency of the evaluation pipeline. | ||
- [ ] Contribute in curating datasets and/or LLM Prompt Finetuning | ||
- [ ] UI/UX improvements | ||
|
||
## Table of Contents | ||
|
||
- [Vision](#vision) | ||
- [Project Progress](#project-progress) | ||
- [Installation](#installation) | ||
- [Contributing](#contributing) | ||
- [Documentation](#documentation) | ||
- [Issues](#issues) | ||
- [Pull Requests](#pull-requests) | ||
- [Volunteer](#volunteer) | ||
|
||
## Vision | ||
|
||
Project Sukoon aims to build open-source solutions and standards for using AI to address mental health challenges. Our goal is to apply Digital Public Infrastructure (DPI) knowledge and practices to help professionals explore and understand the latest advancements in AI and their applications to mental health use-cases specific to India. | ||
|
||
## 🚀 Project Progress | ||
|
||
1. Prototyped with [Crew AI agent framework](https://www.crewai.com/) | ||
2. Developed backend and frontend using [LangGraph framework](https://www.langchain.com/langgraph) | ||
3. Shifted to [AutoGen framework](https://microsoft.github.io/autogen/docs/tutorial/introduction/) based on expert consultation | ||
4. Currently addressing web UI issues and agent loop problems with AutoGen | ||
5. Planning to create API endpoints for LangGraph and integrate with WhatsApp API | ||
6. Iterated and added more agents to the pipeline | ||
|
||
[Watch the video](https://drive.google.com/file/d/1zFL8nz0d8aqzHxJhFU0h-ScDdFaSkPeT/view?usp=drive_link) | ||
|
||
## Installation | ||
|
||
### Technical Architecture | ||
![Technical Architecture](archive/tech_arch_2.png) | ||
|
||
This is Langgraph code. Code from AutoGen is in different branch. | ||
|
||
# LangGraph (Current Version) | ||
``` | ||
- Go to langgraph branch | ||
- install all dependencies in your environment (pip install -r requirements.txt) | ||
- run 'python sukoon_api.py' | ||
- go to sukoon-frontend(cd sukoon-frontend), run 'npm start' to access it in your browser. | ||
- alternatively use this vercel deployment to access it - https://sukoon-1.vercel.app | ||
``` | ||
|
||
## Steps to add environment variables - | ||
Create a .env file with: | ||
``` | ||
OPENAI_API_KEY = '<YOUR_OPENAI_API_KEY>' | ||
LANGCHAIN_API_KEY = '<YOUR_LANGCHAIN_API_KEY>' | ||
``` | ||
- Alternatively , try this: | ||
``` | ||
On Mac/Linux - | ||
export OPENAI_API_KEY=your_api_key_here | ||
|
||
On Windows - | ||
setx OPENAI_API_KEY "your_api_key_here" | ||
``` | ||
|
||
# How to contribute 🤝 | ||
There are few ways you can contribute to Sukoon | ||
|
||
- By providing feedback on the POC | ||
- By raising issues in the issues section | ||
- By contributing to the codebase based on the issues | ||
- Join the Sukoon team by filling the p+ai volunteer form (https://peopleplus.ai/volunteer) and select the Sukoon project. | ||
- Submit PRs to the respective branches (e.g. 'autogen' or 'langgraph') | ||
|
||
For detailed guidelines, please read the guidelines outlined in CONTRIBUTING.md | ||
|
||
The docs folder contains overall project documentation and related documents. To access or contribute to the documentation, please refer to docs/README.md. | ||
e.g Please read the main doc here and feel free to add comments here - https://docs.google.com/document/d/1H8-oJmMy0r28kYup9vqt8VGDlY_cCFW_2M07XJxWpFU/edit?usp=sharing | ||
|
||
## Issues | ||
|
||
If you encounter any issues with the project, please create a new issue using the issue template. Provide as much detail as possible to help us understand and resolve the issue. | ||
|
||
# Current Challenges | ||
We have two active discussions: | ||
``` | ||
Develop a PII Removal Module for a Mental Health Care WhatsApp Chatbot | ||
Improving Central Orchestrator Agent Classification in AutoGen System | ||
``` | ||
|
||
# Current Landscape | ||
Mental health support in India faces several challenges: | ||
|
||
* Stigma and discrimination | ||
* Lack of awareness | ||
* Shortage of trained mental healthcare personnel | ||
* Affordability issues | ||
* Low budget allocation for mental healthcare | ||
|
||
# What could a solution look like? (Tentative features) | ||
* Very personal approach with focus on listening and emphasising | ||
* Available in 22 Indic regional languages, especially on mobile devices | ||
* Stores the user conversation locally, not on cloud -> ensuring complete privacy | ||
* Will provide helpful resources for most common mental health problems. However, it'll not prescribe any medicines | ||
* For training the bot , we can use federated learning | ||
* Will be available as an API, so interested people can try this and build on top of it, based on their use case | ||
* Aim is to get national-level adoption | ||
* If serious, there’ll option to reach out to a psychiatrist or support community groups e.g. peer to peer network | ||
* Have L1/L2/L3 level of support | ||
|
||
# Some interesting ideas to try: | ||
* Can we gamify the whole conversation? If yes, then how? | ||
* Can we nudge users to adopt healthier behaviour? | ||
* In particular, we can warn users about what not to do - relying on superstitions, isolation, labelling, and other unhelpful tactics | ||
* Give positive self-affirmation, create safety plan, etc | ||
* Can we develop Emotional Intelligence that understands not just emotions, but context behind it | ||
* Can we detect emotional status ike stress level using voice(like hume) and then support him | ||
* Can we create a timeline tracker let’s say six month plan for meditation and track streak | ||
* Can we give them a phone number they can call to? The bot will mainly listen , empathize and offer safe advice | ||
|
||
“Made for 🇮🇳 with ❤️ by People+AI” |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
README.md | ||
pyproject.toml | ||
sukoon_api.py | ||
Sukoon.egg-info/PKG-INFO | ||
Sukoon.egg-info/SOURCES.txt | ||
Sukoon.egg-info/dependency_links.txt | ||
Sukoon.egg-info/requires.txt | ||
Sukoon.egg-info/top_level.txt | ||
tests/test_api.py | ||
tests/test_sukoon.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
fastapi>=0.70.0 | ||
uvicorn>=0.15.0 | ||
langgraph | ||
langchain-community | ||
langchain-core | ||
langchain-openai | ||
langchain | ||
pytest>=6.2.5 | ||
pytest-cov>=2.12.1 | ||
pytest-html>=3.1.1 | ||
flake8>=3.9.2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
sukoon_api |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Version of the sukoon package | ||
__version__ = "0.1.0" |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# pyproject.toml | ||
|
||
[build-system] | ||
requires = ["setuptools>=42", "wheel"] | ||
build-backend = "setuptools.build_meta" | ||
|
||
[project] | ||
name = "Sukoon" | ||
version = "0.1.0" | ||
description = "Sukoon AI mental health support system" | ||
authors = [ | ||
{ name = "Luv Singh", email = "[email protected]" } | ||
] | ||
readme = "README.md" | ||
requires-python = ">=3.10" | ||
license = { file = "LICENSE" } | ||
keywords = ["mental health AI", "chatbot"] | ||
classifiers = [ | ||
"Programming Language :: Python :: 3", | ||
"License :: OSI Approved :: MIT License", | ||
"Operating System :: OS Independent", | ||
] | ||
dependencies = [ | ||
"fastapi>=0.70.0", | ||
"uvicorn>=0.15.0", | ||
"langgraph", | ||
"langchain-community", | ||
"langchain-core", | ||
"langchain-openai", | ||
"langchain", | ||
"pytest>=6.2.5", | ||
"pytest-cov>=2.12.1", | ||
"pytest-html>=3.1.1", | ||
"flake8>=3.9.2" | ||
] | ||
|
||
[project.urls] | ||
"Homepage" = "https://github.com/luv-singh-ai/Sukoon" | ||
|
||
[tool.setuptools] | ||
py-modules = ["sukoon_api"] # This tells setuptools that sukoon_api.py is a module |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.