mahesh1209's picture
Update app.py
c40d159 verified
# app.py
import gradio as gr
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS
from langchain.llms import HuggingFacePipeline
from langchain.chains import RetrievalQA
from langchain.text_splitter import CharacterTextSplitter
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
# πŸ”Ή Sample logs (inline dataset)
sample_logs = """
[ERROR] Disk usage exceeded 90% on node-3
[WARNING] High memory usage detected on node-2
[INFO] Backup completed successfully on node-1
[ERROR] Service 'auth-api' failed to start due to missing env vars
[ERROR] Timeout while connecting to database from node-4
"""
# πŸ”Ή Split logs into chunks
text_splitter = CharacterTextSplitter(chunk_size=200, chunk_overlap=20)
docs = text_splitter.create_documents([sample_logs])
# πŸ”Ή Embed and index with FAISS
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
db = FAISS.from_documents(docs, embeddings)
# βœ… Use DeepSeek Coder (fast, public, code-tuned)
model_id = "deepseek-ai/deepseek-coder-1.3b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
llm_pipeline = pipeline("text-generation", model=model, tokenizer=tokenizer, max_new_tokens=256)
llm = HuggingFacePipeline(pipeline=llm_pipeline)
# πŸ”Ή Retrieval QA chain
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=db.as_retriever())
# πŸ”Ή Gradio chatbot UI
def chat(query):
return qa_chain.run(query)
gr.ChatInterface(chat, title="Incident RCA Bot 🚨", description="Ask about logs, errors, and root causes").launch()