hypeconqueror1 commited on
Commit
d4795ef
·
verified ·
1 Parent(s): 376a7e8

Upload 4 files

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -0
  2. LoadLLM.py +24 -0
  3. app.py +49 -0
  4. llama-2-7b-chat.Q5_K_M.gguf +3 -0
  5. requirements.txt +0 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ llama-2-7b-chat.Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
LoadLLM.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langchain_community.llms import LlamaCpp
2
+ from langchain.callbacks.manager import CallbackManager
3
+ from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
4
+
5
+ model_path = 'llama-2-7b-chat.Q5_K_M.gguf'
6
+
7
+
8
+ class Loadllm:
9
+ @staticmethod
10
+ def load_llm():
11
+ callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
12
+ # Prepare the LLM
13
+
14
+ llm = LlamaCpp(
15
+ model_path=model_path,
16
+ n_gpu_layers=40,
17
+ n_batch=512,
18
+ n_ctx=2048,
19
+ f16_kv=True, # MUST set to True, otherwise you will run into problem after a couple of calls
20
+ callback_manager=callback_manager,
21
+ verbose=True,
22
+ )
23
+
24
+ return llm
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from ctransformers import AutoModelForCausalLM
2
+ from flask import Flask, request, jsonify
3
+ import os
4
+ from langchain_community.document_loaders import PyMuPDFLoader
5
+ from LoadLLM import Loadllm
6
+ from langchain_community.embeddings import HuggingFaceEmbeddings
7
+ from langchain_community.vectorstores import FAISS
8
+ from langchain.chains import ConversationalRetrievalChain
9
+
10
+ DB_FAISS_PATH = 'vectorstore/db_faiss'
11
+
12
+ app = Flask(__name__)
13
+
14
+ @app.route('/')
15
+ def home():
16
+ return "API Server Running"
17
+
18
+
19
+ @app.route('/PromptBuddy', methods=['GET', 'POST'])
20
+ def PromptLLM():
21
+ pdf_file = request.files['file']
22
+ pdf_name = pdf_file.filename
23
+ user_prompt = request.form.get('query')
24
+ pdf_file.save(pdf_name)
25
+
26
+
27
+ loader = PyMuPDFLoader(file_path=pdf_name)
28
+ data = loader.load()
29
+
30
+
31
+ # Create embeddings using Sentence Transformers
32
+ embeddings = HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2')
33
+
34
+ # Create a FAISS vector store and save embeddings
35
+ db = FAISS.from_documents(data, embeddings)
36
+ db.save_local(DB_FAISS_PATH)
37
+
38
+ # Load the language model
39
+ llm = Loadllm.load_llm()
40
+
41
+ # Create a conversational chain
42
+ chain = ConversationalRetrievalChain.from_llm(llm=llm, retriever=db.as_retriever())
43
+
44
+ result = chain({"question": user_prompt, "chat_history":''})
45
+ return result["answer"]
46
+
47
+
48
+ if __name__ == '__main__':
49
+ app.run(debug=True)
llama-2-7b-chat.Q5_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e0b99920cf47b94c78d2fb06a1eceb9ed795176dfa3f7feac64629f1b52b997f
3
+ size 4783156928
requirements.txt ADDED
Binary file (3.35 kB). View file