W tym repozytorium znajduje się kod systemu rekomendacyjnego opartego na dużych modelach językowych. System w postaci chatbota, na podstawie dorobku naukowego pracowników Politechniki Wrocławskiej, dopasowywuje odpowiedniego promotora do podanego przez studenta tematu pracy dyplomowej
This repository contains code of recommendation system, which is based on large language models. System should match supervisor for thesis title or description given by user
Project uses following languages and technologies
- Python 3
- LangChain
- WebUI
If you want to setup project locally
-
Create new virtual environment:
If you use conda
conda create --name your-environment-name python=3.10
Alternatively use any other virtual enviroment manager of your choice.
-
Activate environment
conda activate your-environment-name
-
Make sure you use recent pip version
python -m pip install --upgrade pip
-
Install packages
python -m pip install -e .[dev]
-
Enable pre-commit
pre-commit install
-
create
.env
file and paste your OpenAI API KeyOPEN_AI_API_KEY = "<yourkey>"
After these steps project scripts are ready to launch
-
scrape_scholarly.py
python scripts/scrape_scholarly.py
Before running recomend.py, please ensure that you have downloaded the authors_with_papers.csv file from the promochator dataset. Place the file in the data folder within your project directory.
-
recomend.py
python scripts/recomend.py --question="your's question"
It is also possible to use PromoCHATor's API. To do it go to project's directory and run
docker build -t <app name> .
Then run
docker run -p 8000:8000 <app name>
curl -X POST "http://localhost:8000/recommend" \
-H "Content-Type: application/json" \
-d '{"data": "Deep Generative Models"}'
response:
{"response":"\n1. Supervisor's name: dr hab. inż. Maciej Zięba\nFaculty: Faculty of Information and Communication Technology\nResearch papers:\n- Ensemble boosted trees with synthetic features generation in application to bankruptcy prediction\n- Boosted SVM for extracting rules from imbalanced data in application to prediction of the post-operative life expectancy in the lung cancer patients\n- Classification restricted Boltzmann machine for comprehensible credit scoring model\n- Adversarial autoencoders for compact representations of 3D point clouds\n- Bingan: Learning compact binary descriptors with a regularized gan\n\n2. Supervisor's name: prof. dr hab. inż. Jerzy Świątek\nFaculty: Faculty of Information and Communication Technology\nResearch papers:\n- Boosted SVM for extracting rules from imbalanced data in application to prediction of the post-operative life expectancy in the lung cancer patients\n- Generative adversarial networks: recent developments\n- System analysis techniques in ehealth systems: A case study\n- Ensemble classifier for solving credit scoring problems\n- Accelerated learning for restricted Boltzmann machine with momentum term\n\n3. Supervisor's name: dr inż. Dariusz Więcek\nFaculty: Faculty of Information and Communication Technology\nResearch papers:\n- Smart connected logistics\n"}
Dataset should be kept in data
folder. If you want to access solvro dataset, you could try to contact project manager or techlead
Warning
Please do not push dataset to remote repository
When you had assigned yourself to new task, you should stick to these steps
git checkout main
Check out main branchgit pull origin main
Pull current changes from main branchgit fetch
Be up to date with remote branchesgit checkout -b type/task
Create new task branchgit add .
Add all changes we have madegit commit -m "My changes description"
Commit changes with proper descriptiongit push origin type/task
Pushing our changes to remote branch- On Github we are going to make Pull Request (PR) from our remote branch
Warning
Do not push changes directly to main branch
For further information read Solvro handbook
Github Solvro Handbook 🔥 - https://docs.google.com/document/d/1Sb5lYqYLnYuecS1Essn3YwietsbuLPCTsTuW0EMpG5o/edit?usp
This is our current team
- @LukiLenkiewicz - Tech Lead
- @Micz26 - ML Engineer
- @farqlia - ML Engineer
- @AgataGro - ML Engineer
- @dekompot - ML Engineer
- @b4rt4s - ML Engineer
- @Woleek - ML Engineer
- @WiktoriaFrost - ML Engineer
- @Barionetta - Project Manager