A tool to empower job coaches to unlock the full potential of supported employment.
Less Paperwork, More Impact
-
Azure Web App:
- Hosts the application.
- Provides functionality for the ingestion, recommendation system, and chat assistant, allowing job coaches to interact seamlessly.
-
Azure Blob Storage:
- Serves as a repository for data such as images (JPG), documents (PDF), text files (TXT), and audio files (WAV).
- Stores processed outputs like transcriptions and completed forms.
-
Speech-to-Text Service:
- Converts audio files (WAV) into text for processing and understanding.
-
Content Understanding Service:
- Processes various formats (images, PDFs, text files, audio) to extract meaningful data.
-
Azure AI Content Understanding:
- Extracts text and fields from uploaded documents for further processing.
-
External API (www.usajobs.gov):
- Interfaces with Azure Machine Learning models to recommend jobs based on extracted data.
-
Azure Machine Learning:
- Processes the extracted fields and provides personalized job recommendations.
-
Azure CosmosDB:
- Stores extracted fields and other relevant data in a scalable manner for retrieval and analysis.
-
Form-Filler Service:
- Automatically populates forms using the extracted data.
- Stores completed forms in Azure Blob Storage.
-
Azure Synapse Analytics:
- Analyzes the data stored in Azure CosmosDB and Azure SQL Database for insights.
-
Azure SQL Database:
- Maintains structured data for recommendation system and data analysis purposes.
-
Azure AI Search:
- Offers efficient search functionalities across the stored datasets.
-
Azure OpenAI GPT4o-mini:
- Powers the chat assistant (InclusivAI Assistant), providing conversational help for job coaches.
-
CI/CD, Identity, Monitoring & Secrets:
- Microsoft Entra ID: Manages user authentication and access control.
- Azure Monitor & Application Insights: Ensures optimal performance and monitoring of all services.
- Azure Key Vault: Safeguards secrets and encryption keys.
- Azure DevOps & GitHub: Supports continuous integration/deployment and code versioning.
-
Frontend Technologies
- Web apps for job coaches (developed with modern frameworks such as Next.js and deployed on Azure Web Apps).
Here's a high level architecture diagram that illustrates these components. These are all contained within a single resource group
The following video shows the user interface.
- Node.js (
>= 18
) - Vercel CLI (
pnpm add -g vercel
) - Azure account with access to storage and audio transcription services
git clone https://github.com/user/inclusivai.git
cd inclusivai
Create a .env.local
file in the root of the project and define the following variables:
NEXT_PUBLIC_API_URL=<AZURE_API_URL>
NEXT_PUBLIC_SUBSCRIPTION_KEY=<SUBSCRIPTION_KEY>
pnpm install
pnpm run dev
Access the application at http://localhost:3000
vercel
The backend logic for InclusivAI is implemented using Azure Functions, located in the /services
directory. Follow these steps to deploy and configure the Azure Functions:
- Azure CLI installed
- An active Azure account
- Python (
>= 3.10
) - Azure Functions Core Tools
-
Navigate to the Services Directory
cd services
-
Create a Virtual Environment Create and activate a virtual environment for the Azure Functions:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install Dependencies Install the required Python dependencies:
pip install -r requirements.txt
-
Create a Local Settings File Create a local.settings.json file in the /services directory to define the required environment variables:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "<AZURE_STORAGE_CONNECTION_STRING>", "FUNCTIONS_WORKER_RUNTIME": "python", "API_URL": "<YOUR_API_URL>", "SUBSCRIPTION_KEY": "<YOUR_SUBSCRIPTION_KEY>" } }
-
Test Locally Run the Azure Functions locally to ensure they work as expected:
-
Login to Azure Authenticate with your Azure account:
-
Create a Resource Group Create a resource group to host the Azure Functions:
-
Create a Function App Create a Function App in Azure:
-
Deploy the Functions Deploy the Azure Functions to the created Function App:
-
Verify Deployment Go to the Azure Portal, navigate to the Function App, and verify that the functions are deployed and running.
####Notes
- Replace <AZURE_STORAGE_CONNECTION_STRING>, <YOUR_API_URL>, <YOUR_SUBSCRIPTION_KEY>, , and <STORAGE_ACCOUNT_NAME> with your actual values.
- Ensure that the Azure Functions have the necessary permissions to access the required Azure resources. For more details, refer to the Azure Functions Documentation(```markdown
The backend logic for InclusivAI is implemented using Azure Functions, located in the /services
directory. Follow these steps to deploy and configure the Azure Functions:
- Azure CLI installed (
npm install -g azure-cli
) - An active Azure account
- Python (
>= 3.10
) - Azure Functions Core Tools (
npm install -g azure-functions-core-tools@4
) - Virtual environment tool (
python -m pip install virtualenv
)
-
Navigate to the Services Directory
cd services
-
Create a Virtual Environment Create and activate a virtual environment for the Azure Functions:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install Dependencies Install the required Python dependencies:
pip install -r requirements.txt
-
Create a Local Settings File Create a
local.settings.json
file in the/services
directory to define the required environment variables:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "<AZURE_STORAGE_CONNECTION_STRING>", "FUNCTIONS_WORKER_RUNTIME": "python", "API_URL": "<YOUR_API_URL>", "SUBSCRIPTION_KEY": "<YOUR_SUBSCRIPTION_KEY>" } }
-
Test Locally Run the Azure Functions locally to ensure they work as expected:
func start
-
Login to Azure Authenticate with your Azure account:
az login
-
Create a Resource Group Create a resource group to host the Azure Functions:
az group create --name InclusivAIResourceGroup --location <LOCATION>
-
Create a Function App Create a Function App in Azure:
az functionapp create --resource-group InclusivAIResourceGroup --consumption-plan-location <LOCATION> --runtime python --functions-version 4 --name InclusivAIFunctionApp --storage-account <STORAGE_ACCOUNT_NAME>
-
Deploy the Functions Deploy the Azure Functions to the created Function App:
func azure functionapp publish InclusivAIFunctionApp
-
Verify Deployment Go to the Azure Portal, navigate to the Function App, and verify that the functions are deployed and running.
- Replace
<AZURE_STORAGE_CONNECTION_STRING>
,<YOUR_API_URL>
,<YOUR_SUBSCRIPTION_KEY>
,<LOCATION>
, and<STORAGE_ACCOUNT_NAME>
with your actual values. - Ensure that the Azure Functions have the necessary permissions to access the required Azure resources.
For more details, refer to the Azure Functions Documentation.
If you want to contribute, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/new-feature
). - Make changes and commit them (
git commit -m "Add new feature"
). - Push the branch (
git push origin feature/new-feature
). - Open a Pull Request on GitHub.
This project is licensed under the MIT license.