{"id":31792939,"url":"https://github.com/timelesshc/anime-recommender-system","last_synced_at":"2026-04-19T17:09:47.754Z","repository":{"id":312645630,"uuid":"1047649627","full_name":"timelesshc/anime-recommender-system","owner":"timelesshc","description":"An anime recommender system using LLM and RAG","archived":false,"fork":false,"pushed_at":"2025-09-01T04:08:03.000Z","size":2290,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-01T06:45:47.680Z","etag":null,"topics":["anime","chromadb","fullstack-app","llm","rag","rag-chatbot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timelesshc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-30T22:34:32.000Z","updated_at":"2025-09-01T04:13:55.000Z","dependencies_parsed_at":"2025-09-01T06:45:51.951Z","dependency_job_id":"dc829257-ba23-4b56-9033-e44d526e544d","html_url":"https://github.com/timelesshc/anime-recommender-system","commit_stats":null,"previous_names":["timelesshc/anime-recommender-system"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/timelesshc/anime-recommender-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelesshc%2Fanime-recommender-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelesshc%2Fanime-recommender-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelesshc%2Fanime-recommender-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelesshc%2Fanime-recommender-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timelesshc","download_url":"https://codeload.github.com/timelesshc/anime-recommender-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelesshc%2Fanime-recommender-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004827,"owners_count":26083783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","chromadb","fullstack-app","llm","rag","rag-chatbot"],"created_at":"2025-10-10T17:56:23.739Z","updated_at":"2025-10-10T17:56:26.045Z","avatar_url":"https://github.com/timelesshc.png","language":"Python","readme":"### 1. Project Introduction\nAn anime recommendation system using LLM and RAG pipelines.\n![alt text](images/app.png)\n- **Tech stack**\n\n    - Groq --\u003e LLM\n    - HuggingFace --\u003e Embedding model\n    - Langchain --\u003e AI framework to interact with LLM\n    - GCP VM --\u003e Virtual machine on the cloud\n    - Minikube --\u003e For making a Kubternetes Cluster where you can deploy your application\n    - Streamlit --\u003e To make UI or frontend of the app\n    - Docker --\u003e For containerization of the app during deployment\n    - Grafana Cloud --\u003e Monitoring your Kubernetes Clusters\n    - Chroma DB --\u003e Local vector store for storing embeddings\n    - GitHub --\u003e Work as a Source Code Management (SCM) for your project\n\n- **Workflow**\n\n![alt text](/images/image.png)\n\n### 2. Configure VM Instance\n\n- **Clone your GitHub repo**\n\n  ```bash\n  git clone https://github.com/timelesshc/anime-recommender-system.git\n  ls\n  cd anime-recommender-system\n  ls  # You should see the contents of your project\n  ```\n\n- **Install Docker**\n\n  - Search: \"Install Docker on Ubuntu\"\n  - Open the first official Docker website (docs.docker.com)\n  - Scroll down and copy the **first big command block** and paste into your VM terminal\n  - Then copy and paste the **second command block**\n  - Then run the **third command** to test Docker:\n\n    ```bash\n    docker run hello-world\n    ```\n\n- **Run Docker without sudo**\n\n  - On the same page, scroll to: **\"Post-installation steps for Linux\"**\n  - Paste all 4 commands one by one to allow Docker without `sudo`\n  - Last command is for testing\n\n- **Enable Docker to start on boot**\n\n  - On the same page, scroll down to: **\"Configure Docker to start on boot\"**\n  - Copy and paste the command block (2 commands):\n\n    ```bash\n    sudo systemctl enable docker.service\n    sudo systemctl enable containerd.service\n    ```\n\n- **Verify Docker Setup**\n\n  ```bash\n  systemctl status docker       # You should see \"active (running)\"\n  docker ps                     # No container should be running\n  docker ps -a                 # Should show \"hello-world\" exited container\n  ```\n\n\n### 3. Configure Minikube inside VM\n\n- **Install Minikube**\n\n  - Open browser and search: `Install Minikube`\n  - Open the first official site (minikube.sigs.k8s.io) with `minikube start` on it\n  - Choose:\n    - **OS:** Linux\n    - **Architecture:** *x86*\n    - Select **Binary download**\n  - Reminder: You have already done this on Windows, so you're familiar with how Minikube works\n\n- **Install Minikube Binary on VM**\n\n  - Copy and paste the installation commands from the website into your VM terminal\n\n- **Start Minikube Cluster**\n\n  ```bash\n  minikube start\n  ```\n\n  - This uses Docker internally, which is why Docker was installed first\n\n- **Install kubectl**\n\n  - Search: `Install kubectl`\n  - Run the first command with `curl` from the official Kubernetes docs\n  - Run the second command to validate the download\n  - Instead of installing manually, go to the **Snap section** (below on the same page)\n\n  ```bash\n  sudo snap install kubectl --classic\n  ```\n\n  - Verify installation:\n\n    ```bash\n    kubectl version --client\n    ```\n\n- **Check Minikube Status**\n\n  ```bash\n  minikube status         # Should show all components running\n  kubectl get nodes       # Should show minikube node\n  kubectl cluster-info    # Cluster info\n  docker ps               # Minikube container should be running\n  ```\n\n### 4. Interlink your Github on VSCode and on VM\n\n```bash\ngit config --global user.email \"xxx@xxx.com\"\ngit config --global user.name \"xxx\"\n\ngit add .\ngit commit -m \"commit\"\ngit push origin main\n```\n\n- When prompted:\n  - **Username**: `xxx`\n  - **Password**: GitHub token (paste, it's invisible)\n\n---\n\n\n### 5. Build and Deploy your APP on VM\n\n```bash\n## Point Docker to Minikube\neval $(minikube docker-env)\n\ndocker build -t llmops-app:latest .\n\nkubectl create secret generic llmops-secrets \\\n  --from-literal=GROQ_API_KEY=\"\" \\\n  --from-literal=HUGGINGFACEHUB_API_TOKEN=\"\"\n\nkubectl apply -f llmops-k8s.yaml\n\n\nkubectl get pods\n\n### U will see pods runiing\n\n\n# Do minikube tunnel on one terminal\n\nminikube tunnel\n\n\n# Open another terminal\n\nkubectl port-forward svc/llmops-service 8501:80 --address 0.0.0.0\n\n## Now copy external ip and :8501 and see ur app there....\n\n\n```\n\n### 6. GRAFANA CLOUD MONITORING\n\n```bash\n## Open another VM terminal for Grfana cloud\n\nkubectl create ns monitoring\n\nkubectl get ns\n\n## Make account on Grfaana cloud\n\n### Install HELM - Search on Google\n-- Copy commands from script section..\n-- U will get 3 commands\n\n\n## Come to grafana cloud --\u003e Left pane observability --\u003e Kubernetes--\u003e start sending data\n## In backend installation --\u003e Hit install\n## Give your clustername and namespace there : minikube and monitoring in our case\n## Select kubernetes\n## Keep other things on as default\n## Here only create new access token give name lets give minikube-token \u0026 Create it and save it somewhere..\n## Select helm and deploy helm charts is already generated...\n\n\n\n## Come to terminal --\u003e Create a file\nvi values.yaml\n\n\n## Paste all from there to your file now remove last EOF part \u0026 and also initial part save that initial part we need it..\n\nExample : \n\nhelm repo add grafana https://grafana.github.io/helm-charts \u0026\u0026\n  helm repo update \u0026\u0026\n  helm upgrade --install --atomic --timeout 300s grafana-k8s-monitoring grafana/k8s-monitoring \\\n    --namespace \"monitoring\" --create-namespace --values - \u003c\u003c'EOF'\n\n### Remove this above intial part and save it somewhere\n\nThen Esc+wq! amd save the file\n\n\n## Now use the copied command just make some modification:\nRemove that EOF part and instead write\n--values values.yaml\n\nExample:\n\nhelm repo add grafana https://grafana.github.io/helm-charts \u0026\u0026\n  helm repo update \u0026\u0026\n  helm upgrade --install --atomic --timeout 300s grafana-k8s-monitoring grafana/k8s-monitoring \\\n    --namespace \"monitoring\" --create-namespace --values values.yaml\n\n## Paste this command on VM u will get status deployed revision 1\n## It means it was a SUCESS\n\nTo check:\n\nkubectl get pods -n monitoring\n\n# These are all should be running.....\n\nGo to grafana cloud again..\nAnd below u will get go to homepage click it..\nJust refresh the page and boom..\n\n\nNow u can see metrics related to your kubernetes cluster..\n\n---Explore it for yourself now \n\n---Make sure to do cleanup \n\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimelesshc%2Fanime-recommender-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimelesshc%2Fanime-recommender-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimelesshc%2Fanime-recommender-system/lists"}