Enoch1359 commited on
Commit
7ff12f8
·
verified ·
1 Parent(s): cec11d5

Upload folder using huggingface_hub

Browse files
Files changed (5) hide show
  1. Dockerfile +21 -0
  2. app.py +62 -0
  3. embedmo.pkl +3 -0
  4. ping.env +2 -0
  5. requirements.txt +8 -0
Dockerfile ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+
3
+ ENV PYTHONDONTWRITEBYTECODE 1
4
+ ENV PYTHONUNBUFFERED 1
5
+
6
+ WORKDIR /app
7
+
8
+ # Install system packages
9
+ RUN apt-get update && apt-get install -y \
10
+ libmagic1 \
11
+ build-essential \
12
+ curl \
13
+ && rm -rf /var/lib/apt/lists/*
14
+
15
+ COPY . .
16
+
17
+ RUN pip install --no-cache-dir -r requirements.txt
18
+
19
+ EXPOSE 8501
20
+
21
+ CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0", "--server.enableXsrfProtection=false"]
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import langchain
2
+ import streamlit as st
3
+ import pickle as pkl
4
+ from langchain.chains import RetrievalQAWithSourcesChain
5
+ from langchain.document_loaders import UnstructuredURLLoader
6
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
7
+ from langchain.embeddings import SentenceTransformerEmbeddings
8
+ from langchain.vectorstores import Chroma, FAISS
9
+ from langchain_openai import ChatOpenAI
10
+ from dotenv import load_dotenv
11
+ import time
12
+
13
+ load_dotenv("ping.env")
14
+ api_key=os.getenv("OPENAI_API_KEY")
15
+ api_base=os.getenv("OPENAI_API_BASE")
16
+
17
+ llm=ChatOpenAI(model_name="google/gemma-3n-e2b-it:free",temperature=0)
18
+
19
+ path="embedmo.pkl"
20
+ m1=pkl.load(open(path,"rb"))
21
+
22
+ st.title("URL ANALYSER🔗")
23
+ st.sidebar.title("Give your URls🔗?")
24
+ mp=st.empty()
25
+
26
+
27
+ urs = [st.sidebar.text_input(f"URL {i+1}🔗") for i in range(3)]
28
+ urs = [url for url in urs if url.strip()] # ✅ filters out empty inputs
29
+
30
+ purs=st.button("gotcha", disabled=not any(url.strip() for url in urs))
31
+ if purs:
32
+ mp.text("Loading..URl..Loader....☑️☑️☑️")
33
+ sic=UnstructuredURLLoader(urls=urs)
34
+ docs=sic.load()
35
+ mp.text("Loading..txt..splitter....☑️☑️☑️")
36
+ tot=RecursiveCharacterTextSplitter.from_tiktoken_encoder(encoding_name="cl100k_base",chunk_size=512,chunk_overlap=16)
37
+ doccs=tot.split_documents(docs)
38
+ mp.text("Loading..VB...☑️☑️☑️")
39
+ vv=FAISS.from_documents(doccs,m1)
40
+ r2=vv.as_retriever(search_type="similarity",search_kwargs={"k":4})
41
+ mp.text("Loading..Retri....☑️☑️☑️")
42
+ ra1=RetrievalQAWithSourcesChain.from_chain_type(llm=llm,retriever=r2,chain_type="map_reduce")
43
+ st.session_state.ra1=ra1
44
+ mp.text("DB & Retri Done ✅✅✅")
45
+ time.sleep(3)
46
+ query=mp.text_input("UR Question??")
47
+ if query:
48
+ if "ra1" not in st.session_state:
49
+ st.warning("pls give ur urls")
50
+ else:
51
+ with st.spinner("Wait for it..."):
52
+ result=st.session_state.ra1({"question":query},return_only_outputs=True)
53
+ st.header("Answer")
54
+ st.subheader(result["answer"])
55
+ g = st.button("Source")
56
+ if g:
57
+ sources = result.get("sources", "")
58
+ st.subheader("Sources")
59
+ for line in sources.split("\n"):
60
+ st.write(line)
61
+
62
+
embedmo.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42660d3d488cc52774083dc5af8b2b5e81d27219ac0ed2de757d72a79d3df6a0
3
+ size 91394790
ping.env ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ OPENAI_API_KEY=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
2
+ OPENAI_API_BASE=https://openrouter.ai/api/v1
requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ streamlit
2
+ langchain
3
+ python-dotenv
4
+ unstructured
5
+ sentence-transformers
6
+ faiss-cpu
7
+ openai
8
+ langchain-openai