How dusisarathchandra/llm-rag-cloud-asset-service-categorization works
This is a Streamlit RAG application that predicts cloud-service categories from asset descriptions. The main workflow is user query → hybrid LanceDB retrieval → prompt construction → LLM-generated category and service → displayed result; locally, users can submit feedback that is stored for monitoring. A separate ingestion path embeds the service catalog into LanceDB. The README also documents Elasticsearch search, Groq inference, and Grafana monitoring. Source excerpts show the LanceDB/Ollama path and feedback writes; other integration details are represented only where documented.
Main entry points: app.py Streamlit app · lance_db.py LanceDB access · ingestion.py Catalog ingestion · retrieval.py Context retrieval
Components 16
User application
- Streamlit app
app.py
RAG processing
- Context retrieval
retrieval.py - Prompt builder
src/building_prompt.py - LLM inference
app.py
Catalog data
- Catalog ingestion
ingestion.py - Service catalog CSV
data/Cloud_Provider_Services_Hashed.csv - Embedding model
src/embeddings.py - LanceDB access
src/lance_db.py - Vector store
cloud_service_knowledge_base/vector_db/vector_db.lance
Feedback monitoring
- Feedback capture
app.py - Feedback database
- Monitoring dashboard
grafana/dashboards/my-dashboard.json
Other components
- User
- Ollama
- Groq API
- Elasticsearch
Connections 17
- User → Streamlit app: submits query
- Streamlit app → Context retrieval: retrieves context
- Context retrieval → LanceDB access: opens table
- LanceDB access → Vector store: reads vectors
- Context retrieval → Elasticsearch: searches index
- Streamlit app → Prompt builder: builds prompt
- Streamlit app → LLM inference: requests inference
- LLM inference → Ollama: generates answer
- LLM inference → Groq API: generates answer
- Streamlit app → User: displays result
- Catalog ingestion → Service catalog CSV: loads records
- Catalog ingestion → Embedding model: gets model
- Catalog ingestion → LanceDB access: creates table
- LanceDB access → Vector store: writes vectors
- User → Feedback capture: rates result
- Feedback capture → Feedback database: writes feedback
- Feedback database → Monitoring dashboard: monitors feedback