Skip to content

Commit

Permalink
testing ci/cd
Browse files Browse the repository at this point in the history
  • Loading branch information
luv-singh-ai committed Nov 5, 2024
1 parent 0440c9f commit 01f647d
Show file tree
Hide file tree
Showing 14 changed files with 224 additions and 182 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ jobs:
- name: Build project
run: |
python -m pip install --upgrade pip
pip install build
python -m build
- name: Verify build artifacts
Expand Down
148 changes: 148 additions & 0 deletions Sukoon.egg-info/PKG-INFO
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”
10 changes: 10 additions & 0 deletions Sukoon.egg-info/SOURCES.txt
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
1 change: 1 addition & 0 deletions Sukoon.egg-info/dependency_links.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

11 changes: 11 additions & 0 deletions Sukoon.egg-info/requires.txt
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
1 change: 1 addition & 0 deletions Sukoon.egg-info/top_level.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
sukoon_api
2 changes: 2 additions & 0 deletions __init__.py
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 added dist/Sukoon-0.1.0-py3-none-any.whl
Binary file not shown.
Binary file added dist/sukoon-0.1.0.tar.gz
Binary file not shown.
41 changes: 41 additions & 0 deletions pyproject.toml
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
16 changes: 8 additions & 8 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ langchain-community
langchain-core
langchain-openai
langchain
fastapi
uvicorn
pytest
langgraph-sdk
# langgraph-checkpoint-sqlite
# langsmith
llama-index
uptrain
langgraph-checkpoint-sqlite
langsmith
# langchainhub==0.1.15
# langchain-openai==0.1.3
# langchain==0.1.16
# langchain-core==0.1.42
# pygraphviz==1.12
llama-index
fastapi
uvicorn
pytest
uptrain
# pygraphviz==1.12
18 changes: 0 additions & 18 deletions tests/requirements.txt

This file was deleted.

117 changes: 0 additions & 117 deletions tests/sukoon.py

This file was deleted.

Loading

0 comments on commit 01f647d

Please sign in to comment.