File size: 2,500 Bytes
45b3faf
 
e10f2ca
45b3faf
 
 
 
dbdab0e
2d22846
b38c398
5796622
5beac7d
5796622
dbdab0e
45b3faf
e10f2ca
 
 
45b3faf
e10f2ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20004c0
e10f2ca
 
b38c398
 
 
e10f2ca
 
 
 
 
77364e4
d344e14
 
77364e4
618c9e3
b38c398
 
2846543
9455595
 
45b3faf
 
618c9e3
 
 
 
 
 
 
 
 
e10f2ca
de534c8
618c9e3
 
 
45b3faf
 
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
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



# 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)

    # User input
user_input = input()


query_engine = index.as_query_engine()
response = query_engine.query(user_input)
print(response)