File size: 2,778 Bytes
45b3faf
 
e10f2ca
45b3faf
 
 
 
dbdab0e
2d22846
b38c398
5796622
5beac7d
5796622
dbdab0e
45b3faf
e10f2ca
 
 
45b3faf
e10f2ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20004c0
e10f2ca
 
b38c398
 
 
e10f2ca
 
 
 
 
77364e4
d344e14
 
77364e4
20004c0
b38c398
 
2846543
9455595
 
45b3faf
 
 
de534c8
 
45b3faf
e10f2ca
 
 
 
eb418fc
e10f2ca
de534c8
45b3faf
 
 
9455595
 
45b3faf
9455595
45b3faf
 
e10f2ca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import logging
import sys
import streamlit as st
from llama_index import VectorStoreIndex, SimpleDirectoryReader, ServiceContext
from llama_index.llms import LlamaCPP
from llama_index.llms.llama_utils import messages_to_prompt, completion_to_prompt
from langchain.embeddings.huggingface import HuggingFaceEmbeddings
from langchain.embeddings.huggingface import HuggingFaceEmbeddings
from llama_index.embeddings import LangchainEmbedding
from langchain.embeddings import SentenceTransformerEmbeddings
from langchain.vectorstores import FAISS
from langchain.document_loaders import PyPDFLoader



# Set up logging
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

def configure_llama_model():
    model_url = 'https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF/resolve/main/mistral-7b-instruct-v0.1.Q4_K_M.gguf'
    llm = LlamaCPP(
        model_url=model_url,
        temperature=0.1,
        max_new_tokens=256,
        context_window=3900,
        model_kwargs={"n_gpu_layers": -1},
        messages_to_prompt=messages_to_prompt,
        completion_to_prompt=completion_to_prompt,
        verbose=True,
    )
    return llm

def configure_embeddings():
    embed_model = embed_model = LangchainEmbedding(HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2'))
    return embed_model




def configure_service_context(llm, embed_model):
    return ServiceContext.from_defaults(chunk_size=256, llm=llm, embed_model=embed_model)

def initialize_vector_store_index(data_path, service_context):
    documents = SimpleDirectoryReader(data_path).load_data()
    import pickle
    loader = PyPDFLoader("./Cloudflare.pdf")
    pages = loader.load_and_split()
    # Load the index from a file
    
    #index = VectorStoreIndex.from_documents(documents, service_context=service_context)
    embeddings_2 = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
    documents = SimpleDirectoryReader("./").load_data()
    index = VectorStoreIndex.from_documents(documents, service_context=service_context)
    return index

def main():
    st.title("Cloudflare RAG")
        # User input
    user_input = st.text_input("Enter your message:")

    # Configure and initialize components
    llm = configure_llama_model()
    embed_model = configure_embeddings()
    service_context = configure_service_context(llm, embed_model)
    index = initialize_vector_store_index("./", service_context)



    if user_input:
        # Generate response
        query_engine = index.as_query_engine()
        response = query_engine.query(user_input)
        # Display response
        st.text_area("ChatGPT Response:", response, height=400)

if __name__ == "__main__":
    main()