Students currently need to go through multiple pages, links, and menus in the SLIIT support portal to find specific details. This project solves that by providing a single assistant interface where users can ask questions directly and get relevant answers based on support content.
webapp/- React + Vite frontendballerina-integration/- Ballerina API service (/api/chat)docs/- Markdown knowledge source filesingest.py- Ingestion script to embed and upsert knowledge into Pinecone
- Node.js 20+
- pnpm
- Python 3.10+
- Ballerina 2201.13.1+
- OpenAI API key
- Pinecone API key and index endpoint
cd webapp
pnpm installpip install openai pinecone python-dotenv pyyaml PyMuPDFCreate a .env file in the project root:
OPENAI_API_KEY=your_openai_api_key
PINECONE_API_KEY=your_pinecone_api_key
PINECONE_INDEX_NAME=sliit-support
ASGARDEO_ISSUER="https://api.asgardeo.io/t/your-org/oauth2/token"
ASGARDEO_AUDIENCE="your-client-id"
ASGARDEO_JWKS_URL="https://api.asgardeo.io/t/your-org/oauth2/jwks"Create ballerina-integration/Config.toml:
OPENAI_TOKEN="your_openai_api_key"
PINECONE_API_KEY="your_pinecone_api_key"
PINECONE_URL="your_pinecone_index_url"
bucketName="sliit-support"python ingest.pycd ballerina-integration
bal runcd webapp
pnpm devOpen the app in your browser and start chatting.