|
|
|
|
|
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 = """ |
|
|
[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 |
|
|
""" |
|
|
|
|
|
|
|
|
text_splitter = CharacterTextSplitter(chunk_size=200, chunk_overlap=20) |
|
|
docs = text_splitter.create_documents([sample_logs]) |
|
|
|
|
|
|
|
|
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") |
|
|
db = FAISS.from_documents(docs, embeddings) |
|
|
|
|
|
|
|
|
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) |
|
|
|
|
|
|
|
|
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=db.as_retriever()) |
|
|
|
|
|
|
|
|
def chat(query): |
|
|
return qa_chain.run(query) |
|
|
|
|
|
gr.ChatInterface(chat, title="Incident RCA Bot π¨", description="Ask about logs, errors, and root causes").launch() |
|
|
|